Our technical strategy focuses on the research and development of advanced technologies for extreme-scale computing and future exascale systems. Through funded collaborations with government and industry partners, CREST is exploring and creating new classes of computing system software and libraries. Current research and development focuses on the following key initiatives:
ParalleX is an experimental and evolving parallel execution model derived to exploit the opportunities and address the challenges of emerging technology trends to ensure effective performance gain into the Exascale era of the next decade. At the core of the ParalleX strategy is a new framework to replace static methods with dynamic adaptive techniques including the use of runtime systems and introspective control. ParalleX is a crosscutting model to facilitate co-design and interoperability among system component layers from hardware architecture to programming interfaces.
XPI: eXtreme Parallex Interface
XPI is a programming interface for parallel applications and systems based on the ParalleX execution model. XPI provides a simple 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 readable low-level programming interface syntax. XPI is experimental and supports current on-going sponsored research projects.
High-performance networks (HPNs) will play an important role in the success of mission critical, net-centric operations as data volumes and near real-time data processing requirements continue to increase. With high bandwidth, low latency and high reliability, HPNs provide great benefit to organizations that rely on distributed computing environments.
HPX-5 is an advanced supercomputing runtime system that implements the ParalleX model and provides low-level support for XPI. HPX makes use of lightweight threads and an active global address space that allows both code and data to freely move across the system in order to adapt to rapidly changing computational needs in applications as well as environmental factors such as system load, power utilization, real-time events, and network performance. HPX targets cutting-edge concepts in high-performance computing such as a fast M:N coroutines that can migrate between physical nodes, lock-free synchronization of parallel operations, software-defined interconnect networks, distributed atomics, power-aware work scheduling, and support for distributed and multi-core embedded platforms.
Parallel Graph Algorithms
Graph algorithms and data structures are fundamental to data-intensive computations. CREST is focusing on providing fundamental, new understandings of the basics of large-scale graph processing and how to build scalable systems to efficiently solve large-scale graph problems. CREST is designing and implementing a generic graph library using the ParalleX model. This library will be based on concepts from the Parallel Boost Graph Library, but with relevant changes and refactoring based on the extra features provided by ParalleX compared to those in previous programming models.
CREST is developing programming languages to increase programmer productivity while still maintaining performance. For example, CREST is directly involved in the C++ standardization process, and is working to provide better error checking for template-based code. CREST is also developing high-level languages for graph computations; the goal of these languages is to provide simpler methods for expressing these computations without harming their run-time performance.