Ouessant : intelligence artificielle

Tensorflow et TensorBoard

TensorFlow et TensorBoard version 1.10 sont disponibles sur Ouessant. Ils doivent être chargés en exécutant les commandes suivantes :

Pour une utilisation avec Python 2 :

module load tensorflow/py2/1.10
source activate tensorflow1.10-py2

Pour une utilisation avec Python 3 :

module load tensorflow/py3/1.10
source activate tensorflow1.10-py3

PowerAI

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

Les différents frameworks mis à disposition dans PowerAI sont :

Nom du framework Description Version
caffe-bvlc Berkeley Vision and Learning Center (BVLC) upstream Caffe 1.0.0
caffe-ibm IBM Optimized version of BVLC Caffe 1.0.0
pytorch PyTorch 0.4.0
tensorflow TensorFlow 1.8.0
tensorboard Web Applications for inspecting TensorFlow run and graphs 1.8.0

Pour utiliser la pile PowerAI, dans un job batch, il faut :

  • ajouter les directives suivantes à un script de soumission standard :
#BSUB -app docker-18.06
#BUSB -env "all,~BASH_FUNC_module(),~BASH_FUNC_ml()"
  • activer la pile PowerAI :

Pour une utilisation avec Python 2 :

source activate powerai-py2 

Pour une utilisation avec Python 3 :

source activate powerai-py3
  • initialiser le framework que vous souhaitez utiliser en lançant le script correspondant :
source /opt/DL/<framework>/bin/<framework>-activate

Attention, pour utiliser la pile PowerAI, il faut charger le module avant la soumission du job en batch :

Pour une utilisation avec Python 2 :

module load powerai/py2/1.5.2

Pour une utilisation avec Python 3 :

module load powerai/py3/1.5.2

Puis soumettre le job avec la commande :

bsub < monjob.sh

Il est possible de lancer des calculs sur les GPUs de plusieurs noeuds, grâce à la bibliothèque de communication IBM Distributed Deep Learning Library (basée sur MPI).

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

job
# PowerAI
#BSUB -app docker-18.06
#BUSB -env "all,~BASH_FUNC_module(),~BASH_FUNC_ml()"
# 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 activate powerai-py<version>
source /opt/DL/<framework>/bin/<framework>-activate
<your application Framework>

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.