2017 · 27 citations · 4 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureData StructuresDistributed SystemsData Movement OptimizationDistributed Memory ProgrammingHardware AccelerationInterprocess CommunicationMemory HierarchyParallel Data Structures
We describe UPC++ V1.0, a C++11 library that supports APGAS programming. UPC++ targets distributed data structures where communication is irregular or fine-grained. The key abstractions are global pointers, asynchronous programming via RPC, and futures. Global pointers incorporate ownership information useful in optimizing for locality. Futures capture data readiness state, are useful for scheduling and also enable the programmer to chain operations to execute asynchronously as high-latency dependencies become satisfied, via continuations. The interfaces for moving non-contiguous data and handling memories with different optimal access methods are composable and closely resemble those used in modern C++. Communication in UPC++ runs at close to hardware speeds by utilizing the low-overhead GASNet-EX communication library.
4
UPC++: A PGAS Extension for C++
Yili Zheng, Amir Kamil, Michael Driscoll et al. · 2014 · 176 citations · Full text