[컴퓨터 시스템] 19. 분산 메모리와 가속기는 한 머신 밖에서 무엇을 바꿀까
18편까지는 한 머신 안에서 여러 코어와 스레드를 어떻게 다루는지 보았습니다. 마지막으로는 메모리를 공유하지 않는 여러 머신이나 특수 하드웨어가 등장할 때 계산 모델이 어떻게 달라지는지 보겠습니다.
이번 글은 MPI, GPU, cloud, MapReduce를 키워드 나열로 끝내지 않고, '데이터와 실행 자원이 멀어질수록 무엇이 달라지는가'라는 하나의 관점으로 묶습니다.
- shared memory와 distributed memory 차이
- MPI식 사고가 왜 필요한지
- GPU 같은 가속기가 어떤 계산에 강한지
- 클라우드와 MapReduce를 시스템 관점으로 읽는 방법
- 시리즈 마무리 적용 문제
1. 분산 메모리는 함께 일하지만 메모리는 따로 쓴다는 뜻이다
한 머신 안의 멀티스레드는 같은 주소 공간을 공유하지만, 분산 메모리 환경에서는 각 노드가 자기 메모리를 따로 갖습니다. 따라서 데이터를 공유하려면 메시지를 보내야 하고, 통신 비용이 더 본격적인 설계 요소가 됩니다.
즉 shared memory에서의 동기화 문제가, distributed memory에서는 데이터 분배와 통신 비용 문제로 확장된다고 볼 수 있습니다.
| 구조 | 메모리 관계 | 주요 고민 |
|---|---|---|
| shared memory | 같은 주소 공간 공유 | 동기화와 coherence |
| distributed memory | 각자 별도 메모리 | 메시지 교환과 데이터 배치 |
2. MPI는 메시지를 명시적으로 주고받는 사고방식이다
MPI를 배울 때 중요한 것은 API 이름보다 사고방식입니다. 상대가 내 메모리를 직접 보지 못하니, 필요한 데이터를 명시적으로 보내고 받아야 한다는 점이 핵심입니다.
이 방식은 번거롭지만 데이터 이동 비용을 코드 수준에서 더 분명히 드러내 주기도 합니다.
3. GPU 같은 가속기는 '아무 계산이나 더 빠른 CPU'가 아니다
가속기를 볼 때 자주 생기는 오해는 그냥 더 강한 CPU라고 생각하는 것입니다. 실제로는 같은 연산을 대량 데이터에 반복 적용하는 상황에서 특히 강한 경우가 많고, 메모리 이동 비용과 실행 모델도 다릅니다.
| 자원 | 강한 장면 | 주의할 점 |
|---|---|---|
| CPU | 복잡한 제어 흐름과 범용 작업 | 유연성이 강점 |
| GPU/accelerator | 대량 데이터 병렬 작업 | 데이터 이동과 실행 모델 차이를 고려해야 함 |
4. 클라우드와 MapReduce는 배치와 분산 전략을 묻는다
클라우드 환경에서는 계산 자원이 네트워크 너머에 있고, 장애와 재시도, 데이터 위치, 확장성까지 함께 고려해야 합니다. MapReduce는 이런 환경에서 작업을 나누고 다시 모으는 패턴을 비교적 단순하게 잡아주는 대표적 발상입니다.
즉 시리즈 마지막 단계로 갈수록 시스템 공부는 '연산이 어떻게 되나'에서 '데이터와 작업을 어디에 어떻게 배치할까'까지 확장됩니다.
5. 직접 해볼 문제: 언제 shared memory 사고로는 부족할까
시리즈 마지막 문제는 용어 암기보다 계산 모델의 변화를 설명할 수 있는지 묻습니다.
이번 글에서 기억할 것
스스로 점검
다음 글 예고
메인 시리즈는 여기까지이고, 이후에는 누적된 용어를 정리한 외전형 핵심 용어집이나 특정 파트 심화 글로 이어갈 수 있습니다.
'학습 자료 글 > 컴퓨터시스템' 카테고리의 다른 글
| 컴퓨터시스템 기초 18. 스레드와 동기화는 왜 멀티코어에서 필수가 될까 (0) | 2026.03.31 |
|---|---|
| 컴퓨터시스템 기초 17. 시스템 호출과 IPC는 프로세스 사이를 어떻게 잇는가 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 16. 운영체제는 프로세스와 가상 메모리를 어떻게 관리할까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 15. 코드 최적화는 왜 측정과 locality가 먼저일까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 14. 메모리 계층은 왜 프로그램 속도를 바꿀까 (0) | 2026.03.31 |