spcl / daceml

A Data-Centric Compiler for Machine Learning
https://daceml.readthedocs.io
BSD 3-Clause "New" or "Revised" License
81 stars 14 forks source link

Add DistributedMemlet node and scheduling function #120

Open orausch opened 2 years ago

orausch commented 2 years ago

This change adds the DistributedMemlet library node and the scheduling function for distributed computation.

This allows you to distribute the work in the top-level map of the SDFG by specifying block sizes. The lowering function will analyze the SDFG and try to find MPI nodes that implement the required communication.

codecov[bot] commented 2 years ago

Codecov Report

Merging #120 (b87a9bd) into master (3c799c5) will increase coverage by 1.17%. The diff coverage is 95.14%.

@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
+ Coverage   69.70%   70.87%   +1.17%     
==========================================
  Files          65       70       +5     
  Lines        7232     7621     +389     
==========================================
+ Hits         5041     5401     +360     
- Misses       2191     2220      +29     
Impacted Files Coverage Δ
daceml/distributed/utils.py 62.96% <62.96%> (ø)
daceml/util/utils.py 74.84% <95.00%> (+2.99%) :arrow_up:
daceml/distributed/communication/subarrays.py 97.06% <97.06%> (ø)
daceml/distributed/schedule.py 97.79% <97.79%> (ø)
daceml/distributed/__init__.py 100.00% <100.00%> (ø)
daceml/distributed/communication/node.py 100.00% <100.00%> (ø)
...ml/onnx/op_implementations/pure_implementations.py 72.25% <0.00%> (-1.71%) :arrow_down:
daceml/onnx/op_implementations/utils.py 100.00% <0.00%> (ø)
daceml/autodiff/analysis.py 95.24% <0.00%> (+2.38%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more