Slicer3:GSlicer3
Contents
GSLICER3
GSlicer3 is an enhanced Slicer3 product, which includes grid computing capabilities powered by GWE.
Installation Guide
Upgrading a Slicer3 installation to GSlicer3
- Install the latest release of GWE as described in the 'GWE Installation Guide'.
- In a command terminal, add the SLICER_HOME environment variable to point to the Slicer installation to be upgraded, e.g.
export SLICER_HOME=/usr/local/slicer/Slicer3-3.0.2008-02-14-darwin-x86
- Analyze the Slicer3 installation and create all the appropriate CLM proxys by issuing the following command in the terminal prompt:
gwe-util-slicer-integration.sh
- Configure the GWE portion of the upgraded Slicer as described in the GWE Configuration Guide. The GWE configuration can be found under $SLICER_HOME/gwe-[GWE VERSION]/conf.
Installing a GSlicer3 distribution
- Download one of the "GWE Powered" Slicer (GSlicer3) distribution bundles.
- Extract the distribution archive to the directory you wish to install it. These instructions assume you chose /usr/local/slicer. The directory GSlicer3-[SLICER VERSION]-[PLATFORM]-[GWE VERSION] will be created from the archive.
- In a command terminal, add the SLICER_HOME environment variable to point to the directory where the GSlicer3 distribution has just been extracted e.g.
export SLICER_HOME=/usr/local/slicer/GSlicer3-[SLICER3 VERSION]-[PLATFORM]-[GWE VERSION]
- Make sure that JAVA_HOME is set to the location of your JDK, e.g.
export JAVA_HOME=/usr/java/jdk1.5.0_02
- Make sure $JAVA_HOME/bin is in your PATH environment variable.
- Configure the GWE portion of the merged product as described in the GWE Configuration Guide. The GWE configuration can be found under $SLICER_HOME/gwe-[GWE VERSION]/conf.
Usage Guide
After launching Slicer as usual (invoking Slicer3 executable from an X11 terminal) inspect the modules menu. There you will find all the typical Slicer modules along with their respective dynamic GWE Powered Proxys modules.
Each one of those proxy modules is a Slicer module which first will capture:
- Grid computing related information. This information is composed of:
- Cluster: The cluster where the Slicer modules should process permutations in parallel, as a radio button choice.
- Slicer Location: The location in the selected cluster where a Slicer distribution (of same version as the one using) is installed.
- Iteration Variables: Global P2EL iteration variables.
- Values for the parameters of the proxied module. These values can be as the regular ones expected or, alternatively, P2EL expressions.
Once all this information is entered and the user clicks the Apply button, GWE will execute in parallel this set of invocations, on the cluster selected in the Cluster field and using the Slicer installation located under Slicer Location on such cluster.
All GWE configuration will be read at runtime by Slicer3 and that's how the proxy modules are able to resolve the cluster options to provide in the Slicer UI and the authentication information to use to connect to the cluster; but doing such configuration from within Slicer is not available as of right now, so you have to do that before launching Slicer (as required in the 'Installation Guide' section).
P2EL Expressions
These expressions are semantic constructs to express value ranges or runtime grid contextual values and are used to instruct GWE how to create a set of module invocations with the derived permutated values. These expressions can also include references to global variables declared in the Iteration Variables field.
Additionally a prototype semantic construct is available to ease usage. These are anonymous variables and are variables which are described in the particular fields itself. For example if one enters in a parameter field the value of:
gwe:[10..50||10]
GWE will create different permutation invocations where that field takes the values of 10, 20, 30, 40 and 50.
Integration Technical Details
- The process of upgrading Slicer3 to GSlicer3 or creating a GSlicer3 bundle carries on the following two tasks:
- Inspects the plugins of the given Slicer3 distribution and for each of those complying with the Standard Execution Model specification, it creates a special type of CLM which will be referenced as GWE CLM Proxy (GWE CLMP) from this point forward.
- Takes the Slicer3 distribution, the GWE CLM Proxys just created and the given GWE distribution and bundles them altogether.
- GWE CLM Proxys (CLMP) are CLMs which will proxy into another (proxied CLM) to provide a generalized GWE powered version of the proxied CLM. CLMPs are intelligent agents, which at runtime will:
- Add and modify XML tags to the proxied CLM's XML descriptor to add GWE support.
- Generate GWE order templates which will be transformed into actual proxied CLM invocations.
- Localize the CLM invocations of the GWE order to be executed on the cluster selected by the user.
- Install a customized Slicer result parser to the GWE order.
- Submit the GWE order created to the remote selected cluster, over the secured RPC GWE network.
- Monitor, in real time, the execution progress of the localized proxied CLM invocations (from the GWE order) on the selected cluster. This real time monitoring is also performed over the secured RPC GWE network.
- Keep track of the CLMP progress as a ratio of the number of proxied CLMs invocations already executed divided by the total amount of proxied CLMs invocations associated with the GWE order submitted.
- Notify Slicer3 of this progress using Slicer3 XML based progress API (<filter-XXX> tags sent to the standard output of the CLMP).
- This integration effort will also provide an additional framework to easily build specialized GWE powered CLMs. This framework includes:
- Automatic generation and parsing of XML descriptor into a programmatic model.
- Libraries to access filtering information.
- Straight forward access to GWE Grid through the secured RPC GWE network.
Key Investigators
- UCSD BIRN-CC: Jeffrey Grethe, Marco Ruiz
- Isomics: Steve Pieper