Using singularity containers to request different Operative Systems

Singularity[1] allows users to specify their own OS container images to CMS Tier Sites that support it. This means that even if a worker node native operative system is e.g RHEL6, users can run under RHEL7 on it, as long as the tier site supports singularity.

Singularity has been integrated with the Global Pool and is the standard containerization method in CMS.

Requesting RedHat 6 and RedHat 7 operative systems

Jobs submitted to the system that don't specify an OS will use RHEL6 by default. Users can choose to run jobs under RHEL6 (the default), RHEL7, or any of them by simply specifying "+REQUIRED_OS" into their submit file. 

 The following example illustrates how to run jobs under RedHat 7.

After the job has finished, you will be able to see the Operative System version in the output:


Creating your own container images

Although users should not normally need to create their own custom singularity container images, this is supported. The images need to be added to the OSG oasis cvmfs repository. To create your own container image, you can follow this guide. After that, they will be listed in /cvmfs/singularity.opensciencegrid.org

 

Using specific container images

Users can run in whatever singularity image available on /cvmfs/singularity.opensciencegrid.org/opensciencegrid. For example, the OSG builds images with tensorflow. To run on an image with a ready-to-use tensorflow installed on it, you can add the following to your submit file:

For more details on this and for a table with default singularity images provided by the OSG, visit this link [3].


References

[1] http://singularity.lbl.gov/

[2] https://support.opensciencegrid.org/support/solutions/articles/12000024676-docker-and-singularity-containers#custom-images

[3] https://support.opensciencegrid.org/support/solutions/articles/12000024676-docker-and-singularity-containers#default-image