We are really excited to start using Singularity containers on COSMIC². For those who don’t know, Singularity (and it’s predecessor, Docker) are methods to ‘containerize’ your software. This means you can design and build a custom operating system with all of the correct software dependencies
We have been wanting to do this for a little while, but were finally forced when we started to incorporate crYOLO into our software platform. In short, since crYOLO runs deep learning software Tensorflow, we needed to be running the latest version of Linux CenOS 7. However, SDSC Comet is still running CentOS 6, which means that we were at an impasse for running this software.
Enter Singularity – these containers allowed us to install Ubuntu and crYOLO into its own ‘image’, which is a standalone environment capable of running crYOLO anywhere. With this new image, all we have to do in order to run crYOLO on any CPU machine is type:
$ singularity exec sdsc-comet-ubuntu-cryolo-cpu.simg cryolo_predict.py -c config.json -w gmodel_phosnet_20181221_loss0037.h5 -i micrographs/ -o micrographs/cryolo -t 0.2
Which is a big step for those who have tried this before!
Since the built images are ~7 GB, we can’t share them directly on Github, so instead we are sharing the definition files. Please take a look and try it out if you are so inclined!