"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 R3.1 User’s Guide

Updated from the User's Guide for the previous release, R3.

This page gives the user's perspective of the PoC software. If we did our jobs right, it should be straightforward and self-explanatory. There are a few particularities of note, as explained below, in a Q&A format.

Where's the PoC?

You will find the software on any grid user interface machine (UI, in the jargon) of the Dutch national grid infrastructure. Also, you can use the PoC on all of the Dutch national grid clusters (a.k.a. worker nodes).

There will be a downloadable VMWare image with the PoC distribution pre-installed.

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 4.1 is installed in

/opt/vl-e/fsl_4.1/
    

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.4 and VTK 5.4).

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.6

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

------------------------------------ /etc/opt/vl-e/modulefiles -------------------------------------
fsl/4.0              itk/3.4.0            mricro/1.39.3        r/2.9.2
fsl/4.0.4            java/1.6             octave/2.1           rmpi/0.5
fsl/4.1              javagat/1.7          octave/2.1.73        srb/3.4
fsl/4.1.4            javagat/1.7.1        openmpi/1.3.2        srb/3.4.2
gat/1.8              kepler/1.0           openrdf-sesame/2.0   taverna/1.7.1
gat/1.8.2            kepler/1.0.0rc1      openrdf-sesame/2.0.1 vlet/1.0
graphviz/2.18        lam/7.1              paraview/3.2         vlet/1.0.2
gt/4.0               lam/7.1.4            paraview/3.2.1       vtk/4.4
gt/4.0.8             mesa3d/6.4           pl/5.6               vtk/4.4.2
ibis/1.4             mesa3d/6.4.2         pl/5.6.64            vtk/5.4
itk/3.14             mpitb/2.1            r/2.6                vtk/5.4.0
itk/3.14.0           mpitb/2.1.73         r/2.6.2              weka/3.4
itk/3.4              mricro/1.39          r/2.9                weka/3.4.12

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

$ module load r
$ echo $LD_LIBRARY_PATH
/opt/vl-e/r_2.9/lib64

$ module list
Currently Loaded Modulefiles:
  1) r/2.9.2

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-3", other.GlueHostApplicationSoftwareRunTimeEnvironment);
    

More information

Valid HTML 4.0 Transitional

This page $Revision: 1.3 $, $Date: 2009-10-08 14:24:39 $.