UPC++ 2020.3.0 Release Announcement

Skip to first unread message

Paul Hargrove

Mar 13, 2020, 1:03:48 AM3/13/20
to UPC++, upcxx-a...@lbl.gov

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 

Reply all
Reply to author
0 new messages