The Efficient Execution of Functional Language Loops on the Multithreaded Architectures

다중스레드 구조에서 함수 언어 루프의 효과적 실행

  • Ha, Sang-Ho (Dept.of Information Technology Engineering, Soonchungyang University)
  • 하상호 (순천향대학교 정보기술공학부)
  • Published : 2000.03.01

Abstract

Multithreading is attractive in that it can tolerate memory latency and synchronization by effectively overlapping communication with computation. While several compiler techniques have been developed to produce multithreaded codes from functional languages programs, there still remains a lot of works to implement loops effectively. Executing lops in a style of multithreading usually causes some overheads, which can reduce severely the effect of multirheading. This paper suggests several methods in terms of architectures or compilers which can optimize loop execution by multithreading. We then simulate and analyze them for the matrix multiplication program.

Keywords

References

  1. Arvind, R. A. Iannucci, Two Fundamental Issues in Multiprocessing, CSG Memo 226-5, Lab. for Computer Science, MIT, Cambridge, MA 02139, 1986
  2. D. E. Culler, S. C. Goldstein, et al., TAM-A Compiler Controlled Threaded Abstract Machine, Journal of Parallel and Distributed Computing, Vol.18, pp.347-370, July 1993 https://doi.org/10.1006/jpdc.1993.1070
  3. S. Ha, J. Kim, et al., A Massively Parallel Multithreaded Architecture: DAVRID, In Proc. of Int. Conf. on Computer Design, pp.70-74, Oct. 1994 https://doi.org/10.1109/ICCD.1994.331857
  4. B. S. Ang, D. Chiou, et al, Message Passing Support on StarT-Voyager, CSG Memo 387, MIT Lab. for Comp. Sci., July 16, 1996
  5. R. S. Nikhil, Id Reference Manual, Version 90.1, CSG memo 284-2, MIT Lab for Comp. Sci., Sept. 1990
  6. K. E. Schauser, D. E. Culler, T. Eicken, Compiler Controlled Multithreading for Lenient Parallel Languages, In Proc. of the 5th FPCA, pp.50-72, 1991
  7. K. R. Traub, D. E. Culler, and K. E. Schauser, 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
  8. S. Ha, S. Han, and H. Kim, Partitioning a Lenient Parallel Language into Sequential Threads, In Proc. of the 28th Hawaii Int. Conf. on System Sciences, Vol.2, pp.83-92, 1995 https://doi.org/10.1109/HICSS.1995.375474
  9. S. Ha, H. Kim, and S. Han, The Efficient Implementation of Sequential Loops in Multithreaded Computation, In Proc. of the 7th IASTED-ISMM Int'l Conf. on Parallel and Distributed Computing and Systems, 1995
  10. S. Ha and H. Kim, Loop Unfolding and Its Degree Determination for Multithreaded Computation, In Proc. of the 11th Annual International Symposium on High Performance Computing Systems, 1997
  11. Arvind and R. S. Nikhil, I-Structures: Data Structures for Parallel Computing, Lecture Notes on Computer Science, Vol.279, pp.336- 369, Oct. 1986