====== Moyens pour le calcul scientifique à l'I2M ======
===== Le matériel =====
==== Ressources locales ====
^ Nom de la machine ^ Os ^ processeur ^ nombre de coeurs ^ fréquence processeur ^ mémoire ^ IP ^
| [[serveur:signal|signal]] | Ubuntu 22.04 | E5-2698 v3 (2 hexa-coeurs) | 32 | 2.3GHz | 192 Go | signal.i2m.univ-amu.fr |
| [[reserve:5STZGD2|t630-2]] | Ubuntu 20.04 | E5-2680 v4 (2* 14 coeurs) | 28 | 2.4GHz | 256 Go | t630-2.i2m.univ-amu.fr |
| [[reserve:serveurs:core2|core2]] | Ubuntu 18.04 | E5-2683 v4 (28 cœurs) | 28 | 3GHz | 256 Go | |
| [[reserve:serveurs:core3|core3]] | Ubuntu 20.04 | Intel(R) Xeon(R) Gold 6230R (2 x 26 cœurs) | 52 | 2.10GHz | 256 Go | |
| [[reserve:serveurs:core4|core4]] | Ubuntu 20.04 | Intel(R) Xeon(R) Gold 6230R (2 x 26 cœurs) | 52 | 2.10GHz | 256 Go | |
| [[reserve:serveurs:core5|core5]] | Ubuntu 20.04 | Intel(R) Xeon(R) Gold 6230R (2 x 26 cœurs) | 52 | 2.10GHz | 256 Go | |
| [[reserve:serveurs:gpu1|gpu1]] | Ubuntu 20.04 | Intel(R) Xeon(R) Bronze 3204 (2 x 6 cœurs) + [[https://www.nvidia.com/fr-fr/data-center/tesla-v100/|Tesla V100S PCIe 32GB]]| 12 | 1.9GHz | 188 Go | |
Ancienne marchine qui ne marchent plus : octopus et holopherne
==== Répertoire personnel ====
''HOME_DIR'' monté, sur le serveur **signal** est le même que celui sur www.i2m.univ-amu.fr, pour récupérer vos "anciennes" données se connecter sur [[protis.i2m.univ-amu.fr]] et faire un scp.
''HOME_DIR'' monté, sur le serveur **t630-2** est le même que celui sur protis.i2m.univ-amu.fr.
/*
Un [[https://www2/ganglia|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 ====
* [[http://mmg.cnrs-mrs.fr|Marseille Meso-grille]]
* [[grille]] accès depuis le réseau du laboratoire
* [[http://www.cpu-world.com/Compare_CPUs/Intel_CM8064401438110,Intel_CM8063501454002,Intel_AT80604004869AA/?|comparaison sur les processeurs]]
===== Les logiciels disponibles =====
voir [[logiciels|détails]]
===== Développer ses programmes =====
voir [[developpement]]
===== Executer =====
Le plus simple (et recommandé) est d'utiliser le [[http://fr.wikipedia.org/wiki/Gestionnaire_de_t%C3%A2ches|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]]
==== 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
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 [[http://iusti.polytech.univ-mrs.fr/~jobic/dokuwiki/doku.php?id=sge|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 pour les sorties du programme
sujet_du_message.e pour les erreurs éventuelles
===== Informations =====
* Exemple d'[[http://www.mhpcc.edu/training/workshop/parallel_intro/|introduction à la programmation parallèle]]
* Notes pour le [[https://www.i2m.univ-amu.fr/~henry/doku.php?id=master2|Master2]] EDP-AN
*/