The software, specification and programmer’s guide are accessible from:
with the following respective filenames and md5 checksums:
upcxx-2018.3.0.tar.gz 93c7f4173dae7233e8cbb8dcb92a645f
upcxx-spec-V1.0-Draft6.pdf 90c088eabd99175ea32d5c6d7ee081ee
upcxx-guide-2018.3.0.tar.gz 073c7ba2b1ff2258e0462f2ee2fa2575
Please use the issue tracker to report any problems or make feature requests. Alternatively, if you have private feedback or questions not suited to a public venue, you can email: pag...@lbl.gov.
We welcome all feedback, especially with respect to the new features.
Changes since the 2017.9.0 release:
This release supports most of the functionality specified in the UPC++ 1.0 Draft 6 Specification
New features/enhancements:
Non-Contiguous RMA interface is now fully implemented.
Remote Atomics have been revamped, expanded and implemented. The current implementation leverages hardware support in shared memory and NIC offload support in Cray Aries.
View-Based Serialization has been implemented.
Implementation of local memory translation (achieved with global_ptr::local() or global_ptr(T*)). This encompasses a limited implementation of teams to support upcxx::world and upcxx::local_team so clients may query their local neighborhood of ranks.
Generalized completion. This allows the application to be notified about the status of asynchronous UPC++ operations in a handful of ways. For each event, the user is free to choose among: futures, promises, callbacks, delivery of remote rpc, and in some cases even blocking until the event has occurred.
Internal use of lock-free datastructures for lpc queues is now enabled by default. See INSTALL.md for instructions on how to build UPC++ with the older lock-based datastructure.
Improvements to internal assertion checking and diagnostics.
Improvements to upcxx-run and run-tests.
The following features from the specification are not yet implemented:
Teams: team::split, team_id, collectives over teams, passing team& arguments to RPCs, constructing dist_object over teams.
Vector broadcast broadcast(T *buf, size_t count, ...)
Asynchronous barrier, barrier_async
User-defined serialization interface
Notable bug fixes:
Issue 119: Build system is now more robust to GASNet-EX download failures.
Issue 125: Fix upcxx-run exit code handling.
Due to a packaging error, we have removed the 2018.3.0 download from our site, http://upcxx.lbl.gov, and uploaded a corrected version, labeled as 2018.3.2:
https://bitbucket.org/upcxx/upcxx/downloads/upcxx-2018.3.2.tar.gz
MD5: 2a567677fdcb22b82f621223da61ca0f
We encourage all users who may have the 2018.3.0 release to download this corrected release.
The 2018.3.0 releases of the Specification and Programmer’s Guide are unchanged.
-Paul H. Hargrove on behalf of the Pagoda project at Lawrence Berkeley National Lab