|
META TOPICPARENT |
name="Computing" |
Environment modules on the Nevis particle-physics Linux cluster |
|
Prior to Feb-2015, software packages at Nevis were set up using a custom-written setup command. Why make a change? |
|
> > |
- The
setup script only works on the Nevis Linux cluster. Environment modules are an open-source project and are available on almost every flavor of Linux, Mac OS, and Windows.
|
|
- When WilliamSeligman wrote the initial
setup script in 1997, it didn't conflict with any existing command. Since then, a setup command has been added to Redhat Linux. Also, the Fermilab UPS tool has its own setup command, which is used in products such as LArSoft . These command conflicts have sometimes been confusing to work around.
- WilliamSeligman maintained the
setup command by revising two different scripts, /usr/nevis/adm/setup.sh and /usr/nevis/adm/setup.csh , for sh-style shells and csh-style shells respectively. Keeping these two scripts synchronized was tricky. It was not uncommon for there to be an error in one of them that was not in another.
- If you look at the two above scripts, you'll see that they consist of lots of "if-then" conditional statements that grew ever more baroque as more package versions were installed at Nevis. The Nevis environment modules in
/usr/nevis/modules have their own level of complexity (especially for Geant4), but at least the peculiar properties of each package's version can be isolated and customized separately.
|
|
< < |
- The
setup script was written by WilliamSeligman and only works on the Nevis Linux cluster. Environment modules are an open-source project and are available on almost every flavor of Linux, Mac OS, and Windows.
|
|
- The "default" versions of Geant4 and ROOT for
setup were compiled with different version of the GCC compiler, and so were inconsistent with each other; this means the simple command setup geant4 root might cause problems. Going forward, the default versions of ROOT and Geant4 as maintained by the Nevis environment modules will use the same compilers, so you can type module load geant4 root and not get compiler or library errors.
How? |