This small project packs the various docker builds required to get a working casacore installation with the Adios2StMan and MGARD compression enabled. Dysco is also enabled and thus this image is well suited to investigate the compression of visibilities.
See also
- casacore The casacore GIT repo.
- ADIOS2 The ADIOS2 advanced I/O system.
- MGARD The MGARD compression suite.
The package comes with a Makefile allowing an easy and straight forward way to build and run the image.
Usage: make <target>
Targets:
help: Show the help.
build-all: Build the complete stack of images. This takes very long.
build-ubuntu-base: Build the ubuntu base image
build-adios-mgard: Build the adios2-mgard image
build-casacore: Build the casacore image
start: run the final image with optional CMD variable
stop: Install using docker containers
test: Run a simple test
release: Create a new tag for release.This will take pretty long, but hopefuly the first two images don't have to be done too often.
make build-allIt is also possible to build the individual images. Note that these are dependent on each other.
make build-ubuntu-base
make build-adios2-mgard
make build-casacoreThe first image will be tagged icrar/ubuntu-clang, the second icrar/adios2-mgard and the final
one icrar/casacore.
The package also contains a docker-compose file to enable running the casacore image using the current user. It will mount the directory ~/scratch into the container in order to be able to exchange data with the host file system.
make start [CMD=<cmd>] [MY_VOLUME=<path>]This make target allows to override the default launching of ipython inside the docker container
using the CMD variable. For example
make start CMD=bashwill start a bash shell in the container. In the same way it is also possible to place an executable python script into the ~/scratch directory and execute it
make start CMD=/scratch/my_script.pyUsing the MY_VOLUME variable it is possible to mount any host directory as /scratch inside the container to allow the exchange of data between the host and the container. For example
make start MY_VOLUME=~/datawould mount the data directory under your home directory as /scratch inside the container.
There is also a stop target available, which cleans up potentially orphan containers, although this should not happen in normal circumstances.
make stopThere is also a test target, which produces two MeasurmentSets using the Adios2 storage manager from the casacore C++ level and reads the data back using python-casacore. This makes sure that most of the stack is working correctly.
make test