Objective: To define and implement a programming style, paradigm, and language for both sequential and parallel architectures that facilitate ease of programming, portability of code, efficient code generation, and ease of installation on new architectures, thus reducing the reluctance of engineers to design and implement new architectures.
Approach: (1) Study the variety of ESS and NASA applications that are facilitated by high-performance computing.Determine the classes of computer architectures that have the potential for satisfying some or all of these high performance needs. (2) Design a paradigm that can potentially both express the ESS/NASA applications and can be efficiently mapped on to the designated architecture classes. (3) Define a syntax and semantic that represent the paradigm. (4) Implement a functionally correct compiler on a sequential machine that embodies the defined language. (5) Develop code generators for several test architectures. (6) Express several ESS/NASA applications in the defined language. (7) Clean up the compiler and make it available publicly. (8) Seek and cultivate collaborations with computer vendors to implement architecture-specific optimized code generators.
Accomplishments: Approach steps 1 through 7 are complete or nearly complete. The language is "aCe C" (Architecture-adaptive Computing Environment for C). The compiler is complete and runs on several sequential machines. It generates code for four types of architectures: sequential (Silicon Graphics [SGI]), SIMD (MasPar MP-2), MIMD (CRAY T3D), and clustered workstations (SGI/PVM). Two multithousand-line applications have been written in aCe C: an adaptive refinement finite element fluid code (1800 lines) and a Piecewise Parabolic Method fluid code (4000 lines).
Status/Plans: Currently version 0.1 is available on the World Wide Web; it supports the CRAY T3D, MasPar MP-2, and SGI workstations. A PVM version running under Linux is being completed.
Point of Contact:
John E. Dorband
Goddard Space Flight Center
dorband@nibbles.gsfc.nasa.gov
301-286-9419