Difference: EnvironmentModules (2 vs. 3)

Revision 32015-02-06 - WilliamSeligman

Line: 1 to 1
 
META TOPICPARENT name="Computing"

Environment modules on the Nevis particle-physics Linux cluster

Line: 158 to 158
  Prior to Feb-2015, software packages at Nevis were set up using a custom-written setup. Why make a change?
Changed:
<
<
  • 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 been confusing or tricky to work around.
>
>
  • 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 maintaining 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.
Added:
>
>
  • 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?

For the most part, you don't have to do anything. The setup command is not going away any time soon. It simply won't be maintained anymore for any new package versions.

Changed:
<
<
Over time, if you have something like setup root geant4 in your scripts, you can replace it with module load root geant4. This may have unexpected results (the default versions of ROOT and Geant4 are different for the setup and module commands).
>
>
Over time, if you have something like setup root in your scripts, you can replace it with module load root. This may have unexpected results (the default versions of ROOT and Geant4 are different for the setup and module commands).
  If you're loading a specific version of ROOT or Geant4, it's typically obvious how to update them, with some guidance from the module avail command. For example, setup root532 becomes module load root/05.32.00.
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback