Implementing a non-strict functional programming language on a threaded architecture

  • Shigeru Kusakabe
  • Kentaro Inenaga
  • Makoto Amamiya
  • Xinan Tang
  • Andres Marquez
  • Guang R. Gao
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1586)


The combination of a language with fine-grain implicit parallelism and a dataflow evaluation scheme is suitable for high-level programming on massively parallel architectures. We are developing a compiler of V, a non-strict functional programming language, for EARTH(Efficient Architecture for Running THreads). Our compiler generates codes in Threaded-C, which is a lower-level programming language for EARTH. We have developed translation rules, and integrated them into the compiler. Since overhead caused by fine-grain processing may degrade performance for programs with little parallelism, we have adopted a thread merging rule. The preliminary performance results are encouraging. Although further improvement is required for non-strict data-structures, some codes generated from V programs by our compiler achieved comparable performance with the performance of hand-written Threaded-C codes.


Runtime System Execution Unit Synchronization Unit Instance Frame Intermediate Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Robert Alverson, David Callahan, Daniel Cummings, Brian Koblenz, Allan Porter-field, and Burton Smith. The Tera computer system. In Proceedings of the 1990 ACM International Conference on Supercomputing, pages 1–6, 1990.Google Scholar
  2. 2.
    M. Amamiya, R. Hasegawa, and S. Ono. Valid: A High-Level Functional Programming Language for Data Flow Machine. Review of Electrical Communication Laboratories, 32(5):793–802, 1984.Google Scholar
  3. 3.
    M. Amamiya, T. Kawano, H. Tomiyasu, and S. Kusakabe. A Practical Processor Design For Multithreading. In Proc. of the Sixth Symposium on Frontiers of Massively Parallel Computing, pages 23–32, Annapolis, October 1996.Google Scholar
  4. 4.
    M. Amamiya and R. Taniguchi. Datarol: A Massively Parallel Architecture for Functional Languages. In the second IEEE symposium on Parallel and Distributed Processing, pages 726–735, December 1990.Google Scholar
  5. 5.
    Jose Nelson Amaral and Gunag R. Gao. Implementation of I-Structures as a Library of Functions in Portable Threaded-C. Technical Report, University of Delaware, 1998.Google Scholar
  6. 6.
    Arvind, R., S. Nikhil, and K. K. Pingali. I-structures: data structures for parallel computing. ACM Trans. Prog. Lang. and Sys., 11(4):598–632, October 1989.CrossRefGoogle Scholar
  7. 7.
    Robert D. Blumofe, christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. Cilk: An Efficient Multithreaded Runtime System. In Proceedings of the 5th Symposium on Principles and Practice of Parallel Programming, pages 207–216, July 1995.Google Scholar
  8. 8.
    David E. Culler, Andrea Dusseau, Seth Copen Goldstein, Arvind Krishnamurthy, Steven Lumetta, Thorsten von Eicken, and Katherine Yelick. Parallel programming in Split-C. In IEEE, editor, Proceedings, Supercomputing ’93: Portland, Oregon, November 15–19, 1993, pages 262–273, 1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA, 1993, IEEE Computer Society Press.Google Scholar
  9. 9.
    Jack B. Dennis and Guang R. Gao. Multithreaded computer architecture: A summary of the state of the art, chapter Multithreaded Architectures: Principles, Projects, and Issues, pages 1–74. Kluwer academic, 1994.Google Scholar
  10. 10.
    W. K. Giloi. Towards the Next Generation Parallel Computers: MANNA and META. In Proceedings of ZEUS’95, June 1995.Google Scholar
  11. 11.
    Laurie J. Hendren, Xinan Tang, Yinchun Zhu, Guang R. Gao, Xun Xue, Haiying Cai, and Pierre Ouellet. Compiling C for the EARTH Multithreaded Architecture. In Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques (PACT ’96), pages 12–23, Boston, Massachusetts, October 20–23, 1996. IEEE Computer Society Press.CrossRefGoogle Scholar
  12. 12.
    Herbert H. J. Hum, Olivier Maquelin, Kevin B. Theobald, Xinmin Tian, Guang R. Gao, and Laurie J. Hendren. A Study of the EARTH-MANNA Multithreaded System. International Journal of Parallel Programming, 24(4):319–348, August 1996.Google Scholar
  13. 13.
    K. Inenaga, S. Kusakabe, T. Morimoto, and M. Amamiya, Hybrid Approach for Non-strict Dataflow Program on Commodity Machine. In International Symposium on High Performance Computiong (ISHPC), pages 243–254, November 1997.Google Scholar
  14. 14.
    Yuetsu Kodama, Hirohumi Sakane, Mitsuhisa Sato, Hayato Yamana, Shuichi Sakai, and Yoshinori Yamaguchi. The EM-X Parallel Computer: Architecture and Basic Performance. In Proceedings of the 22th Annual International Symposium on Computer Architecture, 1995.Google Scholar
  15. 15.
    S. Kusakabe and M. Amamiya. Dataflow-based Language V, chapter 3.3. pages 98–111. Ohmsha Ltd., 1995.Google Scholar
  16. 16.
    S. Kusakabe, T. Nagai, Y., Yamashita, R. Taniguchi, and M. Amamiya. A Dataflow Language with Object-based Extension and its Implementation on a Commercially Available Parallel Machine. In Proc. of Int’l Conf. on Supercomputing’95, pages 308–317, Barcelona, Spain, July 1995.Google Scholar
  17. 17.
    R. S. Nikhil. Cid: A Parallel, “Shared-Memory” C for Distributed-Memory Machines. Lecture Notes in Computer Science, 892:376-, 1996.CrossRefGoogle Scholar
  18. 18.
    R. S. Nikhil, G. M. Papadopoulos, and Arvind. *T: A multithreaded massively parallel architecture. In Proceedings of the 19th Annual International Symposium on Computer Architecture, pages 156–167, May 1992. Also as CSG-memo-325-1, Massachusetts Institute of Technology, Laboratory for Computer Science.Google Scholar
  19. 19.
    Mitsuhisa Sato, Yuetsu Kodama, Shuichi Sakai, and Yoshinori Yamaguchi. EM-C: Programming with Explicit Parallelism and Locality for the EM-4 Multiprocessor. In Michel Cosnard, Guang R. Gao, and Gabriel M. Silberman, editors, Proceedings of the IFIP WG 10.3 Working Conference on Parallel Architectures and Compilation Techniques, PACT’94, pages 3–14, Montréal, Québec, August 24–26, 1994. North-Holland Publishing Co.Google Scholar
  20. 20.
    K. E. Schauser, D. E. Culler, and S. C. Goldstein. Separation Constraint Partitioning —A New Algorithm for Partitioning Non-strict Programs into Sequential Threads. In Proc. Principles of Programming Languages, January 1995.Google Scholar
  21. 21.
    Xinan Tang, Oliver Maquelin, Gunag R. Gao, and Prasad Kakulavarapu. An Overview of the Portable Threaded-C Language. Technical report, McGill University, 1997.Google Scholar

Copyright information

© Springer-Verlag 1999

Authors and Affiliations

  • Shigeru Kusakabe
    • 1
  • Kentaro Inenaga
    • 1
  • Makoto Amamiya
    • 1
  • Xinan Tang
    • 2
  • Andres Marquez
    • 2
  • Guang R. Gao
    • 2
  1. 1.Dept. of Intelligent SystemsKyushu UniversityKyushuJapan
  2. 2.EE & CE DeptUniversity of DelawareDalewaveUSA

Personalised recommendations