This directory contains an example showing how Deisa[1] can be used.
To try it on Ruche, just run:
sbatch launch.sh
This example uses PDI DEISA plugin that retrieves simulation data it, creates corresponding keys in Dask, and sends the data to the workers.
Internally, a DEISA Bridge is created per MPI process. 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.
DEISA python library implements a DEISA Adaptor.
This component is used from the Dask client-side to create Dask arrays describing the data generated by the simulation.
The adaptor waits for an array descriptor to be sent from the bridge in MPI rank 0.
This descriptor is a dictionary with data names as keys and a dictionary containing the sizes, dimensions, and chunk sizes, as values.
The adaptor uses this information to create Dask arrays, that can be retrieved by calling get_data()
method.
simulation.c
: a toy simulation code;simulation.yml
: the code configuration and PDI specification tree;client.py
: a python script for analytics;launch.sh
: the script that runs both the simulation and Dask clusterdask-interface.py
: DEISA python library;