FAQ Calcul Intensif

Autorisation d’accès aux machines du CINES

Comment obtenir des heures de calcul au CINES ?

Tout chercheur appartenant à la communauté scientifique nationale peut, sous le couvert de son laboratoire, faire une demande de ressources sur les machines hébergées au CINES, grâce à l’application en ligne « DARI » (Demande d’Attribution de Ressources Informatiques). Le dossier doit être soumis lors de l’une des deux sessions annuelles (Avril et Septembre).

J'ai bientôt utilisé mes heures attribuées, comment puis-je en obtenir d'avantage ?

Tout au long de l’année, les utilisateurs qui ont atteint leur quota d’heures peuvent faire des demandes complémentaires sur le site DARI.

J'ai des heures dans un autre centre national, puis-je demander le transfert de ces heures vers le CINES ?

Une demande exceptionnelle et justifiée de cet ordre peut être soumise en envoyant un mail à svp@cines.fr. Cette demande sera examinée par les responsables concernés.

Puis je prêter mon login à un collègue ?

La charte du CINES stipule que les logins sont personnels et incessibles. Tout manquement à la règle pourrait entraîner un retrait du droit d’accès. La charte peut être consultée ici.

Gestion des données

Quels sont les espaces de stockage ?

L’ensemble des informations se trouve ici.

En résumé, il existe 4 espaces de stockage :

  • Le /home : compilation, stockage exécutable + librairies nécessaires à l’exécution de vos jobs
  • Le /scratch : espace TEMPORAIRE, lancement des jobs à partir de cet espace, écriture des fichiers temporaires de sortie pendant l’exécution etc…
  • Le /store : espace de travail sécurisé et partagé par les calculateurs
  • Le /data : stockage des résultats et données à conserver (sera bientôt remplacé par le /store)

Il est important de noter que le /scratch est temporaire, l’utilisation du /data est nécessaire à la bonne conservation et à la pérennité des résultats.

Comment connaître mon espace disponible ?

Il suffit d’exécuter la commande lfs quota suivie du nom de l’espace de stockage souhaité.

Par exemple : lfs quota /scratch

Les informations sur les quotas maximum sont disponibles ici.

Logiciels

Quels sont les logiciels disponibles au CINES?

tous les logiciels installés disposent d’un module. Il est possible d’utiliser la commande module avail pour connaître l’ensemble des modules installés sur la machine.

Comment utiliser un logiciel ? La commande module

La commande module peut être utilisée des manières suivantes :

  • module avail liste l’ensemble des modules installés sur la machine (par ex. abinit).
  • module load nom_module permet d’ajouter le module à la session en cours (par ex. module load abinit).
  • module show nom_module donne des informations sur le module (version, conflit avec d’autres modules, etc..).
  • module list liste l’ensemble des modules chargés pour la session en cours.

Une fois la commande module load nom_module utilisée, vous pouvez utiliser le logiciel correspondant.

La version du logiciel installée n’est pas celle que je souhaite utiliser

Plusieurs versions des logiciels sont disponibles sur les machines. Vous pouvez voir ces différentes versions en utilisant la commande module avail

Si la version que vous cherchez n’est pas présente, contactez l’équipe support (svp@cines.fr) qui saura vous aider à passer sur une version installée ou bien à installer une version plus récente du logiciel.

Je veux utiliser un logiciel non installé au CINES, comment procéder ?

Si le logiciel est sous licence, il faut que vous puissiez fournir la licence du logiciel.

Si ce logiciel est spécifique à votre groupe de recherche, nous vous encourageons à l’installer par vous même dans votre espace utilisateur.

Sinon, vous pouvez contacter l’équipe support du CINES (svp@cines.fr) afin de faire la demande d’installation. Celle-ci sera étudiée par l’équipe et une réponse vous sera apportée dans les meilleurs délais.

Disponibilité des machines

Vous pouvez consulter la disponibilité des machines du CINES sur cette page.

Général

Quels sont les processeurs disponibles sur Occigen ?

La machine Occigen est composée de :

Tous les nœuds disposent de la dernière technologie de vectorisation, l’AVX2 et l’hyperthreading est activé sur l’ensemble des processeurs.

Quel est l'OS de Occigen ?

C’est un système d’exploitation BullX SCS AE5, basé sur une Redhat 7.3.

Quel système de fichiers est utilisé ?

Un système de fichiers de type Lustre est utilisé pour le /scratch.

Pour le /home c’est du Panasas.

Le /store permet une conservation plus sécurisée des données, c’est un système de fichier de type Lustre.

Comment accéder à mes différents espaces de données ?

Pour accéder à vos différents espaces (/home, /store et /scratch), vous disposez des variables d’environnement suivantes : HOMEDIR, STOREDIR et SCRATCHDIR.
Exemple d’utilisation :

cd $SCRATCHDIR

Il existe aussi un espace de stockage partagé pour vous et l’ensemble de votre groupe nommé SHAREDSCRATCHDIR et SHAREDHOMEDIR, n’hésitez pas à les utiliser pour partager vos résultats (SHAREDSCRATCHDIR) et vos logiciels (SHAREDHOMEDIR).

Comment connaître mon occupation des différents espaces (/home /scratch et /store) ?

Espace /home, les quotas sont appliqués par utilisateurs (volume). Vous pouvez consulter le fichier suivant :

  cat $HOMEDIR/.home_quota

Espace /scratch, les quotas s’appliquent aux groupes unix (volume).
Pour obtenir votre groupe unix, tapez la commande id pour récupérez votre gid, puis :

  lfs quota -gh <votre_gid> /scratch

Espace /store, les quotas s’appliquent aux groupes unix (volume et nombre de fichiers) :

  lfs quota -gh <votre_gid> /store

Accéder à la machine

Comment accéder à Occigen ?

Linux : En utilisant la méthode de connexion ssh vers l’adresse occigen.cines.fr

Windows : En utilisant un client ssh tel que PuTTY puis en se connectant via ssh à l’adresse occigen.cines.fr

Comment lancer une application graphique ?

Il suffit de rediriger la sortie graphique vers un serveur X.

Sous Linux, connectez-vous en utilisant la commande ssh -X occigen.cines.fr.

Sous Windows, un logiciel tel que Xming peut être utilisé. Il suffit ensuite de lancer Xming, puis d’activer le « X11 forwarding » dans votre client SSH. (Par exemple dans PuTTY, cochez la case « Enable X11 forwarding » dans le menu Connection -> SSH -> X11

Comment Copier/Rapatrier des données ?

Sous Linux, depuis votre laboratoire vers l’adresse occigen.cines.fr avec le protocole scp.

Sous Windows, utilisez un logiciel de transfert comme Filezilla en lui donnant l’hôte occigen.cines.fr sur le port 22.

Calculer sur la machine

Depuis quel espace dois-je soumettre mes travaux ?

L’ensemble des travaux doit être soumis depuis /home, en prenant garde que les fichiers lu/écrits soient dans l’espace /scratch (qui est un espace temporaire mais à accès rapide) .

Quel job scheduler (ordonnanceur de travaux) est utilisé ?

L’ordonnanceur de travaux d’ Occigen est SLURM (Simple Linux Utility for Resource Management).

Comment soumettre mes travaux sur Occigen ?

Les travaux peuvent être soumis en utilisant la commande « sbatch <nom_fichier> » où <nom_fichier> est un fichier de script dans lequel sont contenues des instructions pour SLURM ainsi que des instructions pour le lancement de votre programme.
Exemple de contenu d’un script SLURM pour un programme MPI s’exécutant sur 2 noeuds Haswell et 48 cores

#!/bin/bash
#SBATCH -J job_name
#SBATCH --nodes=2
#SBATCH --constraint=HSW24
#SBATCH --ntasks=48
#SBATCH --ntasks-per-node=24
#SBATCH --threads-per-core=1
#SBATCH --mem=30GB
#SBATCH --time=00:30:00
#SBATCH --output job_name.output
module purge
module load intel
module load openmpi # n'hesitez pas a tester plusieurs versions
srun --mpi=pmi2 -K1 -n $SLURM_NTASKS ./mon_executable param1 param2 …

Comment utiliser un nœud de calcul en mode interactif ?

Le mode strictement interactif (connexion sur le noeud) n’est pas disponible sur Occigen.
Néanmoins, vous pouvez allouer des nœuds avec la commande salloc, puis lancer directement des commandes srun.
Par exemple, pour lancer votre exécutable sur 1 nœud avec 10 tâches (et avec une allocation de 10 minutes):

salloc --constraint=HSW24 -N 1 -n 10 -t 10:00
srun mon_executable

Mon code tourne plus de 24h, comment demander une extension en temps ?

Si, et seulement si, votre code ne peut pas faire de checkpoint -> restart, vous pouvez envoyer une demande de passage à une limite de 120h.
Cette demande doit être envoyée à l’équipe support (svp@cines.fr), elle sera étudiée et une réponse vous sera donnée dans les meilleurs délais.

J'ai besoin de beaucoup de mémoire par nœud

La machine dispose dans la tranche 1, de la moitié de ses nœuds avec 64 Go et l’autre moitié avec avec 128 Go.
Pour forcer vos jobs à passer uniquement sur les nœuds Haswell avec 128 Go il vous faut préciser dans le script SLURM :

#SBATCH --mem=120G

#SBATCH --constraint=HSW24

Comment connaître mon quota d'heures disponibles sur la machine ?

Les informations concernant le nombre d’heures attribuées au projet ainsi que les heures consommées par chaque membre de votre groupe sont disponibles sur cette page .

Comment soumettre un job hybride MPI + OpenMP ?

Voici le script standard SLURM qui doit être utilisé pour soumettre un job hybride:

#!/bin/bash
#SBATCH --nodes=4
#SBATCH --constraint=HSW24
#SBATCH --ntasks=8
#SBATCH --ntasks-per-node=2
#SBATCH --threads-per-core=1
#SBATCH --cpus-per-task=12
#SBATCH --mem=60GB
#SBATCH -J thello
#SBATCH --time=01:00:00
module purge
module load intel
module load openmpi

#Sans hyperthreading
export OMP_NUM_THREADS=12
export KMP_AFFINITY=granularity=fine,compact,1,0,verbose

#Avec hyperthreading
export OMP_NUM_THREADS=24
export KMP_AFFINITY=granularity=fine,compact,0,0,verbose

srun --mpi=pmi2 -K1 -m block:block -c 12 -n $SLURM_NTASKS ./executable

Ce script va réserver un socket par process MPI et lui réserver 12 coeurs.

Si vous souhaitez réserver moins de cœurs (par exemple si vous souhaitez utiliser 4 process MPI avec 6 threads OpenMP chacun) vous devez changer:

#SBATCH --cpus-per-task=6
#SBATCH --ntasks-per-node=4
OMP_NUM_THREADS=6 (ou 12 pour l'hyperthreading)

et remplacer la ligne srun par :

srun --mpi=pmi2 -K1 -m block:block -c 6 -n $SLURM_NTASKS ./executable

L’exemple suivant montre comment soumettre un job MPI/OpenMP avec IntelMPI.
Si l’on reprend l’exemple de 6 threads par tache MPI, et 8 taches MPI, cela donne :

#!/bin/bash
#SBATCH -J thello
#SBATCH --nodes=2
#SBATCH --constraint=HSW24
#SBATCH --ntasks=8
#SBATCH --ntasks-per-node=4
#SBATCH --cpus-per-task=6
#SBATCH --mem=60GB
#SBATCH --time=01:00:00

module purge
module load intel/16.0.1 
module load intelmpi/5.1.2.150

export SLURM_CPU_BIND=none
export OMP_NUM_THREADS=6
export KMP_AFFINITY=verbose,granularity=fine,compact,1,0

#to check placement
#export I_MPI_DEBUG=6

mpirun -n $SLURM_NTASKS ../executable

 

Comment faire des scripts SLURM quand on n'utilise pas le bash ?

Les utilisateurs ayant un SHELL autre que bash doivent ajouter la ligne suivante dans leur script SLURM commençant par :

#!/bin/bash
. /usr/share/Modules/init/bash

avant de faire appel à la commande module. Attention, la ligne commence par un point (« . ») à ne pas oublier.

Emacs est très lent, que puis je faire ?

Ajouter dans le fichier ~/.emacs

 ;;disable the version control
(setq vc-handled-backends nil)

Comment accélérer la commande ls sur le /scratch ?

Il est possible d’utiliser la commande :

 lfs ls -l

attention cette commande ne fonctionne que pour le /scratch et le /store (pas pour le /home).

Comment exploiter correctement le logiciel Gaussian sur Occigen ?

Il y a une note technique qui explique cela. Elle peut être téléchargé ici.

Comment estimer la quantité de mémoire pour mon job ?

Il est parfois difficile d’estimer à l’avance les besoins exacts pour des travaux. Cependant vous pouvez utiliser les informations après l’exécution d’un premier test de travaux similaires. La commande suivante vous permet d’accueillir des informations concernant la mémoire.

sacct -o reqmem,maxrss,averss,elapsed -j <JOBID>

ReqMem : mémoire que vous avez :

  • soit réservée dans votre script de soumission, de la directive #SBATCH –mem=xxGB,
  • soit, qui vous été attribuée par défaut, sans plus d indication dans le script SLURM de votre part.

MaxRSS : quantité maximale de mémoire utilisée pour la tâche la plus consomatrice de votre travail.

AveRSS : mémoire moyenne consommée par l’ensemble des processus. Pour obtenir la quantité totale de la mémoire par noeud, il faut multiplier ce nombre par le nombre de processus par nœud. Cette valeur arrondie au GB supérieur, est alors à placer dans votre script, à la ligne: #SBATCH –mem=xxGB

Elapsed : temps qu’il a fallu pour exécuter votre travail.

Comment exploiter la parallélisation du code VASP sur Occigen ?

Il y a deux directions de parallélisation dans VASP :

  • une sur les bandes électroniques
  • l’autre sur les k-points.

Par vos choix dans le fichier d’entrée INCAR, vous pouvez influer sur les deux tout en tenant compte de l ‘architecture d’Occigen.

Paramètres du fichier input :INCAR
La valeur de KPAR
Que représente ce paramètre?
Il gouverne la parallélisation sur les k-points.
Sa valeur représente le nombre de groupes de k-points à créer pour paralléliser sur cette dimension. La machine Occigen possède des nœuds bi-sockets de 12 cœurs chacun, qu’on s’efforcera de remplir au maximum en fonction de contraintes détaillées plus loin dans le texte.
Si par exemple, on utilise 10 k-points et que le paramètre KPAR égale 2, il y aura 2 groupes k-points chacun effectuant des calculs sur 5 k-points. De même, si KPAR est fixé à 5, il y aura 5 groupes, chacun avec 2 k-points.
KPAR est limité à des valeurs qui divisent exactement le nombre total de k-points et le nombre total de cœurs utilisés par le travail.

La valeur de NPAR
Que représente ce paramètre ?
Il gouverne la parallélisation sur les bandes électroniques.
Il représente le nombre de bandes électroniques qui sont traitées en parallèle. Chaque bande électronique est distribuée sur le nombre de coeur, divisé par NPAR. Si NPAR est égal à 1, toutes les bandes électroniques sont distribuées sur tous les coeurs..

La formule à respecter est la suivante :

Sur Occigen, la valeur optimale constatée pour le paramètre NCORES_PER_BAND est comprise entre 2 et 4.
Le choix du nombre de coeurs de calcul pour le code VASP est important aussi car il influe fortement sur l’efficacité. Une règle grossière est de fixer le nombre de cœurs dans le même ordre de grandeur que le nombre d’atomes mais ensuite cela doit être affiné.
Si vous rencontrez des débordements « mémoire », la marche à suivre est la suivante :

  • Essayer d’exécuter votre travail sur les nœuds « highmem »(directive #SBATCH –mem=120GB) ;
  • Si cela n’est pas suffisant, reconsidérer la parallélisation en augmentant le nombre de nœuds et/ou en dépeuplant le nombre de tâches MPI par nœud (veillez à accorder les paramètres KPAR et NPAR en conséquence).

Exemple de script de soumission pour VASP :

#!/bin/sh
#SBATCH --nodes=2
#SBATCH --constraint=HSW24
#SBATCH --ntasks-per-node=24
#SBATCH --ntasks=48
#SBATCH --mem=120GB # si les nœuds par défaut à 64 GB ne sont pas suffisants
#SBATCH --time=24:00:00
#SBATCH --exclusive
#SBATCH --output vasp5.3.3.out

module purge
module load intel
module load openmpi
ulimit -s  unlimited
srun --mpi=pmi2 -K1 /path/vasp-k-points

Général

Quels sont les processeurs disponibles sur Cristal ?

La machine de visualisation Cristal possède un nœud de login : cristal.cines.fr et 9 nœuds de visualisation/pre-post traitement allant de cristal3 à cristal11.
Des processeurs de type Sandy-Bridge, nœuds bi-sockets avec 8 cœurs par socket, sont disponibles avec 8Go de mémoire par cœur. La description détaillée est disponible ici.

De plus, chaque nœud est équipé de 2 GPU Nvidia Quadro 6000 d’une capacité de 6Go chacun.

L’hyperthreading est désactivé sur ces processeurs.

NOTE : Le nœud de calcul cristal3 est lui composé de 4 sockets Sandy-Bridge 8 cœurs et de 4 GPU Nvidia Quadro 7000 (capacité mémoire : 6Go/GPU). Ce nœud a une capacité de 1To en mémoire.

Quel est l'OS de Cristal ?

La machine utilise version système BullX basée sur une Redhat 6.7.

Quel système de fichiers est utilisé ?

Un système de fichiers de type DirectFlow (serveur d’origine Panasas) est utilisé pour le /home. Le /scratch est un système de fichier Lustre, c’est le même que celui de la machine Occigen.

Accéder à la machine

Comment accéder à Cristal ?

Pour avoir accès à la machine Cristal, il vous faut d’abord prendre contact avec le CINES et remplir le formulaire téléchargeable sur cette page.

Linux : En utilisant la méthode de connexion ssh vers l’adresse cristal.cines.fr

Windows : En utilisant un client ssh tel que PuTTY puis en se connectant via ssh à l’adresse cristal.cines.fr

Comment lancer une application graphique ?

Il suffit de rediriger la sortie graphique vers un serveur X.

Sous Linux, connectez-vous en utilisant la commande ssh -X cristal.cines.fr.

Sous Windows, un logiciel tel que Xming peut être utilisé. Il suffit ensuite de lancer Xming, puis d’activer le « X11 forwarding » dans votre client SSH. (Par exemple dans PuTTY, cochez la case « Enable X11 forwarding » dans le menu Connection -> SSH -> X11

Comment Copier/Rapatrier des données ?

Sous Linux, depuis votre laboratoire vers l’adresse cristal.cines.fr avec le protocole scp.

Sous Windows, utilisez un logiciel de transfert comme Filezilla en lui donnant l’hôte cristal.cines.fr sur le port 22.

Calculer sur la machine

Quel job scheduler (ordonnanceur de travaux) est utilisé ?

L’ordonnanceur de travaux de Cristal est SLURM (Simple Linux Utility for Resource Management: https://computing.llnl.gov/linux/slurm/).

Depuis quel espace dois-je soumettre mes travaux ?

L’ensemble des travaux doit être soumis depuis /home .

Comment soumettre mes travaux sur Cristal ?

Les travaux peuvent être soumis en utilisant la commande « sbatch nom_fichier » où nom_fichier est un fichier de script dans lequel sont contenues des instructions pour SLURM ainsi que des instructions pour le lancement de votre programme.
Exemple de contenu d’un script SLURM pour un programme MPI s’exécutant sur 1 noeud et 16 cores

#!/bin/bash
#SBATCH -o /home/monlogin/Out.%j.%N
#SBATCH -D /home/monlogin
#SBATCH -J myjobname
#SBATCH --get-user-env
#SBATCH --ntasks=16
#SBATCH --nodes=1
#SBATCH --time=08:00:00
mpirun monprogramme

Comment utiliser un nœud de calcul en mode interactif ?

Pour avoir accès à une session interactive, il faut utiliser la commande « srun -u bash -i ».

Comment connaître mon quota d'heures disponibles sur la machine ?

L’accès est actuellement sans décompte comptable.

 

Dernière modification le : 9 février 2017