Parallel Computing Basics
Overview
Concurrent 과 Parallel의 차이
- Concurrent (동시성):
- Concurrent는 시간 상으로 겹쳐서 일어날 수 있습니다. 여러 작업이 동시에 진행되는 것처럼 보일 수 있지만, 실제로는 동시에 실행되지 않고 번갈아 가며 실행될 수 있습니다.
- 주로 여러 작업이 동시에 시작되고 중단되며, 각 작업이 전체적으로 완료될 때까지 계속해서 전환되는 방식을 나타냅니다.
- 예를 들어, 멀티태스킹 운영 체제에서 여러 응용 프로그램이 동시에 실행되는 것이 concurrent입니다.
- Parallel (병렬성):
- Parallel은 실제로 동시에 여러 작업이 동시에 실행되는 것을 의미합니다. 여러 프로세서 또는 코어를 사용하여 작업을 동시에 처리합니다.
- 작업들 간에 독립성이 있고, 각 작업은 별도의 프로세서 또는 코어에서 실행됩니다.
- 예를 들어, 병렬 컴퓨팅에서 여러 계산이 동시에 수행되는 것이 parallel입니다.
Implementation of Parallelization
- Pthread
- OpenMP
- MPI
Framework for writing programs that execute across heterogeneous platforms
- CUDA
- OpenCL
- Vulkan Compute
- Metal Performance Shaders (MPS)
- DirectCompute
학습 자료
Book:
McKenney: Parallel Programming
Lectures:
PARALLEL COMPUTING, Stanford CS149, Fall 2023
Parallel Computer Architecture and Programming, CMU 15-418/15-618, Fall 2023
Leave a comment