calcul

Ceci est une ancienne révision du document !


Moyens pour le calcul scientifique à l'I2M

Nom de la machine Os processeur nombre de coeurs fréquence processeur mémoire
octopus Centos 5.x Xeon X5570 (2 quadri-coeurs) 8 (hyper threading désactivé) 2.93 Ghz 24 Go
holopherne Centos 7.x Xeon X7560 * 4 32 2.26 Ghz 256 Go
judith Centos 7.x Xeon(R) CPU E5-4627 v2 (4 octo-coeurs) 32 3.30GHz Ghz 128 Go
signal Centos 7.x E5-2698 v3 (2 hexa-coeurs) 32 2.3GHz 192 Go
t630-2 Centos 7.x E5-2680 v4 (2* 14 coeurs) 28 2.4GHz 256 Go

Un coup d'oeil sur la charge des ressources de calcul (en local seulement, merci de signaler tout problème à i2m-support@univ-amu.fr)

voir détails

Le plus simple (et recommandé) est d'utiliser le système de soumission de batches, ce qui fait qu'au lieu de se connecter sur un serveur particulier, et lancer son programme, on soumet une “tâche” dans une file d'attente (ou queue), par exemple:

qsub -q small ./script.sh
  • qsub est la commande pour soumettre la tâche. Lorsque la tâche est terminée, on reçoit un mail
  • small est le nom d'une des queues disponibles (voir qconf -sql ou status -a pour la liste des queues disponibles)
  • le troisième argument est un script contenant le programme à exécuter (programme fortran, C, etc… ou scilab, matlab, …)

Cette commande peut être lancée depuis une des machinées citées plus haut, ou penelope.

Mode paramétrique Si on veut lancer plusieurs fois le même programme en faisant varier un paramètre, il faut lancer la commande suivante:

qsub -t 40-100:10 -q big calculs/test-schroedinger-first-order.sh 

Ici, on va avoir un paramètre qui varie de 40 à 100 par pas de 10. Ce paramètre est récupéré dans le script de lancement de la façon suivante:

#!/bin/sh
#
#$ -S /bin/sh
#$ -N "Schroedinger"
#$ -M bradji@cmi.univ-mrs.fr,henry@cmi.univ-mrs.fr
#$ -m be
/local/apps/scilab-5.4.0/bin/scilab -nwni -f /home/bradji/calculs/test-schroedinger-first-order.sce -args "N=$((SGE_TASK_ID))"

le script Scilab contient la ligne (la ligne de commandes contient 6 items):

args = sciargs();
disp(args(6));
N=sscanf(args(6), 'N=%d');
disp(N);

d'autres possibilités avec SGE sur http://arc.liv.ac.uk/SGE/howto/sge-array.html

nom ressources choix
small 3 slots à utiliser en priorité, le temps d'exécution est limité à 24h
big 1 slot à réserver aux jobs gros consommateurs de ressources, mémoire limitée à 22Go
long 1 slot à réserver aux jobs longs

Il est possible de changer de queue, si le job est en attente, et qu'une autre queue est libre:

$ status -a
Running jobs:
job-ID  # name                      owner      start time          running in
-----------------------------------------------------------------------------
...
Waiting 
jobs:
job-ID  # name                      owner      submit time         Queue
------------------------------------------------------------------------
...   
 14893  1 OptiCTAA_CI               userA   01/26/2012 21:20:35 small      

...
 queue   used   free 
--------------------------
   big     0      1
  long     0      8
 small     5      0

il faut utiliser la commande qalter:

qalter -q big 14893

Un exemple avec scilab:

#!/bin/sh
#
#$ -S /bin/sh
#$ -N "sujet_du_message"
#$ -M moi@cmi.univ-mrs.fr
#$ -m be

. /etc/profile.d/modules.sh
module purge scilab
module load scilab/5.4.0
scilab -nwni -f /home/henry/Simulations/monprog.sce

ou avec matlab (mais ne fonctionnera pas sur holopherne car il n y a pas licence sur ce serveur)

#!/bin/sh
#
#$ -S /bin/sh
#$ -N "sujet_du_message"
#$ -M moi@cmi.univ-mrs.fr
#$ -m be

export LC_ALL=en_US.UTF-8 
. /etc/profile.d/modules.sh
module purge matlab
module load matlab/7.13

matlab -nodesktop -nodisplay -nojvm < /home/henry/Simulations/monprog.m
Quand SGE lance le script, il est dans le homedir (i.e. /home/henry). Il faut donc donner le chemin des fichiers, en absolu comme ici, ou en relatif par rapport au homedir

On soumet le job:

qsub -q small -v a=0 -v fa=-5 script.sh

(ici en passant deux variables d'environnement voir http://www.mathworks.com/matlabcentral/answers/101717-is-it-possible-to-pass-a-matlab-file-that-requires-an-input-argument-to-matlab-in-batch-mode-under-u)
Le système répond:

Your job NNNN ("sujet_du_message") has been submitted

et crée 2 fichiers sujet_du_message.oNNNN et sujet_du_message.eNNNN dans votre homedir

Une description plus des détaillées des commandes disponibles pour surveiller l'exécution des tâches

  • l'utilisateur moi@cmi.univ-mrs.fr reçoit un message dès que le job se termine
  • tant que le job n'est pas terminé, on peut regarder les messages éventuels dans deux fichiers, s'ils sont présents:
sujet_du_message.o<jobid> pour les sorties du programme
sujet_du_message.e<jobid> pour les erreurs éventuelles
  • calcul.1503647783.txt.gz
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1