Skip to content

Parallel programming model

병렬 프로그래밍 모델(parallel programming model)은 컴퓨팅에서 병렬 컴퓨터 아키텍처를 추상화 (컴퓨터 과학)한 것으로, 이를 통해 알고리즘과 그 구성을 프로그램으로 표현하는 것이 편리하다. 프로그래밍 모델의 가치는 일반성(다양한 아키텍처에 대해 다양한 문제를 얼마나 잘 표현할 수 있는지)과 성능(컴파일된 프로그램이 얼마나 효율적으로 실행될 수 있는지)에 따라 판단할 수 있다. 병렬 프로그래밍 모델의 구현은 기존 언어에 대한 확장으로 프로그래밍 언어에서 호출되는 라이브러리 (컴퓨팅)의 형태를 취할 수 있다.

특정 프로그래밍 모델에 대한 합의는 해당 모델을 지원하는 다양한 병렬 컴퓨터로 이어져 소프트웨어 이식성을 용이하게 하므로 중요하다. 이러한 의미에서 프로그래밍 모델은 하드웨어와 소프트웨어 간의 연결이라고 한다.

Categories

현대 딥러닝과 하드웨어를 위한 접근법

  • 병렬 프로그래밍 모델: 현대 딥러닝과 하드웨어를 위한 접근법 | GeekNews
  • Moore의 법칙이 한계에 봉착하며, 단일 코어 고속화에서 다중 코어, 병렬 처리 중심으로 하드웨어가 진화함
  • 병렬 처리는 데이터 병렬성, 모델 병렬성, 파이프라인 병렬성 등 여러 형태로 구분되며, 현대 딥러닝 시스템에서 혼합적으로 사용됨
  • SIMD(명령어 수준 데이터 병렬성), 스레드/코어 병렬성, GPU 대량 병렬 등 다양한 계층에서 병렬화가 이뤄짐
  • 병렬 처리를 위한 언어·라이브러리·도구는 대부분 기존 순차 언어에 '붙여진' 확장형이 많아, 병렬성이 언어에 네이티브로 통합되는 흐름(Mojo 등)이 주목받음
  • 캐시 라인 공유(불필요한 상호작용) 최적화, 효율적 메모리 분할, 자동 벡터화 등 실질적 성능 최적화가 중요한 과제임

See also

Favorite site