Interprocedural Transformations for Parallel Computing

병렬 계산을 위한 프로시저 전환

  • 장유숙 (순천향대학교 정보기술공학부 병렬처리연구소) ;
  • 박두순 (순천향대학교 정보기술공학부)
  • Published : 2001.10.01

Abstract

Since roost of the program execution time is spent in the loop structure, the problem of extracting parallelism from sequential loop has been one of the most important research issues. However. roost programs have Implicit interprocedure parallelism. This paper presents a generalized method extracting parallelism in loops having the procedure calls. Most parallelization of loops having procedure calls focus on the uniform code where data dependency distance is constant. We present algorithms which can be applied to uniform code, nonuniform code, and complex code. The performance of the proposed algorithm, loop extraction, loop embedding and procedure cloning transformation methods have been evaluated using CRAY-T3E. The result shows the effective of the proposed algorithm.

프로그램 수행시간의 대부분이 루프 구조에서 소비되고 있기 때문에 루프 구조를 가진 순차 프로그램에서 병렬성을 추출하는 연구들이 많이 행해지고 있고 그 연구들은 하나의 프로시저 내 루프 구조의 변환에 치중되고 있다. 그러나 대부분의 프로그램들은 프로시저 간 잠재된 병렬성을 가지고 있다. 본 논문에서는 프로시저 호출을 가진 루프에서 병렬성 추출 방식을 제안한다. 프로시저 호출을 포함하는 루프의 병렬화는 대부분 자료종속거리가 uniform 형태의 코드에서만 집중되었다. 본 논문에서는 자료종속거리가 uniform 코드, nonuniform 코드 그리고 복합된(complex) 코드를 가진 프로그램에서 적용 가능한 알고리즘을 제시하였으며, 제안된 알고리즘과 loop extraction, loop embedding 그리고 procedure cloning변환 방법을 CRAY-T3E로 성능 평가하였다. 성능평가 결과는 제안된 알고리즘이 효율적이라는 것을 보여준다.

Keywords