The KeLP Programming System
KeLP provides run time support for general blocked data decompositions and the management of the underlying irregular communication. The KeLP programmer may customize load balancing activity to the application, and treat interprocessor communication at a very high level. KeLP is useful in multi-resolution applications, including the multi-level adaptive method shown here. It facilitates performance tuning in uniform methods, too, i.e. to evaluate optimal processor geometries at run time.
KeLP encapsulates communication activity using a model known as communication orchestration. Under this model, all communication is expressed in terms of atomic array section moves. The KeLP programmer expresses and optimizes data motion and decomposition using high-level geometric set operations and may specify elaborate interpolation or coupling functions to handle complicated boundary conditions arising in multidisciplinary applications.
KeLP is simple and intuitive, and has a quick learning curve. It defines only 7 new data types plus a small number of primitives to manipulate them. KeLP provides an easily understood model of locality that ensures that applications achieve portable performance across a diverse range of platforms including IBM SP2, Cray T3E, SGI-Cray Origin 200, and clusters of workstations running AIX, Solaris, and Linux. Applications may also be developed on single processor workstations.
KeLP supports a task parallel model which isolates parallel coordination activities from numerical computation. This simplifies the design of application software and promotes software re-use. In particular the KeLP programmer may plug in existing serial numerical kernels that have known numerical properties and leverage mature compiler technology. These kernels may be written in Fortran 90 or 77, or any other language the programmer chooses.
KeLP applications may be written in a dimension-independent form which can facilitate development of 3D applications that have a simpler analog in 2D. The programmer may develop the parallelization logic in two dimensions, without having to incur the delays of running a full-scale 3D computation on a mainframe. We have found dimension-independence to be useful in reducing development times since the programmer can effectively debug on a workstation.
Writing your application with KeLP. If you think that KeLP could help you build your parallel structured application, please let us know. For more information, please send us email at firstname.lastname@example.org.
Through the application libraries, the KeLP infrastructure presents
computational scientists with high-level tools that allow them to concentrate
on the application and mathematics instead of low-level concerns of data
distribution and interprocessor communication. Such support enables scientists
to develop complicated applications in a fraction of the time that would
have been required if the application had been developed in MPI alone.
The KeLP distribution includes example application libraries which may
be used as templates for deriving new ones.
Home | Contact | Publications | Software | Picture Gallery | Applications | Future
Dept. of Computer Science and Engineering, Jacobs School of Engineering,
You are visitor number
since December 7, 1997.