Generating Local Addresses for Block-Cyclic Distributed Array

블록-순환으로 분배된 배열의 지역 주소 생성

  • 권오영 (한국전자통신연구원(ETRI) 네트워크컴퓨팅연구부 분산컴퓨팅연구팀) ;
  • 김태근 (한국전자통신연구원(ETRI) 네트워크컴퓨팅연구부 분산컴퓨팅연구팀) ;
  • 한탁돈 (연세대학교 컴퓨터과학과) ;
  • 양성봉 (연세대학교 컴퓨터과학과) ;
  • 김신덕 (연세대학교 컴퓨터과학과)
  • Published : 1998.11.01

Abstract

Most data parallel languages provide the block-cyclic distribution (cyclic(k)) that is one of the most general regular distributions. In order to generate local addresses for an array section A(l:h:s) with block-cyclic distribution, efficient compiling methods or run-time methods are required. In this paper, two local address generation methods for the block-cyclic distribution are presented. One is a simple scan method that is modified from the virtual-block scheme. The other is a linear-time ${\Delta}M$ table that contains the local memory access information construction method. This method is simpler than other algorithms for generating a ${\Delta}M$ table. Experimental results show that a simple that a simple scan method has poor performance but a linear-time ${\Delta}M$ table generation method is faster than other algorithms in ${\Delta}M$ table generation time and access time for 10,000 array elements.

대부분의 데이터 병렬 언어들은 배열을 분배하는 방법을 제공하고 있다. 이들 중 블록-순환(block-cyclic) 분배가 가장일반적인 데이터 방법이다. 블록-순환 형태로 분할된 배열 구간 A(l:h:s) 중 각 프로세서가 자신의 메모리 영역에서 접근하는 A의 지역주소를 컴파일러 또는 실시간 시스템들이 생성하는 방안에 대한 연구가 이루어지고 있다. 이 논문에서는 블록-순환 분배된 배열에 대한 두 가지 지역 주소 생성 방법을 제안한다. 하나는 가상-블록 (virtual-block)을 변형한 simple scan 방법이고, 다른 하나는 지역 메모리 접근에 대한 정보를 포함하는 ${\Delta}M$테이블을 선형시간에 생성하는 알고리즘이다. ${\Delta}M$테이블 생성과 각 프로세서가 10,000개의 지역배열 원소를 접근하는데 소요된 시간을 측정하는 실험을 하였다. 실험결과 simple scan 방법은 성능이 좋지 못하였다. 하지만 ${\Delta}M$테이블을 구성하는 다른 방법들 보다 빠른 시간에 수행이 완료되었다.

Keywords