PGAS in C++: A Portable Abstraction for Distributed Data Structures
summary
Argues that the PGAS model gives a portable C++ abstraction that uses global pointer objects and RDMA to implement distributed data structures. Presents BCL, a BSD licensed library that builds hash tables, queues and dense and sparse matrices on top of MPI OpenSHMEM and GASNet EX. Reports RDMA atomics and puts on the target machines cost around RDMA ~2 μs atomic/put/get, shows a buffer optimization that yields about 3.7% benchmark improvement, supports GPU via CUDA and GPUdirect RDMA, offers blocking OpenSHMEM semantics plus async requests and futures.
AI-written summary · about
chapters (13)
- 0:00Start
- 3:14How do I program one?
- 6:43Advantages of PGAS
- 8:55A SPMD Program
- 11:07Building a Remote Pointer Type
- 14:03BCL Global Pointer Example
- 22:10Genomics Benchmark
- 22:45Comparison: Lines of Code
- 29:23GPUs as a First-Class Computing Resource
- 34:05Remote Pointer Types for GPUS
- 37:11Passing Objects into CUDA Kernels
- 39:06Using GPU Views within Kernels
- 40:32Pointers
related talks
51mPl/cuda the fusion of HPC grade power
38mPostgreSQL as a distributed computing platform
01h 01mSmarter Cpp Atomic Smart Pointers - Efficient Concurrent Memory Management
18mFast Inference for Probabilistic Graphical Models
25mDisaggregating Persistent Memory and Controlling Them Remotely
01h 08mC++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
27mEfficient shared memory data structures
46mFearless Extension Development With Rust and PGRX
