Sign inSign up

jlefevre/siriusdev

By jlefevre

•Updated over 8 years ago

Dev image for DOE SIRIUS project, originally created by Ivo.

Image
0

1.4K

jlefevre/siriusdev repository overview

⁠Built with Dockerfile and instructions created by Ivotron. Additions by Jeff to include installation of Adios1 and HDF5, with fortran support. To be used for Adios2/Ceph development for the DOE SIRIUS project.

// login to docker cloud account. (note: username is not your email)

docker login

// get the lastest image for SIRIUS development.

docker pull jlefevre/siriusdev:baseX

⁠SOME DOCKER USAGE NOTES:

// MAC: below is the command for MAC using flag "consistency=delegated", which helps us build faster in the container since container files are eventually saved to host but not immediately consistent.

// LINUX, instead of the flag "consistency=delegated", use "bind-propagation=shared" (note this makes all files immediately consistent, so perhaps use a different propagation/consistency model (slave, rslave, etc. instead of shared) to speed up the build process which generates lots of small files inside the container. https://docs.docker.com/engine/admin/volumes/bind-mounts/#configure-bind-propagation⁠

// adding the -d flag below starts the container disconnected (in background)

// adding the --rm flag below will remove the container upon exit (all changes lost).

docker run -it -d --name dev --mount type=bind,source=/Users/jp/Documents/SIRIUS/repos/adios2,destination=/src/adios2,consistency=delegated jlefevre/siriusdev:baseX

// attach to the running container.

docker attach dev

// check this directory is empty.

ls /src/adios2

// detach from the container

ctrl+p ctrl+q

// note the running containers names and ids:

docker ps -a

//stop the container using its name or id

docker stop dev

// remove that container, since it was just a test usage case.

docker rm dev

⁠Get the ADIOS2 repo on the host machine.

on host:

cd /usr/local/sirius/adios2

git clone https://github.com/jlefevre/ADIOS2.git⁠ source

docker run --name dev -it -v /usr/local/sirius/adios2:/src/adios2 jlefevre/siriusdev:base7

in container:

chmod a+rwx /src/adios2

rm -rf /usr/local/adios2/* . # clears out what was installed previously.

⁠Build and Test Adios 2 inside the container, as a non-root user (sirius) that has sudo.

su sirius # pass:

cd /src/adios2

// Note you may need to chown -R sirius source/

rm -rf build;

mkdir build;

cd build;

HDF5_ROOT=/usr/local/hdf5/HDF_Group/HDF5/1.8.20; export HDF5_ROOT;

ADIOS1_ROOT=/usr/local/adios1; export ADIOS1_ROOT;

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/adios2 -DADIOS1_DIR=/usr/local/adios1/ -DADIOS1_USE_STATIC_LIBS=ON -DADIOS2_USE_ADIOS1=ON -DADIOS1_LIBRARY=/usr/local/adios1/lib/libadios.a -DADIOS1_LIBRARY_PATH=/usr/local/adios1/lib/libadios.a -DADIOS1_INCLUDE_DIR=/usr/local/adios1/include ../source

make -j8

ctest # NOTE this must be run as a non-root (sirius) user due to MPI warnings!

sudo make install . # installs into /usr/local/adios2

⁠Run docker image with ceph up and running

docker run --rm -ti --network=cephnet -v pwd/etc/ceph:/etc/ceph -v pwd/src/adios2:/src/adios2 sirius-dev

Tag summary

Content type

Image

Digest

Size

4.1 GB

Last updated

over 8 years ago

docker pull jlefevre/siriusdev