Changes between Version 9 and Version 10 of SoftWare/OarUtils
- Timestamp:
- May 23, 2017, 2:03:10 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoftWare/OarUtils
v9 v10 13 13 Il peut y avoir un soucis avec les jobs MPI lorsque ceux-ci s'étendent sur plus 14 14 d'une machine. 15 La connexion inter-machine ne fonctionnant pas directement avec ssh15 La connexion inter-machine ne fonctionnant pas directement avec {{{ssh}}} 16 16 il faut utiliser le wrapper {{{oarsh}}} fournit. 17 17 Cependant, celui-ci ne transmet pas toutes les variables d'environnements... 18 18 ce qui empêche le bon fonctionnement de nombreux code. 19 19 20 Nous avons donc développé deux solutions 20 Nous avons donc développé deux solutions : 21 21 22 * un wrapper de wrapper du nom d'[http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-envsh.html oar-envsh] ; 22 * un wrapper de wrapper du nom d'[http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-envsh.html oar-envsh]. 23 Un moyen simple d'utiliser la dernière version sans récupérer tout le repository est de faire : 23 24 {{{ 24 25 wget http://servforge.legi.grenoble-inp.fr/projects/soft-trokata/export/HEAD/trunk/oarutils/oar-envsh 25 chmod u+x oar-envsh26 chmod u+x ./oar-envsh 26 27 }}} 27 28 * une fonction Bash utilisant l'option -x de {{{mpirun}}} de nom {{{oar_envmpirun}}}. … … 34 35 Pour se faire, nous avons développé deux outils complémentaire : 35 36 36 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/mpilauncher.html mpilauncher], un petit code MPI en C++ qui divise le nombre de travaux par le 37 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/mpilauncher.html mpilauncher], 38 un petit code MPI en C++ qui divise le nombre de travaux par le 37 39 nombre de coeur du job maître. Chaque job est placé dans un thread MPI 38 40 et lancé à la queue le leu. 39 41 A noter que {{{mpilauncher}}} n'a aucune dépendance directe envers OAR. 40 42 41 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-parexec.html oar-parexec], un petit code en Perl utilisant [http://search.cpan.org/dist/Coro/ Coro]. 43 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-parexec.html oar-parexec], 44 un petit code en Perl utilisant [http://search.cpan.org/dist/Coro/ Coro]. 42 45 Chaque job est distribué de manière asynchrone et via {{{oarsh}}}, 43 sur un des c oeurs attribués au processus maître.46 sur un des cœurs attribués au processus maître. 44 47 A noter qu'{{{oar-parexec}}} distribue de manière optimale les jobs sur un cluster non homogène, 45 48 ou si ces jobs n'ont pas un temps de calcul homogène. … … 48 51 Cet outil laisse OAR faire tout le travail d'ordonnancement et de placement... 49 52 50 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-dispatch.html oar-dispatch], un petit code en Perl utilisant aussi [http://search.cpan.org/dist/Coro/ Coro]. 51 Comme {{{oar-parexec}}}, le code est donc aysnchrone. 53 * [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/oarutils/oar-dispatch.html oar-dispatch], 54 un petit code en Perl utilisant aussi [http://search.cpan.org/dist/Coro/ Coro]. 55 Comme {{{oar-parexec}}}, le code est donc asynchrone. 52 56 Cependant, il prend en entrée une liste de job OAR 53 57 dont il limitera le nombre dans la file d'attente d'OAR.