***We apologize if you receive this message more than once.***
All,
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. We have decided for this release to be version 1.0 as, after
nine years of development, we now have implemented all the features we
originally set out to realize.
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. To demonstrate this, we have just
successfully run an HPX application on the full NERSC Cori
(http://www.nersc.gov/users/computational-systems/cori/) machine, a
cluster with 9,640 Intel Knight’s Landing compute nodes (655,520 cores).
The new C++ Standard facilities listed fit perfectly with some of our
extensions targeting asynchronous operations, 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 reduce 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 (http://khuck.github.io/xpress-apex/) and Intel
Amplifier or Intel Inspector.
In order to download HPX version 1.0, visit our download page
(http://stellar-group.org/libraries/hpx/downloads/) or our Github site
(https://github.com/STEllAR-GROUP/hpx). If you have any questions or
comments you can reach us on IRC (#ste||ar on Freenode) or email us at
[email protected].
--
Adrian Serio
Scientific Program Coordinator
2118 Digital Media Center
225.578.8506
_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users