Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • sac2c sac2c
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 393
    • Issues 393
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 24
    • Merge requests 24
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • sac-group
  • sac2csac2c
  • Merge requests
  • !291

Draft: Shray-based distributed memory backend

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Thomas Koopman requested to merge thomas/sac2c:distmem_ugly into develop Mar 18, 2024
  • Overview 1
  • Commits 43
  • Changes 167

Reimplement the distributed memory backend based on Shray to ensure memory-scalability, and potentially greater performance.

Multithreaded + distributed status:

The ground works is there: all the parallelism is created by restricting the bounds and in principle orthogonal as to how these restricted with-loops are computed. However, the build system needs to be adjusted and probably some work needs to go into proper initialization.

Side-effects

A function is assumed to have side-effects if it is an external function consuming a unique object, or a user-defined function type casting a unique object in its body. In that case, the function is computed only on the source node, and return arguments are broadcast. For now, we also consider functions that take or return hidden objects as having side-effects, though this can be relaxed in the future.

Performance and correctness

This branch should behave correctly for all inputs as we fall back to replicated execution for constructs we cannot parallelize. Performance is outside of the scope of this merge request.

Dependencies

This branch will only build if gasnet is installed, and environment variable GASNet_ROOT has been set to the installation. Shray needs the MPI or UDP backend of GASNet, so one of these dependencies also needs to be installed.

TODO

  • implement reshape
  • implement multi-operator with-loops
  • fix hard-coded nametags in stdlib
  • nbody-naive
  • FlashAttention alg 1
  • FlashAttention modified algorithm
  • VolCalib
  • MG
  • Adjust CI to deal with GASNet
Edited Mar 21, 2024 by Thomas Koopman
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: distmem_ugly