The Pagoda project at Lawrence Berkeley National Lab is proud to announce a public beta release of UPC++. This release notably adds promise/continuation/rpc-based signalling for operation completion which was not part of our previous release in September 2017. A ChangeLog appears below. As with the previous release, we include a Specification and a Programmer's Guide with many examples to get you started.
The software, specification and programmer’s guide are accessible from:
with the following respective filenames and md5 checksums:
We welcome your feedback, especially with respect to the new features, at that address.
This release may not be performant, and may be unstable or buggy. Performance and stability improvements will appear in our upcoming March 2018 release.
### 2018.01.31: Release 2018.1.0 BETA
This is a BETA preview release of UPC++ v1.0. This release supports most of the
functionality specified in the UPC++ 1.0 Draft 5 Specification.
* Generalized completion. This allows the application to be notified about the
status of 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.
* Enabled by default. See INSTALL.md in the archive for instructions on how
to build UPC++ with the older lock-based datastructure.
* Improvements to the `upcxx-run` command.
* Improvements to internal assertion checking and diagnostics.
The following features from that specification are not yet implemented:
* Vector broadcast `broadcast(T *buf, size_t count, ...)`
* Non-contiguous transfers