[Beowulf] Module file for Intel 11

Kilian CAVALOTTI kilian.cavalotti.work at gmail.com
Tue Jan 20 05:32:11 PST 2009


Hi John,

On Tuesday 20 January 2009 13:46:14 John Hearns wrote:
> The recommended way to set it up is to source ifortvars.sh <architecture>
> It rather goes against the grain to have a module which works out the
> architecture then sources this file

If you have an homogeneous cluster, architecture-wise, you can hardcode the 
architecture in your module file. But I guess that if you ask, that's not the 
case. 

I would try to determine the machine type in the module file itself. Not sure 
if a modulefile could get the result of an external $(uname -m | sed 
's/x86_64/intel64/;s/i[3-6]86/ia32/'), but the modulefile(4) manpage mentions 
a uname directive.


For me, Intel xxxvars.{c,}sh files never really fit into the module model. But 
I guess that's not what they have been designed for. So I used to give a look 
at was they do, which is often not much, and try to re-implement them using a 
modulefile. It would give something along the lines of:

-- 8< -----------------------------------------------------------------------
#%Module1.0#####################################################################
##
## modulefile
##

# for Tcl script use only
set     name         "Intel Fortran Compiler"
set     version      "10.1.008"
set     arch         "em64t"
set     desc         "$name ($version, $arch)"
set     url  "http://www.intel.com/cd/software/products/asmona/eng/346152.htm"

proc ModulesHelp { } {
        global name
        global desc
        global url
        puts stderr "This modulefile provides $desc\n"
        puts stderr "More information about $name can be found at:"
        puts stderr "    $url\n"
}

module-whatis   "Sets the environment for $desc"

# Make sure no other compiler modulefiles are loaded before loading this if { 
[ module-info mode load ] && ![ module-info mode remove ] } {
        ModulesHelp
        #obtain the list of modulefiles
        eval set [ array get env MODULESHOME ]
        source $MODULESHOME/modulefiles/biox2/utils.tcl
        foreach mod $fcompilers_module_list {
                if [ is-loaded "$mod" ] {
                        module unload "$mod"
                }
        }
}

conflict        compilers/*/fortran

set             root                  /opt/intel/fce
setenv          INTEL_LICENSE_FILE    28518 at frontend1
prepend-path    PATH                  $root/$version/bin
prepend-path    LD_LIBRARY_PATH       $root/$version/lib
prepend-path    MANPATH               $root/$version/man

-- 8< -----------------------------------------------------------------------

HTH,
-- 
Kilian



More information about the Beowulf mailing list