Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
fcs:eic:singularity [2017/07/26 22:03]
dblyth [On a desktop/laptop]
fcs:eic:singularity [2017/09/12 21:00] (current)
hepsim17
Line 10: Line 10:
 The file "fpadsim-v1.4.img" now contains an complete environment necessary for simulating and reconstructing EIC events.  In order to use the image, we have a few options.  The most direct way to get into a fully set up environment is The file "fpadsim-v1.4.img" now contains an complete environment necessary for simulating and reconstructing EIC events.  In order to use the image, we have a few options.  The most direct way to get into a fully set up environment is
 <code bash> <code bash>
-singularity exec fpadsim-1.4.img bash -l+singularity exec fpadsim-v1.4.img bash -l
 </code> </code>
 .  Barring any errors, you are now running inside a container.  It is a container configured to be quite transparent, and you should be able to see all the files within your home directory as well as the processes that are running outside of the container when you run "top" This is in contrast to the default configuration of a Docker container, where isolation is desired.  While your home directory is mounted within the container, the system files have been replaced by the contents of the container.  Go ahead and try commands like "slic", "promc_browser", "jaspp", etc. .  Barring any errors, you are now running inside a container.  It is a container configured to be quite transparent, and you should be able to see all the files within your home directory as well as the processes that are running outside of the container when you run "top" This is in contrast to the default configuration of a Docker container, where isolation is desired.  While your home directory is mounted within the container, the system files have been replaced by the contents of the container.  Go ahead and try commands like "slic", "promc_browser", "jaspp", etc.
 +
 +====== Useful commands ======
 +
 +Download the image, and look inside. 
 +<code>
 +sudo singularity shell --writable --contain  fpadsim-v1.4.img
 +</code>
 +Now you can add files.
  
 ===== On the Open Science Grid (OSG) ===== ===== On the Open Science Grid (OSG) =====
Line 21: Line 29:
 First, ssh access to OSG Connect must be established.  On the OSG Connect login server, you should see all of the available Singularity images in an uncompressed form mounted at <code>/cvmfs/singularity.opensciencegrid.org</code> To run the same image as in the above section, simply run the following line. First, ssh access to OSG Connect must be established.  On the OSG Connect login server, you should see all of the available Singularity images in an uncompressed form mounted at <code>/cvmfs/singularity.opensciencegrid.org</code> To run the same image as in the above section, simply run the following line.
 <code> <code>
-singularity exec /cvmfs/singularity.opensciencegrid.org/argonneeic/fpadsim\:flat/ bash -l+singularity exec /cvmfs/singularity.opensciencegrid.org/argonneeic/fpadsim\:v1.4/ bash -l
 </code> </code>
  
 For submitting Condor jobs, it's necessary to require that the target machine as Singularity installed by adding <code>HAS_SINGULARITY == TRUE</code> to your "Requirements" in your Condor submit file.  The optional (but recommended) way of loading the required image on the target machine is by adding the following lines to your Condor submit file, For submitting Condor jobs, it's necessary to require that the target machine as Singularity installed by adding <code>HAS_SINGULARITY == TRUE</code> to your "Requirements" in your Condor submit file.  The optional (but recommended) way of loading the required image on the target machine is by adding the following lines to your Condor submit file,
 <code> <code>
-+SingularityImage = "/cvmfs/singularity.opensciencegrid.org/argonneeic/fpadsim:flat"++SingularityImage = "/cvmfs/singularity.opensciencegrid.org/argonneeic/fpadsim:v1.4"
 +SingularityBindCVMFS = False +SingularityBindCVMFS = False
 </code>, </code>,
-Where SingularityBindCVMFS can be changed to True if the cvmfs mount is required inside the container.  With these options added, the use of the Singularity image by your OSG job wrapper script is fairly seamless, and the job executable will be run inside of the image via the default shell, /bin/sh.  For this particular image, the default shell will not load the environment setup scripts, so it's usually necessary to run commands inside of a bash login shell, +Where SingularityBindCVMFS can be changed to True if the cvmfs mount is required inside the container.  With these options added, the use of the Singularity image by your OSG job wrapper script is fairly seamless, and the job executable will be run inside of the image via the default shell, /bin/sh.  For this particular image, the default shell will not load the environment setup scripts, so it's usually necessary to run commands inside of a bash login shell by either using the shebang 
-<code> +<code bash
-bash -l -"..."+#!/bin/bash -l 
 +</code> 
 +, or by wrapping commands like 
 +<code bash> 
 +bash -lc "..."
 </code> </code>
 .  This environment can be tested on the login server by running .  This environment can be tested on the login server by running