데이터 병렬성
보이기
(데이터 병렬에서 넘어옴)
데이터 병렬성(data parallelism)은 병렬 컴퓨팅 환경에서 여러 프로세서에 걸친 병렬화이다. 이는 데이터를 병렬로 작동하는 여러 노드에 데이터를 분산시키는 데 중점을 둔다. 각 요소를 병렬로 작업하여 배열 및 행렬과 같은 일반 데이터 구조에 적용할 수 있다. 이는 병렬성의 또 다른 형태인 작업 병렬성과 대조된다.
n개 요소 배열의 데이터 병렬 작업은 모든 프로세서 간에 균등하게 분할될 수 있다. 주어진 배열의 모든 요소를 합산하고 단일 추가 작업에 대한 시간이 Ta 시간 단위라고 가정해 보겠다. 순차적 실행의 경우, 프로세스에 소요되는 시간은 배열의 모든 요소를 합산하므로 n×Ta 시간 단위가 된다. 반면에 이 작업을 4개의 프로세서에서 데이터 병렬 작업으로 실행하면 소요 시간이 (n/4)×Ta + 병합 오버헤드 시간 단위로 줄어든다. 병렬 실행은 순차 실행에 비해 속도가 4배 향상된다. 한 가지 중요한 점은 데이터 참조 국부성이 데이터 병렬 프로그래밍 모델의 성능을 평가하는 데 중요한 역할을 한다는 것이다. 데이터의 지역성은 프로그램이 수행하는 메모리 액세스와 캐시 크기에 따라 달라진다.
같이 보기
[편집]출처
[편집]- Hillis, W. Daniel and Steele, Guy L., Data Parallel Algorithms Communications of the ACM December 1986
- Blelloch, Guy E, Vector Models for Data-Parallel Computing MIT Press 1990. ISBN 0-262-02313-X