IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

commande d'execution MPI


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut commande d'execution MPI
    bonjour tous;

    j'ai un code mpi ecrit en C, ce code est constitué de deux programmes un prg maitre et un autre ouvrier, j'ai essayer de l'executer avec la commande mpiexec -np 3 -max_np 7 maitre mais ça marche pas , en fait cette commande est utilisé pour un code mpi en Fortran, mais j'ai pas trouvé d'équivalent en C.
    voici les deux programmes
    MAITRE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <mpi.h>
    #include <sys/time.h>
     
     
    int main(int argc, char **argv)
    {
        int nb_procs_maitres,nb_procs_ouvriers=4,nb_procs,rang,code;
        int inter_comm, intra_comm, rang_maitre=1;
        int  drapeau=0;
        MPI_Info info;
        MPI_Init (&argc,&argv);
        MPI_Comm_size (MPI_COMM_WORLD ,&nb_procs_maitres);
       // Activation des processus ouvriers
        MPI_Comm_spawn ("ouvriers", argv, nb_procs_ouvriers,info,rang_maitre, MPI_COMM_WORLD ,&inter_comm , MPI_ERRCODES_IGNORE);
       // Fusion des communicateurs associ´s a inter_comm. Dans intra_comm, les rangs
       // des processus seront ordonn´s selon la valeur de l’argument drapeau
       MPI_Intercomm_merge (inter_comm, drapeau, &intra_comm);
       MPI_Comm_size (intra_comm, &nb_procs);
       MPI_Comm_rank (intra_comm, &rang );
       printf("maitre de rang  %d ,intra_comm de taille %d , mon MPI_COMM_WORLD de taille %d ", rang, nb_procs,nb_procs_maitres);
        MPI_Finalize ();
       }
    /**************************************************/

    OUVRIER:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <mpi.h>
    #include <sys/time.h>
     
     
    int main(int argc, char **argv)
    {
        int nb_procs_ouvriers,nb_procs,rang;
        int inter_comm, intra_comm;
        int  drapeau=1;
        MPI_Info info;
        MPI_Init (&argc,&argv);
        MPI_Comm_size (MPI_COMM_WORLD ,&nb_procs_ouvriers);
       // Ai-je un processus maitre
        MPI_Comm_get_parent (&inter_comm);
        if(inter_comm == MPI_COMM_NULL)
         { printf("pas de processus maitre ");
           MPI_Finalize ();
         }
     
       /* Fusion des communicateurs associ´s a inter_comm. Dans intra_comm, les rangs*/
       /* des processus seront ordonn´s selon la valeur de l’argument drapeau*/
       MPI_Intercomm_merge (inter_comm, drapeau, &intra_comm);
       MPI_Comm_size (intra_comm, &nb_procs);
       MPI_Comm_rank (intra_comm, &rang );
       printf("ouvrier de rang  %d ,intra_comm de taille %d , mon MPI_COMM_WORLD de taille %d ", rang, nb_procs,nb_procs_ouvriers);
        MPI_Finalize ();
        return (0);
    }
    merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Bonjour,

    pour le C c'est mpirun -nb <nbdeproc> <executable>


    PS: bizarre deux programme maitres-ouvrier moi je l'ai fait en un seul mais je suis debutant avec mpi donc...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 110
    Par défaut
    Que cela soit avec C ou Fortran les commandes mpirun et mpiexec fonctionnent.

    mpirun -np nbprocs

    ou

    mpiexec -n nbprocs

    Mais les questions sont:

    - Tu utilises quelle implémentation MPI?
    - Quelle est l'erreur que tu obtiens?

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2019, 12h11
  2. Réponses: 3
    Dernier message: 04/09/2007, 09h54
  3. commande d'execution d'une classe java sous dos
    Par sirine1 dans le forum Langage
    Réponses: 1
    Dernier message: 11/08/2007, 14h48
  4. Réponses: 7
    Dernier message: 30/08/2006, 11h07
  5. Accentuation et commande server.execute( )
    Par ZeLL dans le forum ASP
    Réponses: 6
    Dernier message: 01/06/2006, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo