UPC++ Beta Release

Skip to first unread message

Scott Baden

Feb 1, 2018, 8:34:38 PM2/1/18
to UPC++, Paul Hargrove

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:

   upcxx-2018.1.0.tar.gz       24b832a682e5bd01405db56d953a0b49

   upcxx-spec-V1.0-Draft5.pdf  3cb90441a13793fee855f8fe8fdd3567

   upcxx-guide-2018.1.0.tar.gz 406208cbc2500d5862874227a5835557

Please use the issue tracker to track any problems.  Alternatively, if you have private feedback or questions not suited to a public venue, you can email: pag...@lbl.gov.

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.

## ChangeLog

### 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.

New features/enhancements:

* 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:

* Teams

* Vector broadcast `broadcast(T *buf, size_t count, ...)`

* `barrier_async`

* Serialization

* Non-contiguous transfers

* Atomics

Reply all
Reply to author
0 new messages