distributed-ranges
distributed-ranges copied to clipboard
mhp basic ISHMEM integration
Summary
ISHMEM based multi process communication basic primitives as a backend for Distributed-Ranges.
Feature details
Intel® SHMEM is a C++ software library interface that enables OpenSHMEM communication for applications using Intel® Data Center GPU Max Series devices with device kernels implemented in SYCL. Intel® SHMEM includes both host-initiated operations as in OpenSHMEM, and new device-initiated operations callable directly from GPU kernels.
ISHMEM backend allows to write programs in SPMD way like MPI backend does. Data structures are automatically distributed on multiple nodes using symmetric allocation. Data structures constructors and algorithms are collective.
Provide an ISHMEM backend (communication primitives implemented using MPI) which can be used as a backend for
- distributed_vector
- basic algorithms: for_each, copy, fill, transform
- basic Distributed Range Views: take, drop, counted, enumerate, transform
ISHMEM Communicatin primitives should support:
- copy to/from local and Distributed Range
- implementing a distributed range remote reference, which is exposed as [index]
- halo exchange in distributed_vector