Introduction: SiRIUS (Simulation of Radio Interferometry from Unique Sources)

SiRIUS is a component list radio interferometry visibilities simulator in development for the VLA, ALMA, and the ngVLA telescopes. It makes use of modular Common Astronomy Software Applications (CASA), the CASA Next Generation Infrastructure framework (CNGI), and dask-ms (dask-ms).

Goals

  • Create a production-ready simulation package using the CNGI framework that integrates seamlessly into the modular CASA Python environment to demonstrate the framework’s suitability for developing ngCASA.

  • Demonstrate performance and scalability by simulating large ngVLA size datasets on a cluster computer.

  • Exceed the CASA component list simulator functionality of the simulator tool, simobserve task, and simalma task.

  • Validate full Stokes imaging of the mosaic, awproject, and hpg gridders in the CASA task tclean using SiRIUS simulated datasets.

Framework

SiRIUS makes use of a modified version of the functional programming paradigm in the CNGI prototype were a directed acyclic graph (DAG) of blocked algorithms composed from functions (the edges) and data (the vertices) for lazy evaluation by a scheduler process coordinating a network of (optionally distributed and heterogeneous) machine resources. SiRIUS expands on the CNGI prototype framework by incorporating dask-ms which enables reading and writing CASA tables, via python-casacore, with an xarray Dataset interface and Dask lazy execution. The addition of dask-ms allows SiRIUS to be compatible with CASA because the visibility data can now be stored in a Measurement Set.

The relationship between the libraries used in SiRIUS can be conceptualized by the following diagram:

im10

In the framework, data is stored in either the Measurement Set v2 or the Zarr format. The Zarr format allows files to be mounted on a local disk or in the cloud, while the Measurement Set data can only be mounted on a local disk. The Dask scheduler manages N worker processes identified to the central scheduler by their unique network address and coordinating M threads. Each thread applies functions to a set of data chunks. Xarray wraps Dask functions and labels the Dask arrays for ease of interface. Any code that is wrapped with Python can be parallelized with Dask. Therefore, the option to use C++, Numba, Cupy, or another custom high-performance computing (HPC) code is retained. The CASA Measures tool and Astropy are used for coordinate conversions. Cloud deployment is enbaled using Docker and Kubernetes. User can interface with the SiRIUS using Jupyter notebooks (see the basic simulation example).

Requirements

SiRIUS should work on Mac OS and Linux using Python=3.8.

Installation

Currently, the python-casacore dependency fails to pip install for Mac users, consequently conda install must be used.

conda create -n sirius python=3.8
conda activate sirius
conda install -c conda-forge python-casacore
pip install sirius

Development Installation

conda create -n sirius python=3.8
conda activate sirius
conda install -c conda-forge python-casacore
git clone https://github.com/casangi/sirius.git
cd sirius
pip install -e .

Contact

Questions and feedback can be sent to: jsteeb@nrao.edu

Sirius A and B image by NASA, ESA, H. Bond (STScI), and M. Barstow (University of Leicester).