Running the prototype pipeline with Dask

Parallel run of the prototype imaging pipeline has been implemented using Dask.

Most of the functions are wrapped using a simple decorator, which decides whether to compute using dask.delayed or run the code in serial. This is controlled by the use_dask user-defined argument (see Command Line Interface to run the pipeline).

A few of the high-level functions directly imported from RASCIL use RASCIL’s own class that wraps its objects with Dask. These are the so called “workflows”, e.g. deconvolve_skymodel_list_rsexecute_workflow and restore_skymodel_list_rsexecute_workflow. They inherently use the rsexecute class, which we need to initialize in the main function of imaging_prototype.py.