Skip to content
Snippets Groups Projects

EIC software container

Simple Installation

  1. Create a local directory that you want to work in, e.g $HOME/eic, and go into this directory.
mkdir $HOME/eic
cd $HOME/eic
  1. Execute the following line in your terminal to setup your environment in this directory to install the latest stable container
curl https://eicweb.phy.anl.gov/containers/eic_container/-/raw/master/install.sh | bash
  1. You can now load your development environment by executing the eic-shell script that is in your top-level working directory.
eic-shell
  1. Within your development environment (eic-shell), you can install software to the internal $ATHENA_PREFIX

Installation

  1. Clone the repository and go into the directory
git clone https://eicweb.phy.anl.gov/containers/eic_container.git
cd eic_container
  1. Run the install script install.py to install to your <PREFIX> of choice (e.g.
    HOME/local/opt/eic_container_1.0.4). By default the modeuefile will be installed to `
    PREFIX/../../etc/modulefiles. You can use the -vflag to select the version you want to install, or omit the flag if you want to install the master build. The recommended stable release version isv3.0.1`.
./install.py -v 3.0.1 <PREFIX>

Available flags:

  -c CONTAINER, --container CONTAINER
                        (opt.) Container to install. D: jug_xl (also available: jug_dev, and legacy eic container).
  -v VERSION, --version VERSION
                        (opt.) project version. D: 3.0.1. For MRs, use mr-XXX.
  -f, --force           Force-overwrite already downloaded container
  -b BIND_PATHS, --bind-path BIND_PATHS
                        (opt.) extra bind paths for singularity.
  -m MODULE_PATH, --module-path MODULE_PATH
                        (opt.) Root module path to install a modulefile. D: Do not install a
                        modulefile
  1. To use the container in installed mode, you can load the modulefile, and then use the included apps as if they are native apps on your system!
module load eic_container
  1. To use the container in local mode, you can install the container without the -m flag, and then use the runscripts (under $PREFIX/bin) manually.
./install.py $PREFIX -l
...
$PREFIX/bin/eic-shell
  1. (Advanced) If you need to add additional bind directives for the internal singularity container, you can add them with the -b flag. Run ./install.py -h to see a list of all supported options.

Usage

A. Running the singularity development environment with modulefiles

  1. Add the installed modulefile to your module path, e.g.,
module use <prefix>/../../etc/modulefiles
  1. Load the eic container
module load eic_container
  1. To start a shell in the container environment, do
eic-shell

B. Running the singularity development locally (without modulefiles)

  1. This is assuming you installed with the -l flag to a prefix $PREFIX:
./install.py $PREFIX
  1. To start a shell in the container environment, do
$PREFIX/bin/eic-shell

C. Using the docker container for your CI purposes

  1. To load the container environment in your run scripts, you have to do nothing special.
    The environment is already setup with good defaults, so you can use all the programs in the container as usual and assume everything needed to run the included software is already setup.

  2. If using this container as a basis for a new container, you can direction access the full container environment from a docker RUN shell command with no further action needed. For the most optimal experience, you can install your software to /usr/local to fully integrate with the existing environment. (Note that, internally, /usr/local is a symlink to /opt/view).

Included software:

  • Included software:
    • gcc@10.2.1
    • cmake@3.20.0
    • fmt@7.1.2
    • spdlog@1.8.1
    • nlohmann-json
    • heppdt@3.04.01
    • clhep@2.4.4.0
    • eigen@3.3.9
    • python@3.7.8 with pip, numpy, pyyaml, pyafp, matplotlib, ipython, scipy
    • xrootd@5.1.0
    • root@6.22.08
    • pythia8@8303
    • hepmc3@3.2.2 +python +rootio
    • stow@2.3.1
    • podio@0.13
    • geant4@10.7.1
    • dd4hep@1.16.1
    • acts@8.01.0
    • gaudi@34.0
    • dawn@3.91a
    • dawncut@1.54a
    • opencascade
    • madx@5.06.1
  • The singularity build exports the following applications:
    • eic-shell: a development shell in the image