Unfolding Nested Loops of Functional Languages for Multithreaded Architectures

다중스레드 구조를 위한 함수형 언어의 중첩루프 펼침

  • 하상호 (순천향대학교 정보기술공학부)
  • Published : 2002.12.01

Abstract

We need an enormous amount of memories for name spaces as well as additional processors if we are to effectively exploit a massively parallelism in nested loops of functional languages such as Id. If there is no sufficient amount of memories enough to exploit that parallelism, the execution of programs can be aborted during the unfolding of loops. Additionally, if loops are overunfolded, compared with the number of processors available, the system performance can be degraded severely due to the overhead of loop unfolding. This paper suggests and analyzes an algorithm which can be used to effectively unfold nested loops of functional languages on multithreaded architectures. This algorithm has a feature to unfold a given nested loop safely and near optimally, considering the system resources of processors and memories available when the loop is to be unfolded.

Id 언어와 같은 함수형 언어의 중천루프에 포함된 미세한 수준의 대규모 병렬성을 다중스레드 구조상에서 이용하려면 프로세서뿐만 아니라, 이름공간을 위한 상당히 말은 기억공간 등의 자원이 추가로 요구된다. 이러한 병렬성을 포함하는 중첩루프론 시스템 자원 제한 없이 무분별하게 펼쳐서 실행하려고 한다면, 실행도중 기억공간의 자원의 고갈로 인하여 프로그램의 실행이 중단될 수 있다. 또한, 루프의 펼침에 따른 부담으로 인하여 프로세서의 수에 비해서 루프를 지나치게 많이 펼치는 경우에, 병렬 수행의 효과가 상당히 떨어질 수 있다. 본 논문에서는 함수형 언어의 중첩루프를 다중스레드 구조상에서 효과적으로 펼쳐서 실행할 수 있는 알고리즘을 제안하고 분석한다. 제안된 알고리즘의 특성은 주어진 중첩루프를 펼칠 시점에 프로세서 수와 기억공간의 현재 사용 가능한 시스템 자원 양에 제한하여 안전하면서도 가능한 최적으로 펼친다는데 있다.

Keywords

References

  1. Arvind and R.A. Ianucci, 'Two fundamental issues in multiprocessing,' Technical Report, CSG Memo 226-5, Lab. for Computer Science, MIT, 1986
  2. R.A. Ianucci, Parallel Machines: Parallel Machine Languages, Kluwer Academic Publishers, 1990
  3. R.S. Nikhil, G.M. Papadopoulous and Arvind, '*T: A multithreaded massively parallel architecture,' In Proc. of the 19th Annual Internatinal Symposium on Computer Architecture, pp. 159-167, 1992
  4. D.E. Culler, S.C. Goldstein, K.E. Schauser and T. Eicken, 'TAM- A compiler controlled threaded abstract machine,' Journal of Parallel and Distributed Computing, Vol. 18, No.3, pp.347-370, 1993 https://doi.org/10.1006/jpdc.1993.1070
  5. Y. Kodama, H. Sakai, et al., 'The EM-X Parallel Computer: Architecture and Basic Performance', In Proc of the 22nd Annual ISCA, pp. 14-23, 1995 https://doi.org/10.1145/225830.223987
  6. S. Ha, J. Kim, et al., 'A Massively Parallel Multithreaded Architecture: DAVRID,' in Proc. of IEEE International Conference on Computer Design: VLSI in Computers and Processors, pp. 70-74, 1994
  7. B.S. Ang, D. Chiou, et al., 'Message passing support on StarT-Voyager, 'Technical Report, CSG Memo 387, Lab. for Computer Science, MIT, 1996
  8. R.S. Nikhil, 'Id reference manual, Version 90.1,' Technical Report, CSG Memo 284-2, Lab. for Compuer Science, MIT, 1990
  9. Shail Aditya, Arvind and Jan-Willem Maessen, 'Semantics of pH: A parallel dialect of Haskell, CSG Memo 377-1, 1995
  10. K.R. Traub, et al., 'Global analysis for partitioning non-strict programs into sequential threads,' In Proc. of ACM Conf. on LISP and Functional Programming, pp. 324-334, 1992 https://doi.org/10.1145/141471.141568
  11. K.E. Schauser, D.E. Culler and T. Eicken, 'Compiler-controlled multithreading for lenient parallel languages,' In Proc. of the 5th Functional Programming and Computer architecture, pp.50-72, 1991
  12. J.E. Hoch, et al., 'Compile-time Partitioning of a Non-strict Language into Sequential Threads', In Proc. of the 3rd IEEE Sympo. on Parallel and Distributed Processing, pp. 180-411, 1989 https://doi.org/10.1109/SPDP.1991.218281
  13. E. Roh, S. Ha, et al., 'Compilation of a functional language for the multithreaded architecture: DAVRID,' In Proc. of International Conference on Parallel Processing, Vol. 2, pp. 239-242, 1994 https://doi.org/10.1109/ICPP.1994.70
  14. Sangho Ha and Heunghwan Kim, 'KU-Loop Scheme: An Efficient Loop Unfolding Scheme for Multithreaded Computation', Journal of Information Science and Engineering, Vol. 14, No. 1, March 1998
  15. C. D. Polychronopoulos, Parallel Programming and Compilers, Reading, Kluwer Academic Publishers, 1988
  16. M. J. Wolfe, 'Optimizing Supercompilers for Supercomputers,' Ph.D. Thesis, Univ. of Illinois at Urbana-Champaign, DCS Report No. UIUCCDCS-R-82-1105, 1982