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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
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.
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.
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.
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.
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.
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.
W. K. Giloi. Towards the Next Generation Parallel Computers: MANNA and META. In Proceedings of ZEUS’95, June 1995.
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.
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.
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.
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.
S. Kusakabe and M. Amamiya. Dataflow-based Language V, chapter 3.3. pages 98–111. Ohmsha Ltd., 1995.
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.
R. S. Nikhil. Cid: A Parallel, “Shared-Memory” C for Distributed-Memory Machines. Lecture Notes in Computer Science, 892:376-, 1996.
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.
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.
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.
Xinan Tang, Oliver Maquelin, Gunag R. Gao, and Prasad Kakulavarapu. An Overview of the Portable Threaded-C Language. Technical report, McGill University, 1997.
Author information
Authors and Affiliations
Editor information
Rights 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