데이터 병렬성

데이터 병렬성(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. 

분류:병렬 컴퓨팅