1. upcxx
  2. upcxx


Clone wiki

upcxx / Home

2016-11-1: UPC++ Transition Period...

Due to the arrival of new funding and a restructuring of the development team, for the next few months UPC++ will be undergoing a transition phase. During this time the code will be refactored substantially to support some enhancements and new and exciting features. As a consequence, development of the main repository will be frozen with respect to outside contributions (write access to the repository will be universally repealed). The standing repository will remain available in a read-only state indefinitely. Please contact us (addresses at bottom of this page) if you have plans to work with your own enhancements to UPC++ during the transition period.

Upon the unveiling of the new repository, users may encounter some degree of backward-incompatability. Parts of the UPC++ "core" API will change, and some parts may be deprecated. For most of those we will try to maintain a functional implementation against the newer API. As for non-core functionality (e.g. the "upcxx-arrays" extension), initial support will be lacking until some later date. Contact us if you have special needs.

New features under consideration:

  • Improved support for threading, especially thread specialization for handling remotely invoked tasks concurrently with ongoing local compute in a synchronization free manner.
  • Remote atomics (compare-and-swap, fetch-add, etc.)
  • Teams (subsets of ranks).
  • Improved strided and indexed remote data access.

Stay tuned!

...end of transition announcement.

How to use UPC++

UPC++ Application Examples

  • Embree: ray tracing kernels
  • Convergent Matrix: a dense matrix abstraction for distributed-memory HPC platforms, supporting matrix assembly via asynchronous commutative update operations.
  • miniGMG: a geometric multigrid mini-benchmark
  • GUPS, sample sort, 2-D FFT, dense matrix-matrix multiplication (SUMMA), LULESH (in upcxx/examples)
  • NPB CG and MG, merge sort, knapsack, stencil (require upcxx-arrays extension)
  • oughtred: a distributed-memory path-tracer
  • HPGMG-FV: High-performance Geometric Multigrid
  • parSRA: a framework to execute short read aligners on compute clusters.
  • BoxLib: Block-Structured AMR Framework
  • symPACK: solver for sparse symmetric matrices

UPC++ Publications

If you have questions or suggestions about UPC++, or would like to contribute to UPC++, please use our public users list upcxx@googlegroups.com, archived here.

To reach our team privately, contact pagoda@lbl.gov.