Ceci est une ancienne révision du document !
Moyens pour le calcul scientifique à l'I2M
Informations
- Notes pour le Master2 EDP-AN
Le matériel
Ressources locales
Nom de la machine | Os | processeur | nombre de coeurs | fréquence processeur | mémoire |
---|---|---|---|---|---|
| Linux | Xeon 32 bits | 2 | 3.06GHz | 2 Go |
| Linux | Xeon 32 bits | 2 | 3.06GHz | 2 Go |
| | Amd 848 | 4 | 2.4 GHz | 8 Go |
charybde et scylla 2) | CentOS | Dual-Core AMD Opteron™ Processor 2220 | 4 | 2.8 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 à i2m-support@univ-amu.fr)
Ressources complémentaires
- grille accès depuis le réseau du laboratoire
Les logiciels disponibles
voir détails
Développer ses programmes
voir developpement
Executer
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
oustatus -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
les queues
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
le script
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
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
Récupération des résultats
- 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