Accueil Direction du Numérique Site de L'Université

Accueil > Site Public

Documentation du centre de calcul

Publié le 21 février 2014, mis a jour le 23 avril 2020

Export en PDF : Enregistrer au format PDF

 1. Présentation du centre de calcul


   1.1. Présentation générale

Le Centre de calcul est un des services de la Direction du Numérique (DNUM). L’informatique de gestion, le service réseaux et la pédagogie numérique sont les autres composantes de la DNUM.

Le Centre de calcul met à la disposition des chercheurs, des enseignants et des enseignements des moyens informatiques : 1 cluster pour le calcul numérique intensif avec réseau rapide InfiniBand, stockage/sauvegarde de données hautes performances, logiciels scientifiques et bureautiques, systèmes de base de données.

Ce cluster est formé par des machines sous le système Linux 64 bits, pour accéder aux caractéristiques du cluster cliquer ici.
Une salle de cours à la faculté des Sciences Mirande pouvant être utilisée aussi en libre service individuellement, est à disposition des départements d’enseignement.

Quelques définitions

Cluster
C’est un terme anglais désignant un ensemble de plusieurs ordinateurs appelés noeuds en général identiques et interchangeables administré d’une manière unique et centralisée. Grappe ou ferme en français.

Machine
(ou nœud)

Plus petit constituant d’un cluster permettant le traitement autonome de données (ou calculateur à un ou plusieurs processeurs). Au CCUB le cluster se compose de 2 grands types de machines :
- 
Machines interactives :

krenek01 à krenekN (où N est un entier) destinées au calcul interactif avec connexion de l’utilisateur.

- 

Machines batch :

bachN , hauerN , orffN , partN , webernN destinées au calcul en batch sans connexion possible de l’utilisateur.
N est un entier représentant le numéro de la machine.
Les machines batch sont gérées par le logiciel Sun Grid Engine (SGE).

Toute la liste des machines du cluster ainsi que leurs caractéristiques est disponible ici.

Un schéma du cluster :

 
  1.2. Stockage et sauvegarde des données

Le cluster contient 3 volumes de stockage : /user (/user1 et /user2), /work et /archive, pour utiliser ces volumes de stockage il faut se connecter sur une machine du cluster (voir : Connexion aux machines du centre de calcul).

La commande espgroup permet d’afficher l’espace disque occupé et le quota pour chaque utilisateur et son groupe.
Pour plus d’informations sur l’utilisation de cette commande taper :
espgroup --help

Il est très important pour chaque utilisateur de bien gérer son espace de stockage. Il existe des quotas pour chaque espace de stockage qui seront détaillés dans le tableau ci-dessous.

Données permanentes ($HOME = /user1) Se trouvent dans les répertoires principaux des utilisateurs (ou home directory) /user1 ou /user2. Les données permanentes et seulement celles-là, sont stockées sur un serveur spécialisé, indépendant des machines de traitement (via NFS ou iSCSI sur une liaison ethernet haut-débit), elles sont très sécurisés (système RAID et sauvegardés sur bandes magnétiques stockées en coffre ignifugé ). Le home directory n’est pas adapté pour faire des calculs.

Quota de /user1 :

Chaque utilisateur appartient à un groupe, par exemple le groupe "ccub" contient plusieurs utilisateurs : util01, util02, util03, etc.

Dans /user1 il n’y a pas de quota pour chaque utilisateur mais un quota pour tout le groupe. Un utilisateur peut prendre 100% de l’espace alloué au groupe et bloquer tous les autres utilisateurs.

Pour connaître le quota de son groupe et l’espace occupé par chaque utilisateur dans /user1 taper :

espgroup

Remarque :

Taper cd ~ dans un terminal pour se placer dans le répertoire utilisateur (aussi appelé le home).

Taper ensuite pwd pour afficher le répertoire courant.

Pour un utilisateur "util05" appartenant au groupe "ccub" le répertoire utilisateur sera :

/user1/ccub/util05

Données de calcul ou scratch ($WORKDIR = /work) Se trouvent dans le répertoire /work qui est dédié au calcul. C’est un système de stockage haute performance adapté au calcul intensif. Il faut donc lancer tous vos calculs depuis ce répertoire pour ne pas charger les /user. Pour cela, copier les programmes, scripts et données de calculs depuis /user vers le répertoire de calcul /work, les données sont sécurisées (système RAID) mais pas sauvegardées sur bandes magnétiques.

Quota de /work :

Dans le /work chaque utilisateur a son propre quota. Pour connaître l’espace occupé par chaque utilisateur du groupe dans le /work et le quota maximum de chaque utilisateur taper :

espgroup -wl

Remarque :

Pour copier un fichier de /user1 à /work il faut utiliser la commande cp dans le terminal.

Pour un utilisateur "util05" du "ccub" qui veut copier le fichier "calcul.data" de son répertoire utilisateur /user1 à son espace de travail /work :

- cd ~ (se placer dans le répertoire utilisateur).
- cp calcul.data /work/ccub/util05 (copier calcul.data dans /work)

Pour copier le dossier "repertoire_calcul" contenant plusieurs fichiers (et/ou sous-répertoires) il faut utiliser l’option -r de cp :

- cp -r repertoire_calcul /work/ccub/util05

Pour copier le fichier "resultat.dat" de /work à /user :

- cp /work/ccub/util05/resultat.dat ~ (le tilde "~" représente le répertoire utilisateur)

ATTENTION :

si une copie d’un fichier est effectuée sur un autre qui existe déjà, il sera remplacé sans aucune demande de confirmation. Pour éviter ce genre d’incident, utiliser l’option "-i" ou "-b" pour s’assurer que le fichier existant ne sera pas écrasé, exemple :

- cp -i -r repertoire_calcul /work/ccub/util05

- -i : permet d’afficher un message de confirmation pour écraser le fichier existant.
- -b : permet de copier en renommant le fichier existant avec un suffixe "~"

.

Données archive ($ARCHIVEDIR = /archive) Dans /archive les données de calcul à des fins de post-traitement ou d’archivage à long terme seront stockées. C’est un stockage capacitif mais peu performant, ne pas l’utiliser pour exécuter des calculs.

Il est sécurisé (système RAID et duplication des données). Une restauration des données que vous auriez pu effacer par erreur est possible sur un créneau de 2 mois maximum.

Le /archive n’est pas disponible sur les nœuds batch, voici une méthode pour transférer des données depuis le /archive vers le /work en début de job : Exemple de job batch avec dépendance pour copier des données depuis l’archive

Quota de /archive :

Chaque utilisateur a son propre quota dans /archive. Pour connaître l’espace occupé par chaque utilisateur du groupe et le quota maximum du /archive taper :

espgroup -al

REMARQUE : La migration de données vers le /archive nécessite généralement le transfert de grandes volumétries. Nous vous conseillons de suivre les procédures détaillées : Copier des données sur le cluster de calcul. L’utilisation de RSYNC est à privilégier puisqu’elle permet d’effectuer une reprise du transfert après une interruption, sans avoir à recopier ce qui a déjà été transférer.

-  $ rsync -avHx --log-file=log_rsync.txt /work/ccub/an0840mi/namd /archive/ccub/an0840mi/  

.

Données temporaires (/tmp3)

Chaque machine du cluster dispose d’un dossier temporaire :

/tmp3

En cas de besoin, ce dossier peut être utilisé comme $TMPDIR . Vous devez utiliser le /tmp3 en lieu et place du /tmp .

Contrairement aux volumes cités plus haut, le /tmp3 est local à chaque machine. Si vos jobs batch laissent des données dans le /tmp3 après leur exécution, il vous sera impossible de les récupérer vous même. La talle du volume /tmp3 dépend de chaque machine, et peut varier entre 150 Go et 800 Go.

L’utilisation de ce dossier en batch est recommandé uniquement pour Gaussian.

Les données stockées dans le /tmp3 peuvent être effacées par les administrateurs du cluster en cas de besoin.

Tout fichier présent dans le répertoire /tmp3 et dont la dernière modification remonte à plus de 30 jours sera supprimé.

.


Le tableau récapitulatif du stockage est disponible ici : [Tableau du stockage]

 
2. Connexion aux machines du centre de calcul

   2.1. Connexion avec SSH

Pour se connecter aux machines du CCuB, un compte de calcul est requis. Pour en faire la demande : remplir ce formulaire et l’envoyer par mail au : ccub@u-bourgogne.fr.

La connexion se fait avec le protocole ssh, cette méthode de connexion est la plus sûre et la plus stable pour se connecter aux machines du centre.

Sous Linux et MacOs, ssh est installé par défaut. Taper "ssh" dans un terminal pour vérifier. Pour utiliser ssh sous Windows il faut installer le logiciel putty.

Cliquez sur l’un des deux liens suivant pour avoir toute la procédure de connexion aux machines du CCuB avec le système d’exploitation adapté :

- Connexion aux machines sous Linux et MacOs.

- Connexion aux machines sous Windows.

   2.2. Connexion en mode graphique


     2.2.1. NX NoMachine (recommandé)

La technologie NX est un protocole client-serveur permettant des connexions graphiques X11 distantes rapides et sûres pour accéder à un bureau Linux / Unix à distance. Le protocole est basé à la fois sur SSH (pour la sécurité), sur la compression X et utilise le cache pour améliorer la vitesse d’affichage (dixit Wikipedia).

- Connexion aux machines avec NX.

- avec le nouveau NX, il est maintenant possible de Connecter un disque de son ordinateur (clé USB) sur les machine du cluster avec NX

 
    2.2.2. TurboVNC et VirtualGL

Cette méthode de connexion est expérimentale. Certains programmes peuvent ne pas fonctionner.

TurboVNC et VirtualGL sont deux logiciels distincts. Cependant il est conseillé d’utiliser VirtualGL au travers de TurboVNC car ce dernier est suffisamment performant pour traiter le flux vidéo généré par une application 3D.

On se sert de TurboVNC pour se connecter sur les machines du centre, puis de VirtualGL pour exécuter une application qui requiert des ressources 3D.

Pour plus d’informations consulter le site officiel.

- Télécharger TurboVNC et VirtualGL.

- Connexion aux machines avec TurboVNC et introduction à VirtualGL.

 
3. Logiciels et applications du CCUB


 
  3.1. Environnement logiciel : modules

Le CCUB met à disposition de nombreux logiciels sur le cluster, et souvent plusieurs versions de chaque logiciel. Afin d’éviter les conflits entre différentes versions d’un même logiciel, il faut généralement définir un environnement propre à chaque version. L’outil Modules Environment permet de configurer l’environnement tout en gérant les conflits et les dépendances.

Par exemple plusieurs versions de Gromacs sont installées (4.0.7, 4.5.3, etc.). Les binaires de la version 4.0.7 sont installés dans /usr/local/gromacs-4.0.7/bin et les binaires de la version 4.5.3 sont installés dans /usr/local/gromacs-4.5.3/bin. Si on mettait les 2 chemins dans le path (variable $PATH) alors la commande grompp pointerait sur le premier binaire grompp trouvé dans le path sans avoir la certitude que l’on utilise la version désirée.

Voir aussi : le site officiel de Modules Environment pour plus de détails.

Pour utiliser la commande module il faut être connecté sur une machine du cluster (voir : connexion aux machines du centre de calcul).

Le tableau ci-dessous résume les commandes les plus courantes de Module Environment :

Commande Fonction Exemple d’utilisation
module avail afficher la liste des environnements disponibles
module help afficher l’aide relatif au logiciel : informations générales, lancement, site officiel, etc. module help gromacs/4.5.5
module load charger un environnement module load gromacs/4.5.5
module list afficher la liste des environnements chargés
module show afficher le contenu d’un module module show gromacs/4.5.5l
module switch changer la version d’un environnement chargé module switch gromacs/4.6.3
module unload décharger un environnement module unload gromacs/4.6.3

   3.2. Lancement des logiciels


     3.2.1 En mode interactif

C’est un mode de traitement de données permettant un échange directe entre le système informatique et l’utilisateur, l’utilisation du logiciel se fait donc avec la souris et le clavier.

L’exécution d’applications de manière interactive est adaptée lorsque le temps d’exécution est relativement court.

Le travail en interactif n’est possible que sur les machines interactives ; l’utilisation du protocole NX est encouragée pour obtenir de bonnes performances d’affichage.

Remarque : le temps CPU est limité à 12h CPU en intéractif.

 

    3.2.2 En batch

L’utilisation des logiciels en batch se fait par le traitement automatique d’un fichier contenant une suite de commandes sans interactions directes avec l’utilisateur.

Le travail en batch permet une utilisation optimale des ressources machines tant en parallèle qu’en séquentiel pour des calculs de longue durée. Ce système est utilisé sur les machines batch avec le logiciel SGE (Sun Grid Engine).

Pour une introduction au travail en batch et à Grid Engine cliquer ici.

Remarque : le temps d’exécution des jobs est limité à 21 jours humain en batch.

   3.3. Liste des logiciels du centre de calcul

Pour savoir comment lancer un logiciel de la liste ci-dessous, se connecter sur une machine du centre de calcul et taper la commande module help suivi du nom du logiciel, exemple :
module help matlab

(cliquer ici pour avoir plus d’informations sur la commande module).

Analyses de données, statistiques :

- R : langage et environnement libre de traitement des données et d’analyse statistiques. R est un projet GNU

- RStudio : Environnement de développement multiplateforme gratuit et open source pour R

- Sas : (Statistical Analysis System) est un langage de programmation édité par le SAS institue utilisé en statistique. SAS est le leader des solutions de Business Analytics

Bureautique et traitement de texte :

- emacs : éditeur de texte et de codes sources graphique

- Gvim : éditeur de texte et de codes sources. Gvim est la version graphique de vim

- LaTeX : langage et système de composition de documents

- OpenOffice : suite bureautique libre

- Pdftk : logiciel libre, c’est un programme en ligne de commande permettant d’effectuer certaines manipulations de documents PDF, comme la mise en arrière-plan, la concaténation, extraction de pages, le remplissage des formulaires, etc.

- Nedit : (Nirvana editor) est un éditeur de texte et de code source

Calcul formel :

- Maple  : logiciel de calcul formel utilisé en mathématique et en modélisation édité par la société Maplesoft

- Reduce  : logiciel de calcul formel utilisé par des mathématiciens, scientifique et ingénieurs.

- Sage  : logiciel gratuit et open-source de calcul formel distribué sous la licence GPL.

- TRIP

Calcul scientifique, éléments finis :

- Abaqus : (Simulia) est un logiciel de simulation numérique basé sur la méthode des éléments finis édité par Dasseault Systemes. Disponible en licence académique et recherche uniquement.

- Castem : Cast3M (Castem) est un logiciel de simulation numérique développé par le Département Mécanique et Technologie (DMT) du Commissariat français à l’Energie Atomique et aux énergies alternatives (CEA). Il utilise la méthode des éléments finis pour résoudre différents types de problèmes scientifiques.

- Comsol : Comsol Multiphysics (anciennement appelé Femlab) est un logiciel de simulation numérique dévelopé par COMSOL, il offre des interfaces spécialisées pour les applications électriques, mécaniques, d’écoulement et en génie chimique.

- Matlab : langage de programmation et un environnement interactif pour le calcul numérique, la visualisation et la programmation. Développé par la société The MathWorks.

- Scilab : logiciel open source gratuit de calcul numérique qui fournit un puissant environnement de développement pour les applications scientifiques et l’ingénierie.

- Yade

Chimie, méthodes ab-initio :

- AmberTools : The Amber Molecular Dynamics Package

- CP2K : Logiciel libre de dynamique moléculaire

- Gamess : GAMESS (The General Atomic and Molecular Electronic Structure System) est un programme général de chimie quantique ab initio.

- Gaussian (et Gaussview 3.0) : logiciel de modélisation de systèmes moléculaires utilisé en chimie numérique.

- Gromacs : GROMACS (GROningen MAchine for Chemical Simulations) est un logiciel de simulation en dynamique moléculaire.

- LAMMPS : Large-scale Atomic/Molecular Massively Parallel Simulator est un logiciel open-source de dynamique moléculaire.

- Nwchem : logiciel de chimie qui comprend une fonctionnalité de dynamique moléculaire.

- Quantum : Quantum Espresso est une suite de codes open-Source utilisé pour le calcul de structures électroniques ab-initio et la modélisation des matériaux à l’échelle nanométrique. Il est basé sur la théorie de la fonctionnelle de la densité (DFT) avec l’utilisation des ondes planes et de pseudopotentiel.

- USPEX : Universal Structure Predictor : Evolutionary Xtallography

- VASP : VASP (Vienna Ab-initio Simulation Package)

Graphisme :

- Amira / Avizo

- Fiji (ImageJ)

- GNUPlot

- OpenGL

- Ovito

- PgPlot

- Povray

- VMD

- Xfig postscript-Xfig

- XmGrace

Générique :

- Migrate-n1

- Structure

Génomique :


- AS-GENSENG

- BamTools

- BamUtil

- Bedtools2

- Blat

- Bowtie 2

- Breakdancer

- BreaKmer

- BWA

- Cutadapt

- ERDS

- FastQ

- FASTX-Toolkit

- faToTwoBit

- FreeBayes

- GATK

- GemSIM

- gfClient

- gfServer

- Haploclique

- IGV

- Jellyfish

- Kraken

- LoFreq

- MIRA

- Mosaik

- Picardtools

- Pindel

- pIRS

- PredictHaplo

- PrinSeq

- PRISM

- QuasiRecomb

- RDXplorer

- SAMtools

- Sickle

- SnpEff

- SOAPdenovo 2

- SolexaQA

- SVDetect

- Trimmomatic

- UrQt

- VCFtools

- VirVarSeq

- VPhaser

- Wessim

- Wisecondor

Divers :

- Benchmarks

   3.4. Langage de programmation et calcul parallèle

Liste des langagesInformations
- Calcul parallèle MPI et OpenMP
- Fortran Fortran, CernLib, MKL
- Java
- Perl
- Python
- Prolog
CompilateursInformations
- Intel Recommandé, c’est le compilateur utilisé par le CCuB.
ifort pour fortran, icc/icpc pour C/C++
- Portland Obsolète, pgf90 pour fortran, pgcc/pgCC pour C/C++
- GNU gfortran pour fortran, gcc/g++ pour C/C++

Mode d’emploi : Compiler vos codes en FORTRAN, C ou C++

 4. Copier des données sur le cluster de calcul (mode déconnecté)

Voici une méthode permettant de copier des données en conservant toutes les propriétés des fichiers (permissions, liens symboliques, etc.). Cette méthode utilise la commande tar et la commande screen, ce qui permettra de copier des gros volumes en arrière plan (un peu comme un programme batch).

Remplacer à chaque fois mon_login, mon_groupe ou mon_dossier par la valeur correspondante.
Le but de cet exemple est d’obtenir un dossier /archive/mon_groupe/mon_login/mon_dossier identique au dossier source /work/mon_groupe/mon_login/mon_dossier

   4.1. tar

- se connecter sur un krenek


- exécuter la commande screen (ce logiciel permet de mettre un shell en tache de fond, et de le reprendre plus tard)


- aller à l’endroit où se trouvent les données sources


- copier les données (ici, le dossier "mon_dossier" sera copié vers mon espace dans /archive)


- détacher le screen avec la combinaison de touche ctrl a puis d (^A - d)
- la mention [detached] doit apparaître : vous êtes revenu dans votre shell initial. Vous pouvez vous déconnecter de la machine sans aucun souci.
- pour évaluer l’avancement de la copie, vous pouvez utiliser du


- pour reprendre la main sur un screen, afin de vérifier si la commande est terminée, il faut se reconnecter sur la même machine :


- vous devez retrouver le shell tel que vous l’avez laisser plus haut (commandes cd, tar, etc.)
- pour quitter screen et le fermer complètement, faire exit
- si la copie s’est bien passée, vous pouvez supprimer votre dossier sur /work afin de libérer de l’espace

   4.1. rsync

rsync peut etre utilisé en lieu et place de tar. rsync permet d’effectuer une reprise du transfert après une interruption, sans avoir à recopier ce qui a déjà été transférer.

 5. Connaître sa consommation CPU

Il est possible d’avoir le nombre d’heures CPU exacte effectué durant le mois, pour cela il existe deux commandes :

userstats AAMM : pour avoir le nombre d’heures effectué par un l’utilisateur qui exécute la commande.

groupstats AAMM : pour avoir le nombre d’heures effectué par tout le groupe de l’utilisateur qui exécute la commande.

AA : l’année , MM : le mois

Par exemple l’utilisateur util05 veut avoir le nombre d’heures CPU du mois de mai de l’année 2015 :

Il est possible de connaître le nombre d’heures CPU sur une periode de plusieurs mois, par exemple entre le mois de juillet 2014 et mars 2015 :

 6. Remerciements

Merci d’insérer la phase suivante dans la rubrique Acknowledgements de vos publications afin de faciliter leur indexation via les moteurs de recherche de bibliographie.

"Calculations were performed using HPC resources from DNUM CCUB (Centre de Calcul de l’Université de Bourgogne)"


Date de création: septembre 1994
Contact : ccub@u-bourgogne.fr
Ce site requiert l'activation de Javascript sur votre navigateur pour fonctionner dans son intégralité.