Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

sumi -h

usage: sumi.py [-h] [-r] [-u UP] [-d DOWN] [-m MACHINE [MACHINE ...]]

               [-j JOBS [JOBS ...]]

 

Submission Manager for IMAS

 

optional arguments:

  -h, --help            show this help message and exit

  -r, --run             Run the configured job on a specific cluster

  -u UP, --upload UP    Upload local file

  -d DOWN, --download DOWN

                        Download remote file

  -m MACHINE [MACHINE ...], --machine MACHINE [MACHINE ...]

                        List of machines were to submit

  -j JOBS [JOBS ...], --job JOBS [JOBS ...]

                        List of jobs to be submitted

Getting started

Remote submission of IMAS HPC workflows may become a problem given the requirement for an IMAS environment installed as well as the wide amount of supercomputers available. To approach these issues, an approach with virtualized environment with IMAS installed and a remote submission system has been designed.

This tutorial describes the steps to submit an example uDocker IMAS workflow workflow image to a remote supercomputer. To do so we will make usage of uDocker and SUMI (SUbmission Manager for IMAS).

These work on different sides of the system: local machine and remote HPC system:

  • Connect from a local computer to a remote cluster to submit my workflow: IMAS
  • Bring IMAS environment to supercomputer heterogenous systems: uDocker image

This tutorial assumes that the user has a function machine with a distribution of GNU/Linux installed.

The following tutorial has been tested in the following machines.

  • Marconi @Cineca
  • Marconi Gatway @Cineca
  • Eagle @PSNC

This tutorial follows the next steps

  1. Install SUMI on the Gateway

  2. Configure sample job and big Marconi connection

  3. Test connection with Marconi

  4. Install uDocker on Marconi

  5. Test image on Marconi

  6. Submit workflow

  7. Retrieve data

  8. Visualize output on GW

     

Install SUMI on the Gateway

SUMI is a tool capable of submitting jobs to remote HPC clusters and upload and retrieve data from them.

In this tutorial the local computer used will be Marconi Gateway. Given that SUMI uses 2.7 python version, first we will load the correspondent module

module load python/2.7.12

SUMI depends on two powerfull libraries to perform its tasks. These are Paramiko (data transfer) and SAGA (remote job submission). To install the dependencies we need to download python libraries, but given that we do not have root permissions we will make usage of a virtual environment which will allow to install these libraries locally. For this purpose we will use "virtualenv". Virtualenv creates a python environment in local folders and allows to create a virtual python environment where we can install libraries locally. To set it up we run the following commands:

 

mkdir sumi-virtualenv

virtualenv sumi-virtualenv

 

Once the virtualenv folder has been configured, we can load the environment.

In the case of TCSH shells (as Gateway)

source sumi-virtualenv/bin/activate.csh

In the case of Bash shells (most used shells)

source sumi-virtualenv/bin/activate

Our terminal prompt will now show the folder name in front of out username in the following way:

[sumi-virtualenv] <g2user@s65

To install the dependencies, now we can run the "pip" command which will install the python libraries in our local virtualenv

pip install saga-python==0.50.01 paramiko

Once the dependencies have been installed, we can download and configure SUMI. To retrieve the code, clone the code from the repository

git clone https://albertbsc@bitbucket.org/albertbsc/sumi.git

This will create a local folder named "sumi". To include it in the $PATH environment variable we need to run the software.

For TCSH shell systems (as Gateway)

setenv PATH $PATH\:$HOME/sumi/bin

For Bash shells

export PATH=$PATH:$PWD/sumi/bin/

Now, we are ready to run SUMI. Execute the option "-h" to see all the

 

 

 

 

 

 

 

 

...

...

  • ~g2tomz/public/imas-installer-20180921112143.tar.xz

...

Known issues

...

Setting up SUMI

...

Downloading SUMI

...

Passwordless configuration

...

jobs.conf

...

servers.conf

...

Remote execution

...

 

Example case

In the case we have a container named "imas" and want to run a simple case interacting with the container image, configure a job "test" with the following parameters.
    [test]
    udocker = udocker.py
    arguments = run imas /bin/echo 'hello'
    cpus = 1
    time = 1
    threads_per_process = 1
Once configured, and configured you machine with specific parameters, run SUMI with the following code.
    sumi -r -j test -m MACHINE_NAME
This will generate and STDOUT and STDERR file on your remote cluster with the output of the image id and "hello".