Abstract
Array redistribution is usually required to enhance algorithm performance in many parallel programs on distributed memory multicomputers. GEN_BLOCK redistribution, which is redistribution between different GEN_BLOCKs, is essential for load balancing. However, prior research on redistribution has been focused on regular redistribution, such as redistribution between different CYCLIC(N)s. GEN_BLOCK redistribution is very different from regular redistribution. Message passing in regular redistribution involves repetitions of basic message passing patterns, while message passing for GEN_BLOCK redistribution shows locality. This paper proves that two optimal condition, reducing the number of communication steps and minimizing redistribution size, are essential in GEN_BLOCK redistribution. Additionally, by adding a relocation phase to list scheduling, we make an optimal scheduling algorithm for GEN_BLOCK redistribution. To evaluate the performance of the algorithm, we have performed experiments on a CRAY T3E. According to the experiments, it was proven that the scheduling algorithm shows better performance and that the conditions are critical in enhancing the communication speed of GEN_BLOCK redistribution.
배열 재분산은 분산 메모리 컴퓨팅 환경에서 응용 프로그램의 수행 속도를 빠르게 하기 위해 많이 사용되고 있다. 특히 GEN BLOCK간 재분산은 동적으로 부하가 변화하는 경우 최적화된 성능을 보이기 위해 필요하다. 배열 재분산에 관한 기존 연구들은 대부분 CYCLIC(N)등과 같은 정규 분산 패턴간 재분산에 대해서만 이루어져 왔다. 그러나 GEN BLOCK등과 같은 비정규 분산 패턴간 재분산에서 발생하는 메시지패싱들은 정규 분산 패턴간 재분산과는 다른 특정을 보이기 때문에 이에 대한 새로운 연구가 필요하다. 본 논문은 GEN BLOCK간 재분산에서 발생하는 메시지패싱들에 정규 분산 패턴간 재분산에서 발견되 는 규칙성은 없는 반면 공간 지역성 (spacial locality)이 존재함을 보이고, 이를 기반으로 최소 스텝 정리와 최소 크기 정리가 재분산의 성능을 향상시키는데 중요함을 증병하였으며, 기존의 리스트 스케줄링 방식에 재구성 단계(relocation phase)를 추가함으로써 최적 스케줄을 생성하는 알고리즘을 제시하였다. 마지막으로 제안한 알고리즘의 성능을 평가하기 위해 , CRAY T3E와 IBM SP2에서 성능 평가를 수행 하였으며, 그 결과 분산 메모리 병렬 머신에서 최소 스텝 정리와 최소 크기 정리를 만족하는 스케줄이 GEN BLOCK간 재분산의 성능 향상에 중요함을 보였다.