Parallelization of Recursive Functions for Recursive Data Structures

재귀적 자료구조에 대한 재귀 함수의 병렬화

  • 안준선 (한국과하기술원 전산학과) ;
  • 한태숙 (한국과학기술원 전산학과)
  • Published : 1999.12.01

Abstract

자료 병렬성이란 자료 집합의 원소들에 대하여 동일한 작업을 동시에 수행하므로써 얻어지는 병렬성을 말한다. 함수형 언어에서 자료 집합에 대한 반복 수행은 재귀적 자료형에 대한 재귀 함수에 의하여 표현된다. 본 논문에서는 이러한 재귀 함수를 자료 병렬 프로그램으로 변환하기 위한 병렬화 방법을 제시한다. 생성되는 병렬 프로그램의 병렬 수행 구조로는 일반적인 형태의 재귀적 자료형에 대하여 정의되는 다형적인 자료 병렬 연산을 사용하여 트리, 리스트 등과 같은 일반적인 재귀적 자료 집합에 대한 자료 병렬 수행이 가능하도록 하였다. 재귀 함수의 병렬화를 위해서는, 함수를 이루는 각각의 계산들의 병렬성을 재귀 호출에 의해 존재하는 의존성에 기반하여 분류하고, 이에 기반하여 각각의 계산들에 대한 적절한 자료 병렬 연산을 사용하는 병렬 프로그램을 생성하였다.Abstract Data parallelism is obtained by applying the same operations to each element of a data collection. In functional languages, iterative computations on data collections are expressed by recursions on recursive data structures. We propose a parallelization method for data-parallel implementation of such recursive functions. We employ polytypic data-parallel primitives to represent the parallel execution structure of the object programs, which enables data parallel execution with general recursive data structures, such as trees and lists. To transform sequential programs to their parallelized versions, we propose a method to classify the types of parallelism in subexpressions, based on the dependencies of the recursive calls, and generate the data-parallel programs using data-parallel primitives appropriately.

Keywords

References

  1. IEEE Software Data parallel programming on multicomputers Michael J. Quinn;Philip J. Hatcher
  2. The data-parallel programming model;A semantic perspective Luc Bouge
  3. Proceedings of the IEEE v.79 no.4 Collection-oriented languages J. Sipelstein;G. E. Blelloch
  4. ACM Computing Surveys(Article 7) v.30(3es) Program transformation in calculation form Akihiko Takano;Zhenjiang Hu;Masato Takechi
  5. In IEEE Computer Society International Conference on Computer Languages(ICCL'98) Parallelization via context preservation W. N. Chin;Akihiko Takano;Zhenjiang Hu
  6. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Parallelization in calculation forms Zhenjiang Hu;Masato Takechi;Wei-Ngan Chin
  7. ACM Transactions on Programming Languages and Systems v.19 no.3 Formal derivation of efficient parallel programs by construction of list homomorphisms Zhenjiang Hu;Hideya Iwasaki;Masato Takechi
  8. Parallel programming, list homomorphisms, and the maximum segment sum problems Cole M.
  9. In 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation(PEPM'99) Diffusion;Calculating efficient parallel programs Zhenjiang Hu;Masato Takechi;Hideya Iwasaki
  10. Calculating accumulations Zhenjiang Hu;Hideya Iwasaki;Masato Takechi
  11. Design and Implementation of a data-parallel language based on recursively defined data Joonseon Ahn;Taisook Han
  12. Vector Models for Data-Parallel Computing G. E. Blelloch
  13. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming Tupling calculation eliminates multiple data traversals Zhenjiang Hu;Hideya Iwasaki;Masato Takechi;Akihiko Takano
  14. In 21st International Symposium on Mathematical Foundations of Computer Science(MFCS '96) Construction of list homomorphisms by tupling and fusion Zhenjiang Hu;Hideya Iwasaki;Masato Takechi;Akihiko Takano
  15. Mathematics of Program Construction Upwards and downwards accumulations on trees Jeremy Gibbons;R. S. Bird(ed.);C. C. Morgan(ed.);J. C. P. Woodcock(ed.)
  16. Journal of Parallel and Distributed Computing v.39 no.2 Parallel implementation of tree skeletons D. B. Skillicorn
  17. Journal of Universal Computer Science v.3 no.1 Structured parallel computation in structured documents D. B. Skillicorn
  18. Science of Computer Programming v.33 no.1 Extracting and implementing list homomorphisms in parallel program development Sergei Gorlatch
  19. NESL;A nested Data parallel language G. E. Blelloch