An Evaluation of High-Performance Functional Computing
Project Leaders
Objectives
- Design, develop, and deliver
- high-performance, mixed-language compilers and runtime systems for NOWs, MPPs, and multi-threaded architectures
- a seamless, high-performance mixed-language interface
- architecture-independent, inter-operable debugging and performance monitoring tools
- Mixed-Language Programming
- Integrate the implementation of Sisal 90 compilers and runtime systems with Fortran, C, and C++
- promotes code re-use
- increases the appeal of functional programming
- Automate the Sisal Foreign Language Interface
- exchange of non-scalar objects
- exchange of data distribution and alignment information
An example using a FORTRAN molecular dynamics code
In the original code, 90% of the work was done by 10% of the code (the
modules NON-BOND and OTHER-FORCES). This kernel was parallelized by
converting it to SISAL. This had some impact on FORCE-RUN and
CALC-FORCES, but the rest of the code was unchanged. This leveraged
the development time put into the old code (I/O interface, etc...)
into the new parallel code. Parts of the algorithm were rethought,
but the effects were confined.
Mixed-Language Debugging
-
Only a sequential debugger is necessary since Sisal's functional
semantics guarantee determinate behavior
- Incorporate Sisal source information into the C code generated by
the Sisal compiler
- Extend dbx to understand and make use of the incorporated Sisal
source information
Distributed-memory Implementations
-
Develop static analysis for array and loop distribution
-
Include directives and pragmas for data distribution and alignment
-
Develop a compiler and runtime system based on Split-C and one based on MPI
-
Exploit computation/communication overlap
Impact
Low-cost development of parallel portable software through:
- code reuse
- implicit parallelism (eliminate time-dependent errors)
- seamless language interface and inter-operable tools
- Robust Sisal, Fortran, C, and C++ tools available on commercial
MPP systems.
Current Work
- Sisal 90 front-end
- Automatic Foreign language Interface
- Semantic array and loop analysis
- Array distribution and alignment pragmas
- Mixed-language debugger
- Sisal to Split-C
- Sisal to C+MPI
Back to PDPC Projects