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
slatp arrêtée depuis sept 10 1) Linux Xeon 32 bits 2 3.06GHz 2 Go
shrek arrêtée depuis sept 10 Linux Xeon 32 bits 2 3.06GHz 2 Go
nemo arrêtée depuis sept 12 SolarisCentOS Amd 848 4 2.4 GHz 8 Go
charybde et scylla 2) CentOS 64 bits 4 2.4 GHz 8 Go
octopus Centos 5.x Xeon X5570 (2 quadri-coeurs) 8 (hyper threading désactivé) 2.93 Ghz 24 Go
judith Centos 7.x Xeon(R) CPU E5-4627 v2 (4 octo-coeurs) 32 3.30GHz Ghz 128 Go

Un coup d'oeil sur la charge des ressources de calcul (en local seulement, merci de signaler tout problème à calcul@latp.univ-mrs.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 doit être lancée depuis nemo 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 matlab
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

1)
car machine 32 bits obsolète, consommation inutile
2)
charybde en panne
  • calcul.1423472743.txt.gz
  • Dernière modification : 2017/08/25 09:55
  • (modification externe)