Parallel Computing Basics

less than 1 minute read

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

Etc:
동시성, 병렬, 비동기, 논블럭킹과 컨셉들

Introduction to Parallel Computing Tutorial

POSIX Threads Programming

Leave a comment