Changes between Version 1 and Version 2 of SoftWare/OarUtils


Ignore:
Timestamp:
Nov 30, 2011, 7:00:27 PM (9 years ago)
Author:
g7moreau
Comment:

section Outils

Legend:

Unmodified
Added
Removed
Modified
  • SoftWare/OarUtils

    v1 v2  
    99final asse simple.
    1010
    11 Tous les sources sont disponible sur la forge du LEGI
     11Toutes les sources sont disponibles sur la forge du LEGI
    1212
    1313 http://servforge.legi.grenoble-inp.fr/svn/soft-trokata/trunk/oar
     
    2424Nous avons donc développé deux solutions
    2525
    26  * un wrapper de wrapper du nom d'{{{oar-ensh}}} ;
     26 * un wrapper de wrapper du nom d'{{{oar-envsh}}} ;
    2727 * un fonction bash utilisant l'option -x de {{{mpirun}}} de nom {{{oar_envmpirun}}}.
     28
     29== Outils ==
     30
     31Nous avons la problématique de lancer des milliers de petits jobs séquentiels en parallèle.
     32OAR supporte actuellement mal la charge d'avoir 20000 jobs dans la file d'attente.
     33
     34Pour se faire, nous avons développé deux outils complémentaire :
     35
     36 * {{{mpilauncher}}}, un petit code MPI en C++ qui divise le nombre de travaux par le
     37   nombre de coeur du job maître. Chaque job est placé dans un thread MPI
     38   et lancé à la queue le leu.
     39   A noter que {{{mpilauncher}}} n'a aucune dépendance directe envers OAR.
     40
     41 * {{{oar-parexec}}}, un petit code en Perl utilisant [http://search.cpan.org/dist/Coro/ Coro].
     42   Chaque job est distribué de manière asynchrone et via {{{oarsh}}},
     43   sur un des coeurs attribués au processus maître.
     44   A noter qu'{{{oar-parexec}}} distribue de manière optimale les jobs sur un cluster non homogène,
     45   ou si ces jobs n'ont pas un temps de calcul homogène.
     46
     47Un troisième outil viens compléter le dispositif afin de gérer des processus pas forcément séquentiels.
     48Cet outil laisse  OAR faire tout le travail d'ordonnancement et de placement...
     49
     50 * {{{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.
     52   Cependant, il prend en entrée une liste de job OAR
     53   dont il limitera le nombre dans la file d'attente d'OAR.
     54   Pour fonctionner, cette commande doit être lancée soit sur une frontale,
     55   soit dans un container OAR.
     56   Les sous jobs étant des job OAR à part entière (CPUSET...),
     57   il faut leur définir des ressources et peuvent donc être eux-mêmes parallèles...