Galario logo. Credit: Tazzari, Beaujean, Testi.

galario 1.2.2

GPU Accelerated Library for Analysing Radio Interferometer Observations

galario is a library that exploits the computing power of modern graphic cards (GPUs) to accelerate the comparison of model predictions to radio interferometer observations. Namely, it speeds up the computation of the synthetic visibilities given a model image (or an axisymmetric brightness profile) and their comparison to the observations.

Along with the GPU accelerated version based on the CUDA Toolkit, galario offers a CPU counterpart accelerated with openMP.

ALMA antennas on the Chajnantor plateau. Credit: ESO

Modern radio interferometers like ALMA and the Karl G. Jansky VLA, are pushing to the extreme the computational efforts needed to model the observations. The unprecedented sensitivity and resolution achieved by these observatories deliver huge amount of data that sample a wide range of spatial frequencies. In this context, galario provides a fast library useful for comparing a model to observations directly in the Fourier plane.

We presented galario in Tazzari, Beaujean and Testi (2018) MNRAS 476 4527, where you can find all the details about the relevant equations and the algorithm implementation.

galario is actively developed on GitHub and has already been employed in these publications.


The Python and C++ bindings of galario can be installed easily via conda:

conda install -c conda-forge galario

Due to technical limitations, the conda package does not support GPUs at the moment. If you want to use a GPU, you have to build galario by hand.

All the details on how to build and install galario can be found in the Setup page.

Basic functionality of galario: see the Basic Usage page.

How to fit some data with galario: check the Getting started example.

Details on image orientation, coordinate systems and other assumptions: see the Technical specifications.

Useful recipes for the CPU/GPU management and the model image creation: see the Cookbook with many code snippets.

Detailed documentation of each Python and C++ function: see the Python-API and C++ API pages.

Stuck on an issue? Check the Frequently Asked Questions page, or send me an email.

License and Attribution

If you use galario for your research please cite Tazzari, Beaujean and Testi (2018) MNRAS 476 4527 [MNRAS] [arXiv] [ADS].

The BibTeX entry for the paper is:

   author = {{Tazzari}, M. and {Beaujean}, F. and {Testi}, L.},
    title = "{GALARIO: a GPU accelerated library for analysing radio interferometer observations}",
  journal = {\mnras},
archivePrefix = "arXiv",
   eprint = {1709.06999},
 primaryClass = "astro-ph.IM",
 keywords = {methods: numerical, techniques: interferometric, submillimetre: general},
     year = 2018,
    month = jun,
   volume = 476,
    pages = {4527-4542},
      doi = {10.1093/mnras/sty409},
   adsurl = {},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}

galario has also a Zenodo DOI, which can be used to refer to the exact version of galario used in a paper.

galario is free software licensed under the LGPLv3 License. For more details see the LICENSE.

© Copyright 2017-2020 Marco Tazzari, Frederik Beaujean, Leonardo Testi and contributors.


Contributions to the code base:
Comments, corrections and suggestions:

The initial development of galario was boosted by the GPU Hackathon at the TU Dresden in February 2016 thanks to two supportive mentors and the organizers TU Dresden, FZ Jülich, and the Oak Ridge Leadership Computing Facility.


1.2.2 (2020-02-28)

  • [core] Add support for Python 3.8

  • [docs] Improved and expanded explanations in quickstart example.

1.2.1 (2018-11-01)

  • [core] Add support for Python 3.7

  • [docs] New FAQ page with Frequently Asked Questions.

  • [docs] Better documentation of get_coords_meshgrid function.

  • [cmake] By default, install galario in the active conda environment directory unless cmake -DCMAKE_INSTALL_PREFIX=/path/... is specified.

1.2 (2018-06-20)

  • [interface] New origin option to specify direction of Dec axis for input image in *Image() functions.

  • [core/bugfix] More robust DFT interpolation for sources that are large or hugely offset from phase center.

  • [docs] New Tech specs page on specifications of the input image with new origin option.

  • [docs] New Cookbook recipe on how to create the correct coordinate mesh grid.

1.1 (2018-05-14)

  • [interface] Python and C++ code now throw detailed exceptions allowing fine-grained control, e.g. for executions on GPU.

  • [core/bugfix] More robust interpolation of brightness profile in the central pixel for steep f(R) profiles.

  • [core] Drop support for C. Only C++ and Python are now supported.

  • [core] Memory handling on GPU: memory is now automatically freed in case of an error (allows catching errors with Exceptions).

1.0.2 (2017-12-19)

  • [interface] CPU version can now be installed with conda install -c conda-forge |galario|.

  • [core/bugfix] Fix memory leak in GPU version.

  • [core] Allow multiple processes to use the GPU concurrently by default.

  • [docs] Improve installation notes and quickstart example.

1.0.1 (2017-10-05)

  • [interface] Allow uninstalling galario with make uninstall.

  • [interface] Allow enabling/disabling check for CUDA on Mac OS with cmake -DGALARIO_CHECK_CUDA=1.

1.0 (2017-09-19)

  • First release.