Future scientific programming on parallel machines

  • Arvind
  • Kattamuri Ekanadham
Session 7: Parallel Processing III
Part of the Lecture Notes in Computer Science book series (LNCS, volume 297)


A language for large scientific applications should facilitate both the encoding and debugging of programs at the highest level possible, and the generation of efficient code for parallel machines. Often these two requirements cannot coexist, and trade-offs must be made. Functional and other declarative languages offer relief on both counts. The use of higherorder functions, especially in curried forms, can raise the level of programming dramatically. In addition, such languages often have straightforward operational semantics which admits tremendous opportunities for parallel execution. Programs in declarative languages thus eliminate the problem of "detecting parallelism". This paper illustrates programming in one such language, Id Nouveau, and contrasts it with programming in Fortran. Using an excerpt from an application known as SIMPLE, it is shown how a program can be composed in Id Nouveau from small functions that directly relate to the mathematical and physical concepts of the problem. The difficulty of expressing these concepts in Fortran is discussed. Finally, it is shown that by performing simple transformations, such as in-line substitution of functions, the resulting Id Nouveau code becomes as efficient as an equivalent Fortran program written to run efficiently on a parallel machine.


Parallel Machine Operational Semantic Parallel Execution Fortran Program Interior Node 
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.

8. Bibliography

  1. [1]
    Abelson, H. and G.J. Sussman, "Structure and Interpretation of Computer Programs", The MIT Press, Cambridge, Mass. (1985).Google Scholar
  2. [2]
    Arvind and R.S.Nikhil, "Executing a Program on the MIT Tagged-token Dataflow Architecture", Proceedings of PARLE conference, Eindhoven, The Netherlands (June 1987).Google Scholar
  3. [3]
    Arvind, R.S.Nikhil, K.K.Pingali, "I-structures: Data structures for Parallel Computing", To appear in Proceedings of Workshop on Graph Reduction, Santa Fe, New Mexico (Sept28–Oct1, 1986).Google Scholar
  4. [4]
    Arvind, R.S. Nikhil and K.K. Pingali, "Id Nouveau reference Manual, Part II: Operational Semantics", CSG Memo, MIT Laboratory for Computer Science, Cambridge, Mass. (April 17, 1987).Google Scholar
  5. [5]
    Backus,J., "Can programming be liberated from the von Neumann style? A functional style and algebra of programs", Communications of the ACM, vol 21, No 8. (Aug 1978).Google Scholar
  6. [6]
    Crowley,W.P., C.P.Hendrickson and T.E.Rudy, "The SIMPLE code", UCID 17715, Lawrence Livermore Laboratory (Feb 1978).Google Scholar
  7. [7]
    Culler, D.E., "Effective Dataflow Execution of Scientific Applications", Ph.D. Thesis, MIT Laboratory for Computer Science, Cambridge, Mass. (expected Dec 1987).Google Scholar
  8. [8]
    Ekanadham, K. and Arvind, "SIMPLE: Part I — An Exercise in future scientific programming, RC 12686, IBM T.J.Watson Research Laboratory, Hawthorne, New York (April 29, 1987). bebitem.Google Scholar
  9. [9]
    Johnsson,T., "Lambda lifting: transforming programs to recursive equations, Springer Verlag LNCS 201 (Proc. Functional Prog. lang. and Computer Arch., Nancy, France. (Sept. 1985).Google Scholar
  10. [10]
    Karp, A.H., "Programming for Parallelism", Computer, vol 20, No 5, pp.43–57 (May 1987).Google Scholar
  11. [11]
    Lubeck, O., J. Moore and R. Mendez, "A benchmark comparison of 3 supercomputers: Fujitsu VP-200, Hitachi S810,20 and Cray X-MP/2"/ Computer, vol 18, No 12, pp.10–24 (Dec 1985).Google Scholar
  12. [12]
    Nikhil, R.S., "Id Nouveau reference Manual, Part I: Syntax", CSG Memo, MIT Laboratory for Computer Science, Cambridge, Mass. (April 17, 1987).Google Scholar
  13. [13]
    Nikhil, R.S., "Id World reference Manual", CSG Memo, MIT Laboratory for Computer Science, Cambridge, Mass. (April 17, 1987).Google Scholar
  14. [14]
    Padua, D.A. and M.J. Wolfe, "Advanced compiler optimizations for supercomputers, CACM Vol 29, No 12, pp.1184–1201 (Dec 1986).Google Scholar
  15. [15]
    Steele, G.L., "Common Lisp: The Language", Digital Press, 30 North Ave., Burlington, Mass. (1984).Google Scholar
  16. [16]
    Traub, K.R., "A Compiler for the MIT Tagged-token Dataflow Architecture", Master's Thesis, TR-370, MIT Laboratory for Computer Science, Cambridge, Mass. (Aug 1986).Google Scholar
  17. [17]
    Turner, D.A., "The Semantic elegance of applicative languages", Proc. of ACM conf. on Functional programming languages and Computer architecture, Portsmouth, New Hampshire (Oct 1981).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Arvind
    • 1
  • Kattamuri Ekanadham
    • 2
  1. 1.Laboratory for Computer ScienceMassachusetts Institute of TechnologyCambridge
  2. 2.IBM T.J.Watson Research CenterYorktown Heights

Personalised recommendations