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

C Discussion :

fonctionnement de MPI_Datatype


Sujet :

C

  1. #1
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut fonctionnement de MPI_Datatype
    Bonjour,

    je suis en train de développer une petite application // et rencontre un petit problème.
    Je souhaite envoyer une structure en utilisant MPI_Datatype.

    Voici la structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct 
    {
      float x,y,z,t;
      int n,m;
    } new;
     
    new vect[N];
    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
     
      MPI_Datatype newtype,oldtypes[2];
      int blockcounts[2];
      MPI_Aint extent, offsets[2];
     
       MPI_Init(&argc, &argv);
     
       ierr = MPI_Comm_rank(MPI_COMM_WORLD, &rank);  
       ierr = MPI_Comm_size(MPI_COMM_WORLD, &size);
       offsets[0] = 0;
       oldtypes[0] = MPI_FLOAT;
       blockcounts[0] = 4;
       MPI_Type_extent(MPI_FLOAT,&extent);
       offsets[1] = blockcounts[0]*extent;
       oldtypes[1] = MPI_INT;
       blockcounts[0] = 2;
       ierr = MPI_Type_struct(2, blockcounts, offsets, oldtypes, &newtype);
       ierr = MPI_Type_commit(&newtype);
    J'initialise un tableau de cette structure avec le rang 0 et l'envoi via le type newtype.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MPI_Isend(&vect[j],1,newtype,(i+1)%size,1,MPI_COMM_WORLD,&req);
    Je reçois bien la structure, mais seulement les 2 premiers float de la structure sont corrects, les autres valeurs sont nulles.

    Quelqu'un a une idée ?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Par défaut
    Bonjour, bonjour !

    Désolé pour le deterrage mais j'ai un problème très similaire !
    J'ai modifié arbitrairement les tailles dans blockcounts et ça se met à fonctionner, mais je ne comprend le problème...
    Si quelqu'un a déja fait face à cette situation, ou si l'auteur du message précedent a résolu et compris son problème, faites moi signe !

    Cordialement,
    W.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2003, 16h51
  2. Réponses: 5
    Dernier message: 14/05/2003, 14h51
  3. [Turbo Pascal] TP7 fonctionne en QWERTY
    Par callahan dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 08/02/2003, 21h49
  4. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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