Skip to main content

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

  • Conference paper
  • First Online:
  • 72 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1586))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. 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. 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. 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. 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.

    Article  Google Scholar 

  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. 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. 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. W. K. Giloi. Towards the Next Generation Parallel Computers: MANNA and META. In Proceedings of ZEUS’95, June 1995.

    Google Scholar 

  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.

    Chapter  Google Scholar 

  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. 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. 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. S. Kusakabe and M. Amamiya. Dataflow-based Language V, chapter 3.3. pages 98–111. Ohmsha Ltd., 1995.

    Google Scholar 

  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. R. S. Nikhil. Cid: A Parallel, “Shared-Memory” C for Distributed-Memory Machines. Lecture Notes in Computer Science, 892:376-, 1996.

    Article  Google Scholar 

  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. 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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

José Rolim Frank Mueller Albert Y. Zomaya Fikret Ercal Stephan Olariu Binoy Ravindran Jan Gustafsson Hiroaki Takada Ron Olsson Laxmikant V. Kale Pete Beckman Matthew Haines Hossam ElGindy Denis Caromel Serge Chaumette Geoffrey Fox Yi Pan Keqin Li Tao Yang G. Chiola G. Conte L. V. Mancini Domenique Méry Beverly Sanders Devesh Bhatt Viktor Prasanna

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag

About this paper

Cite this paper

Kusakabe, S., Inenaga, K., Amamiya, M., Tang, X., Marquez, A., Gao, G.R. (1999). Implementing a non-strict functional programming language on a threaded architecture. In: Rolim, J., et al. Parallel and Distributed Processing. IPPS 1999. Lecture Notes in Computer Science, vol 1586. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0097894

Download citation

  • DOI: https://doi.org/10.1007/BFb0097894

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65831-3

  • Online ISBN: 978-3-540-48932-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics