Damaris 1.7.0 is released

Version v1.7.0 of Damaris adds support for asynchronous Python based processing. This Damaris server side plug-in has support for Dask which is a Python distributed runtime engine and opens up a large number of analytic methods that can use Dask data types, these include SciKit-Learn and Tensorflow/Keras.

In the Damaris XML configuration file, the <variables> XML elements can be exposed to the Python <pyscript> XML element by including its name i.e. “script=MyPyAction” in the following example:

1
2
3
4
5
6
7
    <variable name="cube_i" type="scalar" layout="cells_whd_wf" mesh="mesh" 
                        centering="nodal" script="MyPyAction" />
    <scripts>
       <pyscript name="MyPyAction" file="python_script.py" language="python" frequency="1"
            scheduler-file="/home/user/dask_file.json" nthreads="1" keep-workers="no" 
           timeout="4" />
    </scripts>

The above example excerpt will allow the Damaris server processes to publish the cube_i variable to a Python interpreter that will be run on each iteration (as frequency=1) and be accessible via the script python_script.py. The scheduler-file value, if pointing to a valid Dask scheduler file will allow the python_script.py code to use Dask functionality. This functionality recreates an exposed simulation array as a Dask dask.array, which can be used in various analytic frameworks that have been ported to use Dask distributed objects.

For more details on Python support in Damaris, please see Damaris-Python_Support Wiki Page and also look at the examples in the examples/python directory of the Damaris distribution (or examples/damaris/python of a Damaris installation).

This capability is a large enhancement to Damaris server side processing. A Python based Damaris client side module is also hoped to be available soon, thus allowing pure Python MPI based simulations with asynchronous I/O via Damaris.

Download is available from the Damaris download page.

Comments are closed.