distributed-ranges icon indicating copy to clipboard operation
distributed-ranges copied to clipboard

mhp basic ISHMEM integration

Open lslusarczyk opened this issue 1 year ago • 0 comments

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

References

lslusarczyk avatar Nov 07 '23 12:11 lslusarczyk