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.
...end of transition announcement.
How to use UPC++
- Installing UPC++
- Compiling UPC++ applications
- Running UPC++ applications
- A tutorial of writing UPC++ applications
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++ Multidimensional Arrays: https://bitbucket.org/upcxx/upcxx-arrays
- UPC++ Distributed Arrays: https://bitbucket.org/upcxx/upcxx-darrays
- Habanero-UPC++: http://habanero-rice.github.io/habanero-upc
If you have questions or suggestions about UPC++, or would like to contribute to UPC++, please use our public users list firstname.lastname@example.org, archived here.
To reach our team privately, contact email@example.com.