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 `_. Bien que le mode d'interaction privilégié avec le service HTC soit à travers le `logiciel DIRAC `_, il est également possible d'utiliser directement le *Computing Element* (**CE**) de la plateforme SCIGNE pour gérer ses calculs. Le logiciel qui gère offre la fonctionnalité de CE sur la SCIGNE est l'`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 <#grid-services>`_. .. figure:: _static/job_workflow_arcce.png Interaction des services lors la soumission d'un calcul sur l'infrastructure de grille Dans cette documentation, l'utilisateur gère les calculs directement avec l'ARC CE, sans DIRAC. 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 `_. Une fois les données copiées, le calcul peut être 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 le SE, le CE collecte les informations d'exécution qui peuvent ensuite être 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. .. _grid-services: .. table:: 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 : .. code-block:: console $ sudo apt install nordugrid-arc-client * Sur RedHat et dérivés (par ex. CentOS) : .. code-block:: console $ 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 : .. code-block:: console $ 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.scigne.fr``, qui est la VO régionale. Vous devez remplacer le nom de cette VO par celle que vous utilisez (par ex. ``biomed``). 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 : .. code-block:: console $ arcproxy -S vo.scigne.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* : .. code-block:: console $ arcproxy -I Subject: /DC=org/DC=terena/DC=tcs/C=FR/O=Centre national de la recherche scientifique/CN=Your Name/CN=265213680 Issuer: /DC=org/DC=terena/DC=tcs/C=FR/O=Centre national de la recherche scientifique/CN=Your Name Identity: /DC=org/DC=terena/DC=tcs/C=FR/O=Centre national de la recherche scientifique/CN=Your Name Time left for proxy: 23 hours 59 minutes 48 seconds Proxy path: /tmp/x509up_u1234 Proxy type: X.509 Proxy Certificate Profile RFC compliant impersonation proxy - RFC inheritAll proxy Proxy key length: 2048 Proxy signature: sha384 ====== AC extension information for VO vo.scigne.fr ====== VO : vo.scigne.fr subject : /DC=org/DC=terena/DC=tcs/C=FR/O=Centre national de la recherche scientifique/CN=Your Name issuer : /DC=org/DC=terena/DC=tcs/C=FR/L=Paris/O=Centre national de la recherche scientifique/CN=voms-scigne.ijclab.in2p3.fr uri : voms-scigne.ijclab.in2p3.fr:443 attribute : /vo.scigne.fr Time left for AC: 11 hours 59 minutes 52 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. .. code:: & (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 : .. code:: bash #!/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.scigne.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 : .. code-block:: console $ arcsub -c sbgce1.in2p3.fr myjob.xrsl Job submitted with jobid: gsiftp://sbgce1.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 : .. code-block:: console $ arcstat gsiftp://sbgce1.in2p3.fr:2811/jobs/VnhGHkl9RUnhJKeJ7oqv78RnGBFKFvDGEDDmxDFKDmABFKDmnKeGDn Job: gsiftp://sbgce1.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 : .. code-block:: console $ arcget gsiftp://sbgce1.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 : - `documentation officielle ARC CE `_.