Post navigation

About Hartmut Kaiser

Hartmut is an Adjunct Professor of Computer Science at Louisiana State University. At the same time, he holds the position of a senior scientist at the Center for Computation and Technology (LSU). He received his doctorate from the Technical University of Chemnitz (Germany) in 1988. He is probably best known through his involvement in open source software projects, mainly as the author of several C++ libraries he has contributed to Boost, which are in use by thousands of developers worldwide. His current research is focused on leading the STE||AR group at CCT working on the practical design and implementation of the ParalleX execution model and related programming methods. In addition, he architected and developed the core library modules of SAGA for C++, a Simple API for Grid Applications.

HPX is a C++ Standard Library for Parallelism and Concurrency. Building and using it on Windows just got much less involved. We have now integrated HPX into the VcPkg VC++ Packaging Tool. This tool is design to help you getting C and C++ libraries built and installed on Windows without hassle. It manages all package dependencies for you, such that — once HPX has been built — no additional settings have to be supplied to your build environment. Continue reading →

The STE||AR Group is proud to announce the release of HPX V1.0. While we call it version one, it is in fact the fifteenth official release of our library. This release has become possible as we now have implemented all the features we set out to put in place for this version.

HPX is the C++ Standard library for parallelism and concurrency. It implements all of the related facilities as defined by the C++ Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 parallel algorithms. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the C++ Concurrency TS, task blocks, data-parallel algorithms, executors, index-based parallel for loops, and many more. We also extend the existing C++ Standard APIs to the distributed case (e.g. compute clusters) and for heterogeneous systems (e.g. GPUs).

At its heart, HPX is an asynchronous many-task runtime system for the distributed world. It is portable in code and performance across a wide variety of architectures and operating systems. We have shown that it is usable on almost any machine from a Raspberry Pi to the biggest computers available to us. Applications relying on HPX will scale from small handheld devices up to machines with thousands of compute-nodes and millions of processors. For example, we have just successfully run an HPX application on the full NERSC’s Cori machine, a cluster with 9640 Intel Knight’s Landing compute nodes (655520 cores).

The new C++ Standard facilities listed mend themselves perfectly with some of our extensions targeting asynchronous operation, such as asynchronous parallel algorithms, asynchronous task blocks, or dataflow constructs. As a result, HPX changes the way we write programs in modern C++. It seamlessly enables a new asynchronous C++ Standard Programming Model which tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with concurrency. At the same time, HPX’s API is strictly aligned with the C++ standardization process which removes the barriers of adoption.

The code base of HPX is very mature and of very high code quality. Our extensive testing has definitely paid off. Many people have contributed to this release — we would like to thank all of them for their efforts. This release incorporates nearly 1500 commits and has closed almost 300 tickets and pull requests submitted by collaborators from all over the world. We have introduced several important changes:

We added various new higher-level parallelization facilities, such as more parallel algorithms, range based parallel algorithms, and channels — all well aligned with various C++ standardization documents.

We now support transparently migrating objects across compute-node boundaries, which is a major feature supporting dynamic load balancing in large distributed applications.

We have refactored our thread-scheduling subsystem for improved performance and less overheads.

We have added a new network transport module enabling direct support for Infiniband networks.

We have added a long list of new performance counters exposing different runtime parameters.

We have improved the integration with external diagnostic tools, such as APEX and Intel Amplifier or Intel Inspector.

For a complete list of new features and breaking changes please see our release notes. If you have any questions, comments, or exploits to report you can comment below, reach us on IRC (#stellar on Freenode), or email us at hpx-users@stellar.cct.lsu.edu. We value your input!

We can now announce the participants in the STE||AR Group’s 2016 Google Summer of Code! We are very proud to announce the names of those 6 students who this year will be funded by Google to work on projects for our group.

These recipients represent only a handful of the many excellent proposals that we had to choose from. For those unfamiliar with the program, the Google Summer of Code brings together ambitious students from around the world with open source developers by giving each mentoring organization funds to hire a set number of participants. Students then write proposals, which they submit to a mentoring organization, in hopes of having their work funded. Continue reading →

As HPC shifts its long range focus from peta- to exascale, the need for programmers to be able to efficiently utilize the entirety of a machine’s compute resources has become more paramount. This has grown increasingly difficult as most of the Top500 machines utilize, in some capacity, hardware accelerators like GPUs and coprocessors which often require special languages and APIs to take advantage of them. In C++ the concept of executors, as currently discussed by the C++ standardization committee, has created a possibility for a flexible, and dynamic choice of the execution platform for various types of parallelism in C++, including the execution of user code on heterogeneous resources like accelerators and GPUs in a portable way. This will also allow to develop a solution that seamlessly integrates iterative execution (parallel algorithms) with other types of parallelism, such as task-based parallelism, asynchronous execution flows, continuation style computation, and explicit fork-join control flow of independent and non-homogeneous code paths. Continue reading →

The STE||AR Group is proud to announce the release of HPX v0.9.11! In this release our team has focused on developing higher level C++ programming interfaces which simplify the use of HPX in applications and ensure their portability in terms of code and performance. We paid particular attention to align all of these changes with the existing C++ Standards or with the ongoing standardization work. Other major features include the introduction of executors and various policies which enable to customize the ‘where’ and ‘when’ of task and data placement. Continue reading →

We can now announce the participants in the STE||AR Group’s 2015 Google Summer of Code! We are very proud to announce the names of those 5 students who this year will be funded by Google to work on projects for our group.

These recipients represent only a handful of the many excellent proposals that we had to choose from. For those unfamiliar with the program, the Google Summer of Code brings together ambitious students from around the world with open source developers by giving each mentoring organization funds to hire a set number of participants. Students then write proposals, which they submit to a mentoring organization, in hopes of having their work funded. Continue reading →

The STE||AR Group is proud to announce a new formal release of HPX (V0.9.8) — a C++ runtime system for parallel and distributed applications of any scale. While this release is mainly based on contributions made by partners of the STE||AR Group from the Louisiana State University Baton Rouge (LA, USA) and the Friedrich-Alexander University Erlangen (Germany), it would not have been possible without the help of many people from all over the world. Thanks to everybody involved!

The first formal version of HPXPI (V0.1.0) is now available for download! Over the past few months the STE||AR Fellows at Louisiana State University, have been hard at work finalizing the first fully functional, open source implementation of the XPI specification. This release goes along with the next major release of the HPX runtime system (V0.9.8) which is used as the underlying implementation and which gives it a solid foundation ensuring high performance and wide portability. It is released as open source software under the Boost software license.Continue reading →

The STE||AR Group proudly announces the first release candidate of HPX (V0.9.8)! This release is mainly based on contributions made by partners from the Louisiana State University Baton Rouge (LA, USA) and the Friedrich-Alexander University Erlangen (Germany). Please see here for the release notes.Continue reading →

The release candidate 1 of the first formal version of HPXPI (V0.1.0) is now available for download! Over the past few months the STE||AR Fellows at Louisiana State University, have been hard at work finalizing the first fully functional, open source implementation of the XPI specification. This release goes along with the next major release of the HPX runtime system (V0.9.8) which is used as the underlying implementation and which gives it a solid foundation ensuring high performance and wide portability. It is released as open source software under the Boost software license. Continue reading →