병렬 프로그래밍

1 개요[ | ]

parallel programming model
병렬 프로그래밍, 병행 프로그래밍, 병렬 프로그래밍 모델, 병행 프로그래밍 모델, 병렬 프로그래밍 모형, 병행 프로그래밍 모형
  • 병렬 컴퓨터 아키텍처의 추상화
  • 프로그램에서 알고리즘과 그 구성을 표현하는 것이 편리하다.
  • 프로그래밍 모델의 가치는 일반성(generality, 다양한 아키텍처에 대해 다양한 문제를 얼마나 잘 표현할 수 있는지), 성능(performance, 컴파일 된 프로그램을 얼마나 효율적으로 실행할 수 있는지) 등으로 판단할 수 있다.
  • 병렬 프로그래밍 모델의 구현은 기존 언어에 대한 확장 또는 완전히 새로운 언어로 순차적 언어에서 호출된 라이브러리의 형태를 취할 수 있다.
  • 특정 프로그래밍 모델에 대한 합의(consensus)는 모델을 지원하는 여러 병렬 컴퓨터가 구축되어 소프트웨어의 이식성을 촉진하기 때문에 중요하다.
  • 이러한 의미에서 프로그래밍 모델을 하드웨어와 소프트웨어 간의 브리징이라고 한다.

2 예시[ | ]

이름 상호작용 유형 분리 유형 구현체 예시
액터 모델 비동기 메시지 전달 태스크 D 언어, Erlang, Scala, SALSA
벌크 동기적 병렬 공유 메모리 태스크 Apache Giraph, Apache Hama, BSPlib
순차적 프로세스 통신 동기 메시지 전달 태스크 Ada, Occam, VerilogCSP, Go 언어
Circuit Message passing 태스크 Verilog, VHDL
Dataflow 메시지 전달 태스크 Lustre, TensorFlow, Apache Flink
함수적 프로그래밍 메시지 전달 태스크 Concurrent Haskell, Concurrent ML
LogP 머신 동기 메시지 전달 미정 없음
병렬 랜덤 액세스 머신 공유 메모리 데이터 Cilk, CUDA, OpenMP, Threading Building Blocks, XMTC

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}