Utilisation du CLUSTER vSMP (math5.unice.fr)

Version imprimableVersion imprimableEnvoyer à un amiEnvoyer à un ami

 N'hésitez pas à venir nous voir si vous avez besoin d'informations complémentaires. 

Toutes remarques sur le contenu de ce mini WIKI sont les bienvenues.

Informations préliminaires:

L'accès aux ressources du Cluster SMP est conditionné au respect des "bonnes pratiques" décrites ci-dessous, notamment la soumission de travaux par la commande ssub. Le non respect de ces règles simples d'utilisation ne permettra pas de bénéficier de toute la puissance de calcul de la machine, et en conséquence, nous conduirait à en restreindre l'accès par l'utilisation d'un gestionnaire de Batch et de Ressources, ce qui sera pénalisant pour tous les utilisateurs de cette machine.

Il n'est pas inutile de rappeler que cette machine n'est pas reservée à une seule personne, et qu'il convient de partager les ressources disponibles. Alors pensez un peu aux collègues. Merci.


Description du Cluster MATH5

7 serveurs DELL aggrégés en une seule machine SMP grâce à la technologie ScaleMP (http://www.scalemp.com), soit:  

7 noeuds ( 2 x 10 cores IvyBridge v2 de 64 GBytes de mémoire à 1866 mhz par noeud)

soit 140 cores et 400 GBytes de mémoire.

1 espace de 1Tbytes a été configuré en RAID50 afin d'optimiser les entrées/sortie des codes. Nous vous recommandons de l'utiliser systématiquement pour les exécutions des programmes, les performances seront nettement meilleures que si vous utilisez votre homedir à travers NFS

L'ouverture d'un espace personnel dans ce "/workdir" se fait à la demande.

!!! ATTENTION !!! Cet espace n'est PAS sauvegardé. Il n'est donc pas conseillé d'y installer les codes sources ... !!!

La commande module:

La gestion des variables d'environnement spécifiques à chaque type de calculs est gérée par la commande module , qui permet de configurer et changer d'environnement très simplement, par exemple:

module help    Liste des commandes disponibles
module avail   Liste des modules disponibles
module load Intel-xe-2013-sp1   Charge l'environnement Intel (compilers/libraries/debugger/optimizer, ...)
module list      Liste des modules chargés
module purge  Décharge tous les modules utilisés et remet l'environnement par défaut.

Dans tous les cas, il faut charger l'environnement ScaleMP par la commande suivante:

module load ScaleMP

Cas particulier des codes parallélisés MPI:
Remarque:
Pour un maximum de performances, ScaleMP utilise une version optimisée de MPICH2

Selon les compilateurs souhaités, i.e., INTEL ou GNU, il faut charger les modules suivants:

module load Intel-xe-2013-sp1
ou
module load Gcc-4.8.2


suivi de:
module load Mpich2-1.4  Charge l'environnement MPICH2 version 1.4 optimisé par ScaleMP.

et référencer les compilateurs de la façon suivante: exemples

Pour INTEL:

mpif90   -fc=ifort
mpicc    -cc=icc

mpic++  -cxx=icpc

Pour GNU:

mpif90   -fc=gfortran
mpicc    -cc=gcc
mpic++  -cxx=g++


Compilation et Edition de liens:

Les commandes module load définissent également les options de compilation et d'édition de liens optimales pour l'architecture de la machine.

Nous vous préconisons l'utilisation des commandes make ou cmake pour la compilation et l'edition de liens de vos programmes.

NB: les options suivantes permettent d'utiliser au mieux les performances des processeurs:

GNU :    CFLAGS=-march=core-avx-i -O2 -pipe     /      FFLAGS=-march=core-avx-i -O2 -pipe
INTELCFLAGS=-O3 -xHost    /     FFLAGS=-O3 -xHost
 

Remarque: le site d'INTEL vous permet d'ajuster les options de compilation et d'édition de liens grâce à une interface de génération pour les compilateurs et librairies INTEL, voir ici: http://software.intel.com/sites/products/mkl


Execution de programmes Séquentiels / Pthreads / OpenMP / MPI:

!!! IMPORTANT !!!

La commande ssub sans argument pour le mode d'emploi:

[user@math5 workdir]# ssub
-----------------------------------------------------------------------------------------------------------
The following instructions assume that your environment was properly defined.
 using the command : module. To see all availables module, use : module avail
-----------------------------------------------------------------------------------------------------------
Usage:ssub <kind> <prog>
    where:
    <kind>:     is one of: serial | pthreads:np | mpi:np | openmp:np
         (where np is the number of required cores)
    <prog>:     is your executable

 Remark:
 If your executable needs input and/or output files, you can use one the following syntaxes:
     ssub kind 'prog input output'
     or
     ssub kind prog < input > output


Visuel de l'occupation du Cluster:

htop


Utilisation de la commande SCREEN:
La commande SCREEN permet de détacher les processus lancés pendant la session SSH.

Exemple:

ssh math5.unice.fr # connexion au serveur
math5: screen # initialisation de la commande screen
math5: ssub mpi:3 programme_executable # execution d'une commande
math5: Control-A d # detacher le processus : appuyer sur la touche Control A, puis sur d
math5: exit # fin de la session SSH
ssh math5.unice.fr # re-connexion au serveur
math5: screen -r # récupération des processus détachés
math5: top # voir l'état des processus ...