학습 자료 글/컴퓨터시스템

컴퓨터시스템 기초 19. 분산 메모리와 가속기는 한 머신 밖에서 무엇을 바꿀까

cedis 2026. 3. 31. 16:26

[컴퓨터 시스템] 19. 분산 메모리와 가속기는 한 머신 밖에서 무엇을 바꿀까

18편까지는 한 머신 안에서 여러 코어와 스레드를 어떻게 다루는지 보았습니다. 마지막으로는 메모리를 공유하지 않는 여러 머신이나 특수 하드웨어가 등장할 때 계산 모델이 어떻게 달라지는지 보겠습니다.

이번 글은 MPI, GPU, cloud, MapReduce를 키워드 나열로 끝내지 않고, '데이터와 실행 자원이 멀어질수록 무엇이 달라지는가'라는 하나의 관점으로 묶습니다.

먼저 짚고 갈 용어
distributed memory: 여러 노드가 각자 자기 메모리를 갖고 메시지로 협력하는 구조
MPI: 프로세스들이 메시지를 주고받으며 협력하도록 돕는 대표 모델
accelerator: 특정 계산을 더 효율적으로 처리하도록 설계된 하드웨어
이번 글에서 다루는 것
  • shared memory와 distributed memory 차이
  • MPI식 사고가 왜 필요한지
  • GPU 같은 가속기가 어떤 계산에 강한지
  • 클라우드와 MapReduce를 시스템 관점으로 읽는 방법
  • 시리즈 마무리 적용 문제
한눈에 보는 흐름
1
shared memory와 distributed memory 차이
2
MPI식 사고가 왜 필요한지
3
GPU 같은 가속기가 어떤 계산에 강한지
4
클라우드와 MapReduce를 시스템 관점으로 읽는 방법

1. 분산 메모리는 함께 일하지만 메모리는 따로 쓴다는 뜻이다

한 머신 안의 멀티스레드는 같은 주소 공간을 공유하지만, 분산 메모리 환경에서는 각 노드가 자기 메모리를 따로 갖습니다. 따라서 데이터를 공유하려면 메시지를 보내야 하고, 통신 비용이 더 본격적인 설계 요소가 됩니다.

그림으로 먼저 보기
shared memory
메모리 관계: 같은 주소 공간 공유
주요 고민: 동기화와 coherence
distributed memory
메모리 관계: 각자 별도 메모리
주요 고민: 메시지 교환과 데이터 배치

즉 shared memory에서의 동기화 문제가, distributed memory에서는 데이터 분배와 통신 비용 문제로 확장된다고 볼 수 있습니다.

구조메모리 관계주요 고민
shared memory같은 주소 공간 공유동기화와 coherence
distributed memory각자 별도 메모리메시지 교환과 데이터 배치

2. MPI는 메시지를 명시적으로 주고받는 사고방식이다

MPI를 배울 때 중요한 것은 API 이름보다 사고방식입니다. 상대가 내 메모리를 직접 보지 못하니, 필요한 데이터를 명시적으로 보내고 받아야 한다는 점이 핵심입니다.

이 방식은 번거롭지만 데이터 이동 비용을 코드 수준에서 더 분명히 드러내 주기도 합니다.

과정 그림
1
작업을 여러 프로세스나 노드에 나눈다.
2
각자 필요한 데이터를 갖고 계산한다.
3
필요한 순간 메시지로 데이터를 교환한다.
4
결과를 다시 모아 전체 답을 만든다.

3. GPU 같은 가속기는 '아무 계산이나 더 빠른 CPU'가 아니다

가속기를 볼 때 자주 생기는 오해는 그냥 더 강한 CPU라고 생각하는 것입니다. 실제로는 같은 연산을 대량 데이터에 반복 적용하는 상황에서 특히 강한 경우가 많고, 메모리 이동 비용과 실행 모델도 다릅니다.

그림으로 먼저 보기
CPU
강한 장면: 복잡한 제어 흐름과 범용 작업
주의할 점: 유연성이 강점
GPU/accelerator
강한 장면: 대량 데이터 병렬 작업
주의할 점: 데이터 이동과 실행 모델 차이를 고려해야 함
자원강한 장면주의할 점
CPU복잡한 제어 흐름과 범용 작업유연성이 강점
GPU/accelerator대량 데이터 병렬 작업데이터 이동과 실행 모델 차이를 고려해야 함

4. 클라우드와 MapReduce는 배치와 분산 전략을 묻는다

클라우드 환경에서는 계산 자원이 네트워크 너머에 있고, 장애와 재시도, 데이터 위치, 확장성까지 함께 고려해야 합니다. MapReduce는 이런 환경에서 작업을 나누고 다시 모으는 패턴을 비교적 단순하게 잡아주는 대표적 발상입니다.

즉 시리즈 마지막 단계로 갈수록 시스템 공부는 '연산이 어떻게 되나'에서 '데이터와 작업을 어디에 어떻게 배치할까'까지 확장됩니다.

시리즈 마지막 그림
1편에서 한 프로그램이 한 시스템에서 실행되는 큰 그림을 봤다면, 마지막 편에서는 그 실행이 여러 코어, 여러 노드, 특수 하드웨어, 클라우드까지 확장된 모습을 보는 셈입니다.

5. 직접 해볼 문제: 언제 shared memory 사고로는 부족할까

시리즈 마지막 문제는 용어 암기보다 계산 모델의 변화를 설명할 수 있는지 묻습니다.

미니 문제
데이터가 한 머신 메모리에 다 들어가지 않고 여러 노드에 나뉘어 있어야 하는 상황이라면, 왜 스레드 중심 shared memory 사고만으로는 부족한지 설명해 보세요.

이번 글에서 기억할 것

distributed memory에서는 메모리를 공유하지 않으므로 메시지 교환이 중심이 된다.
MPI는 API 묶음이기 전에 데이터 이동을 명시적으로 드러내는 사고방식이다.
GPU와 클라우드는 더 센 컴퓨터가 아니라 다른 실행 모델과 배치 문제를 요구하는 환경이다.

스스로 점검

shared memory와 distributed memory 차이를 한 문장으로 구분할 수 있는가
왜 MPI에서는 메시지 교환이 중심이 되는지 설명할 수 있는가
GPU나 cloud를 CPU의 단순 상위 호환으로 보면 왜 곤란한지 말할 수 있는가

다음 글 예고

메인 시리즈는 여기까지이고, 이후에는 누적된 용어를 정리한 외전형 핵심 용어집이나 특정 파트 심화 글로 이어갈 수 있습니다.

한 줄 정리
한 머신 안의 병렬성을 넘어가면 시스템 공부는 계산 자체보다 데이터 이동과 자원 배치, 실행 모델 차이를 읽는 공부로 확장됩니다.