Guide d’utilisation de ARC CE

Introduction

Le service de calcul à haut-débit (HTC) de la plateforme SCIGNE repose sur un cluster de calcul optimisé pour le traitement de tâches parallélisées par la donnée. Ce cluster est connecté à une infrastructure plus large, la grille européenne de calcul EGI.

La gestion directe des jobs de calcul sur la plateforme se fait à travers le logiciel ARC CE.

Après une introduction sur le fonctionnement de la grille de calcul, cette documentation décrit la soumission, le suivi et la récupération des résultats de vos calculs avec le client ARC CE.

La grille de calcul

Cette section présente les différents services utilisés lors de la soumission d’une tâche (job) sur la grille de calcul. L’interaction entre ces services lors du workflow d’un job est illustrée sur la figure suivante. Les acronymes sont détaillés dans le tableau Les principaux services de la grille de calcul.

Figure 1. Interaction des services lors la soumission d’un calcul sur l’infrastructure de grille

L’utilisateur gère les calculs directement avec l’ARC CE. Avant de soumettre le calcul, les données volumineuses (> 10 Mo) doivent être copiées sur le Storage Element (SE). Le fonctionnement du SE est détaillé dans la documentation dédiée au stockage. Ces données seront accessibles depuis les nœuds de calcul. Ensuite, le calcul est soumis à l’ARC CE, qui le prépare et le transfert au gestionnaire de batch de la plateforme SCIGNE (pbs dans notre cas). Le gestionnaire de batch distribue les jobs sur les Worker Nodes (WN). Une fois les calculs terminés et les résultats copiés sur un SE, le CE collecte les informations d’exécution qui sont ensuite récupérées par l’utilisateur.

Durant le temps des calculs, l’utilisateur peut interroger l’ARC CE pour connaître l’état du déroulement de son calcul.

Les principaux services de la grille de calcul
Élément Rôle
UI L’UI (User Interface) est le poste utilisateur équipé du client ARC CE. Elle permet de :

  • gérer un calcul (soumission, suivi de l’état, annulation) ;
  • récupérer les résultats d’un calcul ;
  • copier, répliquer ou supprimer des données sur la grille.
SE Le SE (Storage Element) est l’élément d’une grille gérant le stockage. Il permet de récupérer les résultats des calculs ou bien de fournir au calcul des fichiers de données volumineux. Il est accessible via différents protocoles.
ARC CE Le ARC CE (Computing Element) est le serveur interagissant directement avec le gestionnaire de queues. Il permet de soumettre des calculs sur un cluster local.
WN Le WN (Worker Node) est le serveur effectuant le calcul. Il se connecte au SE pour récupérer les données nécessaires au calcul. Il peut également copier les résultats du calcul sur le SE.

Pré-requis

Afin de pouvoir soumettre un calcul, les deux pré-requis suivants sont nécessaires :

  • disposer d’une station de travail équipée du client ARC CE ;
  • disposer d’un certificat valide enregistré dans une organisation virtuelle (VO). Le document Gestion d’un certificat détaille la demande de certificat et l’inscription aux VOs locales, régionales ou disciplinaires. L’authentification sur l’infrastructure de grille de calcul est effectivement basée sur l’utilisation des certificats.

Client ARC CE

La gestion des calculs est réalisée avec le client en ligne de commande ARC CE.

Pour les utilisateurs disposant d’un compte à l’IPHC, le client ARC CE est pré-installé sur les serveurs UI.

Il est également d’installer simplement les clients sur un poste de travail GNU/Linux :

  • Sur Ubuntu :
    $ sudo apt install nordugrid-arc-client
  • Sur RedHat et dérivés (par ex. CentOS) :
    $ yum install -y epel-release
    $ yum update
    $ yum install -y install nordugrid-arc-client

Certificat

La partie privée et la partie publique du certificat doivent être placées dans le répertoire $HOME/.globus sur le serveur à partir duquel les calculs seront soumis. Ces fichiers ne doivent être lisibles que par leur propriétaire :

$ ls -l $HOME/.globus
-r-------- 1 user group 1935 Feb 16  2010 usercert.pem
-r-------- 1 user group 1920 Feb 16  2010 userkey.pem

Dans cette documentation, nous utilisons la VO vo.grand-est.fr, qui est la VO régionale. Vous devez remplacer le nom de cette VO par celle que vous utilisez (par ex. biomed ou vo.sbg.in2p3.fr).

Gestion d’un calcul avec le client ARC CE

Génération d’un proxy

Avant de soumettre un calcul sur la grille régionale, il est nécessaire de générer un proxy valide. Ce certificat temporaire permet de s’authentifier avec les outils de la grille. Il est généré avec la commande suivante :

$ arcproxy -S vo.grand-est.fr -c validityPeriod=24h -c vomsACvalidityPeriod=24h

L’option -S permet de sélectionner la VO.

La commande suivante permet de vérifier la durée de validité de son proxy :

$ arcproxy -I
Subject: /O=GRID-FR/C=FR/O=CNRS/OU=IPHC/CN=Jerome Pansanel/CN=1544387362
Issuer: /O=GRID-FR/C=FR/O=CNRS/OU=IPHC/CN=Jerome Pansanel
Identity: /O=GRID-FR/C=FR/O=CNRS/OU=IPHC/CN=Jerome Pansanel
Time left for proxy: 18 hours 29 minutes 58 seconds
Proxy path: /tmp/x509up_u1001
Proxy type: X.509 Proxy Certificate Profile RFC compliant impersonation proxy - RFC inheritAll proxy
Proxy key length: 1024
Proxy signature: sha256
====== AC extension information for VO vo.sbg.in2p3.fr ======
VO        : vo.grand-est.fr
subject   : /O=GRID-FR/C=FR/O=CNRS/OU=IPHC/CN=Jerome Pansanel
issuer    : /O=GRID-FR/C=FR/O=CNRS/OU=LAL/CN=grid12.lal.in2p3.fr
uri       : grid12.lal.in2p3.fr:20018
attribute : /vo.grand-est.fr/Role=NULL/Capability=NULL
Time left for AC: 18 hours 30 minutes 2 seconds

Soumission d’un calcul

La soumission d’un calcul avec le client ARC CE nécessite un fichier texte décrivant les caractéristiques du calcul au format xRSL. Le fichier xRSL présenté dans l’exemple ci-dessous est fonctionnel et utilisable pour la réalisation d’un calcul simple. Ce fichier est nommé myjob.xrsl dans ce document.

&
(executable = "/bin/bash")
(arguments = "myscript.sh")
(jobName="mysimplejob")
(inputFiles = ("myscript.sh" "") )
(stdout = "stdout")
(stderr = "stderr")
(gmlog="simplejob.log")
(wallTime="240")
(runTimeEnvironment="ENV/PROXY")
(count="1")
(countpernode="1")

Chaque attribut du fichier xRSL exemple a un rôle bien précis :

  • executable définit la commande à exécuter sur les nœuds de calcul.
  • arguments spécifie les arguments à passer au programme définit par l’attribut executable ; le contenu du script myscript.sh est ce que vous auriez tapé en interactif pour effectuer votre calcul.
  • jobName décrit le nom de la tâche réalisé.
  • inputFiles indique les fichiers à envoyer à l’ARC CE pour pouvoir exécuter le calcul. L’utilisation de «  » après le nom du fichier indique que le fichier est disponible localement, dans le répertoire où les commandes du client ARC CE sont exécutées.
  • stdout indique le nom du fichier vers lequel est redirigé la sortie standard.
  • stderr indique le nom du fichier vers lequel est redirigé les messages d’erreur.
  • gmlog le nom du répertoire contenant des outils pour les diagnostics.
  • wallTime le temps d’exécution maximum demandé pour le calcul.
  • runTimeEnvironment l’environnement d’exécution (RTE) du job à charger. L’environnement ENV/PROXY est nécessaire pour que les jobs puissent utiliser correctement le proxy pour récupérer des données sur le SE.
  • count un entier indiquant le nombre de tâches exécutées simultanément (ce paramètre est supérieur à 1 dans le cas de jobs MPI par exemple)
  • countpernode un entier indiquant le nombre de tâches a exécuté par serveur. Si toutes les tâches doivent s’exécuter sur le même nœud de calcul, il faut que la valeur de ce paramètre soit égale à la valeur du paramètre count.

Un exemple de contenu pour le fichier myscript.sh est détaillé ci-dessous :

#!/bin/sh

echo "=====  Begin  ====="
date
echo "The program is running on $HOSTNAME"
date
dd if=/dev/urandom of=fichier.txt bs=1G count=1
gfal-copy file://`pwd`/fichier.txt https://sbgdcache.in2p3.fr/vo.grand-est.fr/lab/name/fichier.txt
echo "=====  End  ====="

Les exécutables utilisés dans le fichier myscript.sh doivent être installés sur la grille. L’installation de ces logiciels est assurée par l’équipe support de la plateforme SCIGNE. N’hésitez pas à la contacter si vous avez besoin de logiciels spécifiques.

La commande gfal-copy permet de copier les fichiers créés par le calcul sur le SE. Il est recommandé d’utiliser le serveur sbgdcache.in2p3.fr lors de la soumission d’un calcul sur le service HTC de la plateforme SCIGNE (il s’agit du SE le plus proche). Le fonctionnement du service de stockage est détaillé dans la la documentation dédiée. Une fois que les fichiers myjob.xrsl et myscript.sh sont créés, le calcul peut être soumis sur la grille avec la commande suivante :

$ arcsub -c sbgce2.in2p3.fr myjob.xrsl
Job submitted with jobid: gsiftp://sbgce2.in2p3.fr:2811/jobs/VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn

L’option -c permet de sélectionner le serveur ARC CE sur lequel est soumis le calcul.

L’identifiant du job est stocké dans la base locale du client : {HOME}/.arc/jobs.dat.

Suivi de l’état d’un calcul

Pour connaître l’état d’un calcul, la commande suivante est utilisée avec l’identifiant du calcul :

$ arcstat gsiftp://sbgce2.in2p3.fr:2811/jobs/VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn
Job: gsiftp://sbgce2.in2p3.fr:2811/jobs/VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn
Name: mysimplejob
State: Finishing

Status of 1 jobs was queried, 1 jobs returned information

Dans le cas d’un job très court, il faut attendre un peu avant d’avoir que son état ne soit mis à jour.

Récupération des fichiers de sortie

Une fois que le job est terminé (statut : Finished), le contenu des fichiers décrits par les variables stdout et stderr est récupéré avec la commande :

$ arcget gsiftp://sbgce2.in2p3.fr:2811/jobs/VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn

Les fichiers sont dans le répertoire VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn.

Documentation complémentaire

Le lien ci-dessous permettent d’accéder à de la documentation complémentaire pour approfondir l’utilisation du client ARC CE et de la grille de calcul :