The C++ Standards Library for Concurrency and Parallelism
The STE||AR Group is an international team of researchers who understand that a new approach to parallel computation is needed. Our work is crafted around the idea that we need to invent new ways to more efficiently use the resources that we have and use the knowledge that we gain to help guide the creation of the machines of tomorrow. While we develop several software products, the library which is most heavily developed and core to our team is HPX.
HPX (High Performance ParalleX) is a general purpose C++ runtime system for parallel and distributed applications of any scale. It strives to provide a unified programming model which transparently utilizes the available resources to achieve unprecedented levels of scalability. This library strictly adheres to the C++11 Standard and leverages the Boost C++ Libraries which makes HPX easy to use, highly optimized, and very portable. HPX is developed for conventional architectures including Linux-based systems, Windows, Mac, and the BlueGene/Q, as well as accelerators such as the Xeon Phi.
We envision HPX as a library which provides services to applications which makes writing efficient, maintainable, and scalable parallel and distributed codes much simpler than current popular paradigms. Currently HPX is used to develop scientific and industrial applications and in the future we hope to expand its influence to include common applications that touch our everyday lives.
If you are looking for a project which incorporates cutting edge HPC research, runtime library development, and C++ standardization check out our ideas page and contact us either though the #ste||ar channel on IRC (Freenode) or via an email at
STE||AR Group 2017 Projects
HPXCL – Asynchronous Integration of CUDA and OpenCL to HPXMassively parallel applications are in the dawn of our future. The scale of problems and the amount of data available have made it infeasible to...
Re-implementing hpx::util::unwrapped and unifying the API of hpx::wait and hpx::whenCurrently the following important functions of the HPX API: hpx::util::unwrapped hpx::wait_(all|any|each|some) hpx::when_(all|any|each|some)...
Work on Parallel AlgorithmsMy proposal is to complete the implementation of the N4409 C++ STL parallelization standard algorithms in HPX. Since #1141 has mostly been resolved...
Work on Parallel Algorithms for HPXHPX is “The C++ Standards Library for Concurrency and Parallelism”. So, implementing C++17 parallelism like N4409 is very important. Most of parallel...