Sign inSign up

csirocass/yandabase

By csirocass

Updated almost 3 years ago

Software for radio astronomy developed by CSIRO. For developers.

Image
1

9.9K

csirocass/yandabase repository overview

Yandabase

These images are for developers of ASKAPsoft and Yandasoft. For end-users, please use csirocass/yandasoft instead. Please choose the image suitable for your MPI implementation.

  • MPICH
  • OpenMPI of versions 2, 3 or 4
  • Machine-specific. Currently it is only for Setonix, which is based on MPICH.

All recent images are based on casacore 3.5.0 with additional patches required by ASKAPsoft and Yandasoft.

How to use

1. Get Docker image

Pull one of these yandabase docker images from csirocass account in DockerHub. The difference between these images is in the MPI implementation. Note that yandabase-galaxy actually has MPICH, but the base image has Galaxy-specific items in it.

docker pull csirocass/yandabase:mpich
docker pull csirocass/yandabase:openmpi4
docker pull csirocass/yandabase:openmpi3
docker pull csirocass/yandabase:openmpi2
docker pull csirocass/yandabase:setonix

Note that the numerics in the OpenMPI versions might change later.

2. Run Docker container

For convenience, copy this into a script called docker_run.sh:

#!/bin/bash
# Given a Docker image, this script runs Docker container interactively.
if [ $# -eq 0 ]; then
    echo "ERROR: Provide the full name of Docker image as argument"
    echo "USAGE: "
    echo "    docker_run.sh IMAGE_NAME:IMAGE_TAG"
    exit 1
fi
# Run the container with the following arguments:
# - Remove the container when it's finished
# - Interactive mode
# - Mount the current dir in host to work dir in container
# - Mount the home dir in host to home dir in container
# - Set time zone
docker container run \
--rm \
-it \
-v ${PWD}:/home/yanda-user/host-workdir \
-v ${HOME}:/home/yanda-user/host-homedir \
-e TZ=Australia/Melbourne \
$1

Then, set the script so that it can be executed.

chmod a+x docker_run.sh

Finally, execute the script, giving it a Docker image name as the argument. For example, to run the Docker image with MPICH implementation, do this:

./docker_run.sh csirocass/yandabase:mpich

Note that you can mount additional directories, as needed. For example, to mount a directory that contains test data, add this line in the script:

-v MY_PATH/MY_DATA_DIR:/home/yanda-user/host-datadir \

3. Do dev work inside the container

Inside the container, your user name is yanda-user. Your home directory is /home/yanda-user. Inside this directory, there are two directories mounted from outside the container:

  • host-homedir: mounted home directory in the host.
  • host-workdir: mounted current directory in the host. Work inside this directory, so that your changes inside the container are saved into the host's work directory when you exit the container.

From inside the work directory, do the usual configure and build. For example:

cd /home/yanda-user/host-workdir
git clone https://bitbucket.csiro.au/scm/askapsdp/askap-askapsoft.git
cd askap-askapsoft
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_CXX_FLAGS="-I/usr/local/include -pthread" -DCMAKE_BUILD_TYPE=Debug  -DIce_HOME=/usr/lib/x86_64-linux-gnu/ -DBUILD_ANALYSIS=ON -DBUILD_PIPELINE=ON -DBUILD_COMPONENTS=ON -DBUILD_ANALYSIS=ON -DBUILD_SERVICES=ON -DCMAKE_CXX_FLAGS="-coverage" -DCMAKE_EXE_LINKER_FLAGS="-coverage" -DCMAKE_INSTALL_PREFIX=/home/yanda-user/all_yandasoft/install ..
make -j<NUMBER_OF_CPU>
make install

When you're finished, simply type this from inside the container.

exit

Tag summary

Content type

Image

Digest

sha256:2bd7ef909

Size

1.8 GB

Last updated

almost 3 years ago

docker pull csirocass/yandabase:lustrempich