[slurm-users] Using "Environment Modules"

Brian Andrus toomuchit at gmail.com
Tue Jan 26 15:26:42 UTC 2021


That flow is fairly common.

Basically, you need to get the environment alias 'module' to be defined 
so you need your script to source things.

The common thing is to:

     source ~/.bash_profile

On default RHEL-based systems this will also call ~/.bashrc which in 
turn calls ~/etc/bashrc

The net effect is that the environment gets setup the same as if the 
user had opened a shell console.

Brian Andrus

On 1/26/2021 2:13 AM, Gestió Servidors wrote:
>
> Hi,
>
> My environment is this:
>
>   * Users are using “bash” as the default shell
>   * A sample of one of my environment modules is this:
>
> #%Module1.0
>
> ##
>
> ## modules modulefile
>
> ##
>
> ## modulefiles/modules.  Generated from modules.in by configure.
>
> ##
>
> set ModulesVersion      "3.2.10"
>
> proc ModulesHelp { } {
>
>         global version prefix
>
>         puts stderr "\tOpenMPI - $version"
>
>         puts stderr "\n\tThis adds $prefix/* to several of the"
>
>         puts stderr "\tenvironment variables."
>
>         puts stderr "\n\tVersion $version\n"
>
> }
>
> module-whatis   "Loads OpenMPI 3.0.0 environment"
>
> # for Tcl script use only
>
> set     version         3.0.0
>
> set     prefix /soft/openmpi-${version}
>
> set     exec_prefix     ${prefix}
>
> set     datarootdir ${prefix}/share
>
> prepend-path    PATH ${exec_prefix}/bin
>
> prepend-path    LD_LIBRARY_PATH ${prefix}/lib
>
> prepend-path    INCLUDE_PATH ${prefix}/include
>
>   * “module” command itself is processed in /etc/profile.d/modules.sh
>     with this script:
>
> #----------------------------------------------------------------------#
>
> # system-wide profile.modules                                          #
>
> # Initialize modules for all sh-derivative shells                      #
>
> #----------------------------------------------------------------------#
>
> trap "" 1 2 3
>
> MODULES=/soft/modules-3.2.10/Modules/3.2.10/init/
>
> case "$0" in
>
>     -bash|bash|*/bash) . $MODULES/bash ;;
>
>        -ksh|ksh|*/ksh) . $MODULES/ksh ;;
>
>           -sh|sh|*/sh) . $MODULES/sh ;;
>
>                     *) . $MODULES/sh ;;         # default for scripts
>
> esac
>
> # Update MODULESPATH environment. /usr/share/modules/init/.modulepath
>
> MMODS=/soft/modules-3.2.10
>
> module use $MMODS/compilers $MMODS/parallel
>
> module use $MMODS/libraries $MMODS/applications $MMODS/tools
>
> #module unuse /usr/share/modules /usr/share/modulefiles
>
> # load site specific modules
>
> module load modules
>
> # source .modules in the user's home directory, if it exists
>
> if [ -r ~/.modules ]; then
>
> . ~/.modules
>
> fi
>
> trap - 1 2 3
>
>   * In the SLURM submit scripts, users have to add an explicit
>     “/source /soft/modules-3.2.10/Modules/3.2.10/init/bash/”, and
>     after this line, users can load modules in the way “module load
>     foo/version”
>
> Is there any bad configuration??
>
> Thanks.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20210126/e5f13048/attachment.htm>


More information about the slurm-users mailing list