Subject: UPC++ 2020.3.0 Release Announcement
The Pagoda project at Lawrence Berkeley National Laboratory is proud to announce the release of UPC++ 2020.3.0, now available from upcxx.lbl.gov. This release includes extensive new support for non-trivial serialization of user-defined types. Additionally, this release introduces numerous enhancements and usability improvements, as detailed in the ChangeLog. Highlights are listed below.
We have also recently added a distributed array facility "dist_array" to the UPC++ Extras package (a collection of examples, extensions and tutorial materials). This prototype extension library implements a scalable distributed shared array abstraction over UPC++. It supports convenient 1-D blocking of array elements in a style deliberately based upon UPC, with some semantic improvements.
Finally, we would like to take this opportunity to advertise our UPC++ Training site, which includes videos of past tutorials and hands-on exercises.
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.
-Paul H. Hargrove, on behalf of the Pagoda Project at LBNL
Change Highlights:
The install and run-tests scripts have been replaced with a configure script (with GNU autoconf-compatible options) and corresponding make all, make check and make install steps.
There is no longer a requirement for Python2.7. While upcxx-run still requires a Python interpreter, both Python3 and Python2 (>= 2.7.5) are acceptable.
Added support for non-trivial serialization of user-defined types. See the new chapter of the programmer's guide for an introduction, and the specification for all the details.
Implement upcxx_memberof(_general)(), enabling RMA access to fields of remote objects
upcxx::promise now behaves as a CopyAssignable handle to a reference-counted hidden object, meaning users no longer have to worry about promise lifetime issues.
atomic_domain<T> is now implemented for all 32- and 64-bit integer types, in addition to the fixed-width integer types (u)int{32,64}_t
atomic_domain<T> implementation has been streamlined to reduce overhead, most notably for targets with affinity to local_team using CPU-based atomics
Improve GASNet polling heuristic to reduce head-of-line blocking
Installed CMake package file is now more robust, and supports versioning
global_ptr<T> now enforces many additional correctness checks in debug mode
Significantly improve compile latency associated with upcxx compiler wrapper script
Download filenames and their md5 checksums:
upcxx-2020.3.0.tar.gz 1df7309cb41630d925a40133d7b58932
upcxx-spec-2020.3.0.pdf 7c9484debef3bd6ef07f86c7d3d2fa84
upcxx-guide-2020.3.0.pdf 59c12e83792bbd033892d3ac3556a77b