Skip to content

Commit a857719

Browse files
committed
Deisa
1 parent 343c4ce commit a857719

13 files changed

Lines changed: 281 additions & 302 deletions

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,5 @@ target_link_libraries(ex9 m MPI::MPI_C paraconf::paraconf PDI::pdi)
6060

6161
add_executable(ex10 ex10.c)
6262
target_link_libraries(ex10 m MPI::MPI_C paraconf::paraconf PDI::pdi)
63+
64+
add_subdirectory(ex11/)

deisa_example/CMakeLists.txt

Lines changed: 0 additions & 12 deletions
This file was deleted.

deisa_example/Launcher.sh

Lines changed: 0 additions & 36 deletions
This file was deleted.

deisa_example/README.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

deisa_example/prescript.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

deisa_example/simulation.c

Lines changed: 0 additions & 204 deletions
This file was deleted.

ex11/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
set(CMAKE_C_STANDARD 99)
2+
3+
add_executable(simulation simulation.c)
4+
target_link_libraries(simulation m MPI::MPI_C paraconf::paraconf PDI::pdi)
5+

ex11/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Dask-Enabled In Situ Analytics
2+
3+
This directory contains an example showing how Deisa[1] can be used.
4+
5+
To try it on Ruche, just run:
6+
```
7+
sbatch launch.sh
8+
```
9+
10+
## How it works ?
11+
12+
This example uses PDI **_DEISA_** plugin that retrieves simulation data it, creates corresponding keys in Dask, and sends the data to the workers.
13+
14+
Internally, a *DEISA Bridge* is created per MPI process.
15+
Once a piece of data is shared with PDI, the Bridge sends it to a worker that has been chosen in a round-robin fashion.
16+
17+
*DEISA* python library implements a *DEISA Adaptor*.
18+
This component is used from the Dask client-side to create Dask arrays describing the data generated by the simulation.
19+
The adaptor waits for an array descriptor to be sent from the bridge in MPI rank 0.
20+
This descriptor is a dictionary with data names as keys and a dictionary containing the sizes, dimensions, and chunk sizes, as values.
21+
The adaptor uses this information to create Dask arrays, that can be retrieved by calling `get_data()` method.
22+
23+
## Files :
24+
25+
- `simulation.c`: a toy simulation code;
26+
- `simulation.yml`: the code configuration and PDI specification tree;
27+
- `client.py`: a python script for analytics;
28+
- `launch.sh`: the script that runs both the simulation and Dask cluster
29+
- `dask-interface.py`: *DEISA* python library;
30+
31+
## References
32+
33+
[1] [A. Gueroudji, J. Bigot and B. Raffin, "DEISA: Dask-Enabled In Situ Analytics," 2021 IEEE 28th International Conference on High Performance Computing, Data, and Analytics (HiPC), 2021, pp. 11-20, doi: 10.1109/HiPC53243.2021.00015.](https://ieeexplore.ieee.org/document/9680456)
File renamed without changes.

0 commit comments

Comments
 (0)