HPX V0.9.99-rc1 Available

The STE||AR Group is proud to announce the first release candidate of HPX V0.9.99!

In preparation for the next major release of HPX we have put together a first release candidate. Please download one of the tarballs

  • HPX V0.9.99-rc1:
    File MD5 Hash
    zip (5.5M) 3f70d33f0ca737dc55e15e106abef259
    gz (3.7M) 10a0ad210ac33b5a91e25a9a375ce585
    bz2 (3.2M) d78657bce8435c0998648f09b280acee
    7z (2.8M) b109408218d5aa1320efd9fc7a0671d6

or check out the tag ‘0.9.99-rc1’ from the repository here and verify whether your code builds and runs fine when using this version.

Please see for a list of new features and fixed problems in this release here.

Please report any problems you might encounter through our ticket system.
We plan to do the final release of HPX V0.9.99 on July 15th, 2016.

 

HPX and Index-based C++ Parallel Loops

In Jacksonville at the winter 2016 C++ standardization meeting, Intel presented the second revision of their standardization proposal targeting index-based parallel for-loops (the latest document at the time of this writing is P0075R1). This document describes a couple of basic parallel for-loop constructs which complement the existing parallel algorithms which we have already implemented for quite some time in HPX. The following is taken from this document:

HPX and C++17

During the Jacksonville meeting of the C++ standards committee last week the so called Parallelism TS was accepted into the next official International Standard, also known as C++17. We can now expect for all major vendors of C++ compilers to implement the very same parallelism facilities as HPX has exposed for almost 2 years already!

A while back, we wrote about how HPX implements parallel algorithms. At the time of that writing, these parallel algorithms were freshly published as a WG21 Technical Specification with the goal of moving them into the main C++ International Standard at some point in the future. Since then, we have continued to work hard on implementing HPX versions of the proposed algorithms. In addition, we have added extensions in our implementation such as the “task” policy which enables asynchronous execution of the algorithm. We have also spent a lot of time tuning our implementation to make it as performant as possible. For instance, we have shown that it is possible for the relatively higher-level parallelization abstractions in HPX to match or to even outperform the performance of equivalent applications based on well-known and well-honed technologies like OpenMP.

The STE||AR Group is proud of the fact that our implementation in HPX has provided implementation, usage experience, and early feedback to the C++ committee. These contributions have helped to get this specification into the new standard. We hope to continue to be a flexible and valuable testbed for all future standardization proposals relating to parallelism and concurrency.

Spreading the Word

A core belief of the STE||AR Group is that, in order to be successful in our efforts to revolutionize computing, we must garner the support and enthusiasm of the broader community. We were pleased to learn that a software engineer in Germany, Harris Brakmic,  wrote a great blog post about witting applications in HPX. One section of his post that we were very excited about was his conclusion:

C++ and the Heterogeneous Challenge

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.

HPX V0.9.11 Available!

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.

GSoC 2015 Results: Success!

This summer has been an exciting time for the STE||AR Group’s GSoC mentors and students alike! We were very pleased with the dedication and effort of all five of our participants. Our students made contributions to three of our software products: HPX, a distributed C++ runtime system which comes with a standards compliant API and allows users to scale their applications across thousands of machines; LibGeoDecomp, an auto-parallizing library for petascale computer simulations which is able to take advantage of HPX to better adapt fluctuating workloads to the system; and LibFlatArray, a highly efficient multidimensional array library which provides an object-oriented interface but stores data in a vectorization-friendly Struct-of-Arrays format.

CppCon 2015

Grant Mercer and I had the opportunity to present our talk, ‘Parallelizing the STL’, at Cppcon 2015. We both consider ourselves lucky for being able to attend the conference. The buzz of the atmosphere and C++ community was truly exciting to witness. Attendees were both from all over the world and performance critical industries ranging from gaming and finance to scientific computing. As Jon Kalb highlighted in his talk, C++ is receiving a resurgence for several performance related reasons: Moore’s Law is coming to end and the subsequent shift to multi-core architectures, increased computational demands from the private sector, and the rise of power constrained mobile architectures. Combined with the interest in the standardization process, C++17 and beyond, there was a palpable excitement.

HPX Tutorial Promo Video

As a build up for our Supercomputing tutorial, the STE||AR Group has put together a promotional video to generate interest in HPX. The video gives viewer a high level overview of what HPX is and what will be discussed at the tutorial. The SC15 Tutorials Committee will circulate this and other tutorial videos on its YouTube playlist. We would like to thank our colleague Randy Dannenberg and his students for helping us put this together!

On Tour: HPX Tutorial at SC15!

Howdy! The STE||AR Group welcomes you to participate in a hands on HPX tutorial which will be given this year in Austin, Texas as part of the SC Tutorials program. STE||AR Fellows from Louisiana State University, Friedrich-Alexander Universitat, Lawrence Berkeley National Laboratory, and University of Oregon will present “Massively Parallel Task-Based Programming wih HPX” which will consist of five parts: