This week, through the efforts of our STE||AR graduate student Alireza, we have added an IRC logger to our #ste||ar and #ste||ar-dev channels. This logger will make all conversations on these channels searchable, link-able, and publicly available through a Continue reading
We can now announce the participants in the STE||AR Group’s 2017 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
This past week members of the HPX team were invited to give a talk on Jon Kalb’s weekly CppChat. Bryce Adelstein-Lelbach, Hartmut Kaiser, Thomas Heller, and John Biddiscombe were invited onto the show to talk about HPX, our programming model, 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.
How to Download:
- HPX V1.0.0: release notes
File MD5 Hash zip (5.7M)
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 email@example.com. We value your input!
After nine years of development HPX version 1.0.0 is being prepared to ship! The STE||AR Group is exited to share this news, and therefore, has prepared a release Continue reading
The STE||AR Group is honored to have been selected as one of the 2017 Google Summer of Code (GSoC) mentor organizations! This program, which pays students over the summer to work on open source projects, has been a wonderful experience for the past three years that we have been accepted by the program. Interested students can find out more about the details of the program on GSoC’s Continue reading
Gauging the interest in an open source project is often very difficult. People can be downloading and using your software without any developers being aware. Additionally, many projects may not have users in a direct sense but do provide other library and application Continue reading
Version 1.0 approaches! The STE||AR Group is proud to announce the release of HPX v0.9.99. This release is significant as HPX is nearly feature complete. Over the next several months the STE||AR Group will continue to test and polish HPX’s API and documentation. The feedback and experience gained from the community’s utilization this release will provide guidance on where to add the finishing touches for v1.0. Continue reading
When people struggle with HPX, we often find that their confusion and frustration is rooted in a lack of understanding of modern C++. In order to address this issue, the STE||AR Group is hosting a 2016 C++ summer lecture series. These sessions will Continue reading