다중스레드 데이타 병렬 프로그램의 표현 : PCFG(Parallel Control Flow Graph)

A Representation for Multithreaded Data-parallel Programs : PCFG(Parallel Control Flow Graph)

  • 김정환 (건국대학교 컴퓨터·응용과학부)
  • 발행 : 2002.12.01

초록

데이타 병렬 모델은 대규모 병렬성을 용이하게 얻을 수 있는 장점이 있지만, 데이타 분산으로 인한 통신 지연시간은 상당한 부담이 된다. 본 논문에서는 데이타 병렬 프로그램에 내재되어 있는 태스크 병렬성을 추출하여 이러한 통신 지연시간을 감추는데 이용할 수 있음을 보인다. 기존의 태스크 병렬성 추출은 데이타 병렬성을 고려하지 않았지만, 여기서는 데이타 병렬성을 그대로 유지하면서 태스크 병렬성을 활용하는 방법에 대해 설명한다. 데이타 병렬 루프를 포함할 수 있는 다수의 태스크 스레드들로 구성된 다중스레드 프로그램을 표현하기 위해 본 논문에서는 PCFG(Parallel Control Flow Graph)라는 표현 형태를 제안한다. PCFG는 단일 스레드인 원시 데이타 병렬 프로그램으로부터 HDG(Hierarchical Dependence Graph)를 통해 생성될 수 있으며, 또한 PCFG로부터 다중스레드 코드를 쉽게 생성할 수 있다.

In many data-parallel applications massive parallelism can be easily extracted through data distribution. But it often causes very long communication latency. This paper shows that task parallelism, which is extracted from data-parallel programs, can be exploited to hide such communication latency Unlike the most previous researches over exploitation of task parallelism which has not been considered together with data parallelism, this paper describes exploitation of task parallelism in the context of data parallelism. PCFG(Parallel Control Flow Graph) is proposed to represent a multithreaded program consisting of a few task threads each of which can include a few data-parallel loops. It is also described how a PCFG is constructed from a source data-parallel program through HDG(Hierarchical Dependence Graph) and how the multithreaded program can be constructed from the PCFG.

키워드

참고문헌

  1. David F. Bacon, Susan L. Graham and Oliver J. Sharp, 'Compiler Transformation for High-Performance Computing,' ACM Computing Surveys, vol. 26, No. 4, December 1994, pp. 345-420 https://doi.org/10.1145/197405.197406
  2. Milind Girkar, Constantine D. Polychronopoulos, 'Extracting Task-Level Parallelism,' ACM Transaction on Programming Languages and Systems, Vol. 17, No. 4, July 1995, pp. 600-534 https://doi.org/10.1145/210184.210189
  3. S. Hiranandani, K. Kennedy and C. Tseng, 'Evaluation of Compiler Optimizations for Fortran D on MIMD Distributed-Memory Machines,' Proc. of the 1992 ACM Intl Conference on Supercomputing, Washington DC, July 1992 https://doi.org/10.1145/143369.143372
  4. A. V. Aho, R. Sethi and J. D. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986
  5. J. Ferrante, K. J. Ottenstein and J. D. Warren, 'The Program Dependency Graph and Its Uses in Optimization,' ACM Trans. on Programming Languages and Systems, Vol. 9, No. 3, June 1987, pp. 319-349 https://doi.org/10.1145/24039.24041
  6. Richard Johnson and Keshav Pingali, 'Dependence-Based Program Analysis,' ACM Programming Language Design and Implementation, ACM SIGPLAN Notices, Proceedings of the Conference on Programming Language Design and Implementation, Vol. 28, Issue 6, JUne 1993, pp. 78-89 https://doi.org/10.1145/155090.155098
  7. Keshav Pingali, Micah Beck, Richard Johnson, Mayan Moudgill and Paul Stodghill, 'Dependence Flow Graphs: An Algebraic Approach to Program Dependencies,' Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1991 https://doi.org/10.1145/99583.99595
  8. Robert A. Ballance, Arthur B. Maccabe and Karl J. Ottenstein, 'The Program Dependence Web: A Representation Supporting Control-, Data-, and Demand-Driven Intrepretation of Imperative Languages,' ACM SIGPLAN Notices, Proceedings of the Conference on Programming Language Design and Implementation, Vol. 25, Issue 6, June 1990, pp. 257-271 https://doi.org/10.1145/93548.93578
  9. Milind Girkar, Constantine D. Polychronopoulos, 'The HTG: An Intermediate Representation for Program Based on Control and Data Dependences,' Tech. Rep. No. 1046, Center for Supercomputing Res. and Dev. - University of Illinois, May 1991
  10. Constantine D. Polychronopoulos, 'The Hierarchical Task Graph and its Use in Auto-Scheduling,' Proceedings of the 5th International Conference on Supercomputing, June 1991 https://doi.org/10.1145/109025.109089
  11. C. Koelbel and P. Mehrotra, 'Programming Data Parallel Algorithms on Distributed Memory Machines using Kali,' Proceedings of the 1991 ACM International Conference on Supercomputing, June 1991 https://doi.org/10.1145/109025.109122
  12. J. Wu, J. Saltz, H. Berryman and S. Hiranandani, 'Distributed Memory Compiler Design for Sparse Problems,' ICASE Report 91-13, Hampton, VA, January 1991
  13. M. Kandemir, P. Banerjee, A. Choudhary, J. Ramanujam and N. Shenoy, 'A Global Communication Optimization Technique Based on Data-Flow Analysis and Linear Algebra,' ACM Transaction on Programming Languages and Systems, Vol. 21, No. 6, November 1999, pp. 1251-1297 https://doi.org/10.1145/330643.330647
  14. R. v. Hanxleden and K. Kennedy, 'A Code Placement Framework and its Application to Communication Generation,' CRPC-TR93337-S, Center for Research on Parallel Computation, Oct. 1993
  15. Message Passing Interface Forum, MPI: A Message Passing Interface Standard, June 12, 1995
  16. D. Callahan and K. Kennedy, 'Analysis of Inter-procedural Side Effects in a Parallel Programming Environment,' Journal of Supercomputing, October, 1988 https://doi.org/10.1016/0743-7315(88)90011-1