====== 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 */