Scalarization of HPF FORALL Construct

HPF FORALL 구조의 스칼라화(Scalarization)

  • 구미순 (백석문화대학 컴퓨터정보학부)
  • Published : 2007.11.30

Abstract

Scalarization is a process that a parallel construct like an array statement of Fortran 90 or FORALL of HPF is converted into sequential loops that maintain the correct semantics. Most compilers of HPF, recognized as a standard data parallel language, convert a HPF program into a Fortran 77 program inserted message passing primitives. During scalariztion, a parallel construct FORALL should be translated into Fortran 77 DO loops maintaining the semantics of FORALL. In this paper, we propose a scalarization algorithm which converts a FORALL construct into a DO loop with improved performance. For this, we define and use a relation distance vector to keep necessary dependence informations. Then we evaluate execution times of the codes generated by our method and by PARADIGM compiler method for various array sizes.

스칼라화(Scalarization)는 포트란 90의 array statement나 HPF FORALL 등의 병렬 구조를 동일한 의미의 순차 DO 루프로 변환하는 과정이다. 표준 자료 병렬 언어인 HPF 컴파일러도 HPF로 작성된 프로그램을 메시지 패싱 프리미티브가 삽입된 포트란 77 프로그램으로 변환하고, 병렬 구조인 FORALL을 스칼라화하여 포트란 77의 순차 DO 루프로 변환해야 한다. 본 논문에서는 병렬 구조의 시맨틱을 지닌 다중문장 FORALL 구조를 개선된 성능의 순차 DO 루프로 변환하는 스칼라화 알고리즘을 제안한다. 이를 위해 필요한 종속성 정보를 유지하는 수단으로 관계거리벡터를 정의하여 사용한다. 끝으로 제안된 알고리즘을 적용하여 생성된 코드와 기존 PARADIGM 컴파일러에 의해 생성된 코드의 성능을 비교 평가한다.

Keywords