"VL-e Proof-of-Concept Distribution - Installation", owner=>"Jan Just Keijser", email=>"janjust@nikhef.nl", footer=>"Comments to Dennis van Dok or Jan Just Keijser.")); ?>
vl-e

Virtual Laboratory for e-Science
The Proof-of-Concept Distribution

PoC R2 User’s Guide

Where's the software?

The PoC software is packaged so that it installs in /opt/vl-e/ instead of /usr. Besides that, each package gets its own installation directory based on name and version number. For instance, FSL 3.3 is installed in

/opt/vl-e/fsl_3.3/
    

This is done to avoid clashes between PoC software and standard OS software, and clashes between different versions of the same package in the PoC (for example, we have both VTK 4 and VTK 5).

The way it's packaged, most of the software doesn't work straight away. You need to set up a bunch of environment variables, the least of which are PATH and LD_LIBRARY_PATH, in order for the software to figure out where it lives. This is not a pleasant experience and to help ease the pain, we've incorporated the use of modules. This is a handy tool to configure your work environment with just the packages you need.

After you log in to the User Interface, you can see the available modules with module avail.

$ module avail

---------------------- /opt/vl-e/modules/Modules/versions ----------------------
3.2.3

----------------- /opt/vl-e/modules/Modules/3.2.3/modulefiles ------------------
dot         module-cvs  module-info modules     null        use.own

-------------------------- /etc/opt/vl-e/modulefiles ---------------------------
fsl/3.3             lam/7.1.2           rmpi/0.5
fsl/3.3.11          mesa3d/6.4          sesame-client/1.2
gat/1.8             mesa3d/6.4.2        sesame-client/1.2.6
gat/1.8.2           mpitb/2.1           srb/3.4
graphviz/2.12       mpitb/2.1.73        srb/3.4.2
gt/2                mricro/1.39         taverna/1.4
gt/4.0              mricro/1.39.3       vle/1
gt/4.0.5            nimrod/3.2          vle/2
ibis/1.4            nimrodo/2.8         vlet/0.7
itk/2.8             octave/2.1          vlet/0.7.3e
itk/2.8.1           octave/2.1.73       vtk/4.4
java/1.4            ogsadai-wsrf/2.2    vtk/4.4.2
java/1.5            paraview/2.4        vtk/5.0
javagat/1.7         paraview/2.4.4      vtk/5.0.2
javagat/1.7.1       pl/5.6              weka/3.4
kepler/1.0          pl/5.6.27           weka/3.4.9
kepler/1.0.0beta2   r/2.4
lam/7.1             r/2.4.0
    

You can load a module by typing, e.g. module load r. This will load the highest available version of R. You can inspect the currently loaded modules by typing module list. A specific version of a module can be loaded by specifying the full name of the module. Use module switch to switch to a different version of the same package.

$ echo $LD_LIBRARY_PATH
/opt/globus/lib:
$ module load r
$ echo $LD_LIBRARY_PATH
/opt/vl-e/r_2.4/lib:/opt/globus/lib:
$ module list  
Currently Loaded Modulefiles:
  1) r/2.4.0
$ module switch r/2.4
$ module list
Currently Loaded Modulefiles:
  1) r/2.4
$ module load fsl/3.3
$ module list
Currently Loaded Modulefiles:
  1) r/2.4     2) fsl/3.3
$ module rm r
$ module list
Currently Loaded Modulefiles:
  1) fsl/3.3
$ which fsl
/opt/vl-e/fsl_3.3/bin/fsl
$ module rm fsl
$ fsl
-bash: fsl: command not found
    

There are several subcommands of module, which can be seen by running module help. The manual page should explain the details.

How do I use this in a grid job?

The modules installed on a PoC UI are the same as on a worker node, so you can begin your job script with a bunch of module load commands for your job's environment. There is one catch: you must begin the script with


#!/bin/bash -l
    

This is because 'modules' is a shell construct (otherwise it wouldn't be able to manipulate the environment), and hence must be loaded in the shell prior to use. The place to do this is /etc/profile, but that is sourced only for login shells. The -l expressly requests a login shell.

When you submit grid jobs to use some of the PoC software, you want to make sure you only land on nodes that have the PoC installed. The way to enforce this is by specifying it as a requirement in your JDL file, using this string:

Requirements = Member("nl.vl-e.poc-release-2", other.GlueHostApplicationSoftwareRunTimeEnvironment);
    

More information

Valid HTML 4.0 Transitional

This page $Revision: 1.1 $, $Date: 2007/09/28 08:45:02 $.