Ouessant : PowerAI

IBM PowerAI est disponible sur Ouessant. Cette pile logicielle permet de mettre en œuvre rapidement plusieurs frameworks d'Intelligence Artificielle au sein d'un container Docker démarré en batch sur des nœuds d'Ouessant.

Pour utiliser la pile PowerAI en batch, il faut ajouter les directives suivantes à un script de soumission standard:

#BSUB -app docker

et lancer le script d'initialisation du framework que vous souhaitez utiliser :

source /opt/DL/<framework>/bin/<framework>-activate

ATTENTION : pour positionner les variables d'environnement nécessaires, il est maintenant INDISPENSABLE de lancer la commande

module load powerai

en interactif AVANT de lancer la commande

bsub < monjob.sh

pour soumettre votre job.

Dans sa version 4.0 (par défaut) il est possible de lancer des calculs sur les GPUs de plusieurs nœuds, grâce à la bibliothèque de communication IBM Distributed Deep Learning Library (basée sur MPI). Les versions des différents frameworks mis à disposition dans PowerAI v4.0 sont :

La precédente version 3.4 est aussi disponible : cette ancienne version peut permettre de contourner un bug apparu dans la nouvelle version 4.0, MAIS ne permet de calculer que sur les 4 GPUs d'un seul nœud, au plus. Plus d'informations sur les niveaux de versions des frameworks proposés dans la version 3.4 et leur mise en œuvre dans cette page.

Voici un canevas de job à customiser en fonction du framework que vous souhaitez utiliser :

job
# PowerAI
#BSUB -app docker
# Nom du job
#BSUB -J monJob
# Ficher output et error, ici le meme fichier
#BSUB -e %J.sortie
#BSUB -o %J.sortie
# Réservation exclusive d'un noeud 
#BSUB -x
# Nombre de taches MPI 
#BSUB -n 4
# Binding
#BSUB -a p8aff(1,1,1,balance)
# Nombre de gpu
#BSUB -gpu "num=4:mode=exclusive_process:mps=no:j_exclusive=yes"
# Nombre de tache MPI par noeud
#BSUB -R "span[ptile=4]
# Durée maximum du travail (1 minute)
#BSUB -W 01:00
 
set -x
source /opt/DL/<framework>/bin/<framework>-activate

Plus de détails sur les scripts de soumission, la sélection des GPUs p.ex. sont disponibles sur cette page ; les commandes de contrôle des travaux sont décrites ici.