The goal of the Exascale Plan is to develop a dynamic resource allocation environment that maintains high levels of performance of the C-SWARM framework in the presence of varying resource demands. In order to accomplish this, clear advances are required in the areas of efficiency, scalability, programmability, power, and resilience. The execution model adopted, and the runtime system reflecting it, not only complements the M&m algorithms well, but exposes and exploits new forms of parallelism for scalability. In addition, a programming interface will be devised and implemented on top of the runtime system to ensure that the M&m algorithms in the C-SWARM framework can be efficiently represented and communicated to the underlying system. A new method of fault tolerance will be developed to continue computation in the presence of errors through graceful system degradation. Lastly, an infrastructure for managing the measurement and control of power consumption correlated with the computational workflow will be devised.
An execution model reflects a computing paradigm to provide a set of guiding principles governing the co-design, organization, and operation of a computing system in support of its applications. ParalleX is an asynchronous parallel computing model with a global address space. It provides the conceptual foundation for the development of both the C-SWARM framework, and the next generation of the High Performance ParalleX (HPX) runtime system in support of the dynamic adaptive control of computing and resource management demanded by the M&m codes.
HPX is an execution runtime system software library based on the ParalleX execution model. It addresses the challenges by providing a framework based on dynamic adaptive techniques for resource allocation and exploitation of new forms of parallelism. The strategy employs forms of message-driven computation combined with lightweight user multi-threading for asynchronous control, reduction in latency effects, and contention avoidance. Advanced synchronization techniques contribute to these improvements and reduce overhead while supporting new forms of parallelism for scalability.
XPI (eXtreme Parallex Interface) is a programming interface for parallel applications and systems based on the ParalleX execution model. XPI provides a stable abstraction layer to the family of ParalleX implementation HPX runtime system software. As HPX evolves, XPI insulates application codes from such changes, ensuring stability of experimental application codes. XPI serves both as a target for source-to-source compilers of high-level languages and as a readible low-level programming interface syntax.
Our approach to software development for C-SWARM will be based on the principled development of generic and active libraries that will provide an abstract and domain-specific interface to the exascale runtime system. Besides filling the traditional library functions of providing access to specific scientific functionality, the libraries also act as an "insulation layer” between the C-SWARM framework, the HPX runtime system, and the hardware. That is, they provide a stable interface to the computational modelers, while making most effective use of the underlying run-time system and hardware platform to deliver its requested functionality and portable performance.
Northwest Institute for
Lead Team Member
University of Notre Dame,