Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment utiliser un vecteur Ublas avec open MPI [ Algorithme / Maths ] (bp4012)

lundi 24 novembre 2008 à 23:14:56 | Comment utiliser un vecteur Ublas avec open MPI

bp4012

Bonjour,

Je code un programme de calcul de propagation d'onde en parallele.
Je précise que je débute en programmation C++ et MPI.
Je suis sous linux.

J'utilise les vecteur de boost Ublas et j'aimerai utiliser deux fonctions de MPI : scatter et sendrecv. 
Pour ces deux fonctions, il me faut l'addresse du vecteur, si je rentre nom_vecteur le compilateur me dit que ce n'est pas un void *; et si je rentre &nom_vecteur le compilateur n'accepte pas non plus.

Est-il possible d'obtenir l'index en quelque sorte d'un vecteur Ublas? De cette maniere, je pouraai directement envoyer nom_vecteur.index() avec la methode index que j'aurai crée dans ma classe vecteur.

Si quelqu'un a une piste ou la solution, merci d'avance.

Ps si ma question n'est pas claire ou au mauvais endroit sur le forum, n'hésitez pas à me le signaler.



mardi 25 novembre 2008 à 17:04:52 | Re : Comment utiliser un vecteur Ublas avec open MPI

Lucky92

Bonjour,

Pourrais-tu poster le code qui ne compile pas ainsi que l'erreur et également préciser la version de boost que tu utilises ?


mardi 25 novembre 2008 à 18:34:47 | Re : Comment utiliser un vecteur Ublas avec open MPI

bp4012

Alors voila mon code. il s'agit juste d'un petit test avec scatter et un vecteur(VecteurSP, hérité directement des vecteurs de ublas ,l'avant derniere version,1.36 :

#include <iostream>
#include <stdio.h>
#include <fstream>
#include "MatriceBoost.h"
#include <mpi.h>


using namespace std;


int
main(int argc, char *argv[])
{


int rank, size;
int i;

int Nx = 20;
VecteurSP X(Nx);
for (i=0;i<Nx;i++)
    {
     X(i) = i;
    }

    cout<< "le vecteur X est : "<<X<<endl;

//////////////////////////////debut parallel////////////////////////////////////////////////////////

  MPI::Init(argc, argv);

  rank = MPI::COMM_WORLD.Get_rank();
  size = MPI::COMM_WORLD.Get_size();

  int Nx_proc = Nx/size;
  VecteurSP X_proc(Nx_proc);



MPI_Scatter( &X(0)), Nx_proc, MPI_REAL, &X_proc(0), Nx_proc, MPI_REAL, 0, MPI_COMM_WORLD);


  cout << "Hello world! I am " << rank +1 << " of " << size << " et mon vecteur X_proc est : "<<X_proc<<endl;

  MPI::Finalize();

  return 0;
}



Quand je compile, j'obtient ceci :

[jerem@localhost MPI_scatter]$ mpic++ -Wall -o main_scatter main_scatter.cpp
main_scatter.cpp: In function 'int main(int, char**)':
main_scatter.cpp:40: erreur: cannot convert 'VecteurSP' to 'void*' for argument '1' to 'int MPI_Scatter(void*, int, ompi_datatype_t*, void*, int, ompi_datatype_t*, int, ompi_communicator_t*)'
main_scatter.cpp:40: erreur: expected `;' before ')' token


J'ai également essayer de mettre &X(0) à la place de X mais sans succes, dans ce cas il me retourne :
[jerem@localhost MPI_scatter]$ mpic++ -Wall -o main_scatter main_scatter.cpp
/tmp/ccDZe6EC.o: In function `main':
main_scatter.cpp:(.text+0x87): undefined reference to `VecteurSP::VecteurSP(int)'
main_scatter.cpp:(.text+0x145): undefined reference to `VecteurSP::VecteurSP(int)'
collect2: ld a retourné 1 code d'état d'exécution


Je précise également que j'ai utilisé le meme programme avec un tableau tout simple et la pas de probleme en mettant juste le nom du tableau comme argument.

Voila, si il faut encore des précision aucun souci,

Merci d'avance!





Cette discussion est classé dans : utiliser, index, vecteur, mpi, ublas


Répondre à ce message

Sujets en rapport avec ce message

Groupe de controle [ par damien174 ] bonjour j'aurais voulu savoir si c'était possible d'utiliser des index ou autre truc dans ce genre la pour utiliser un seul nom d'un obget par exemple ouvrir un mp3 [ par habibdu70 ] FC internazionnaleSlt, j'ai utiliser le programme de Haldwin qui s'intitule "LECTEUR AUDIO LISANT LES MP3, WMA ET WAV.... "tout d'abors merci pour ton dll .def [ par moloko2000 ] Que signifie cette erreur ?hop.def : warning LNK4017: s400_ipdetail@@YGPADHHQAD@Z statement not supported for the target platform; ignoredJe n'arrive comment utiliser getvolumeinformation [ par shinevilkyo ] tout d abort boujour ,je suis nouveau ds la prog sur windows et j aurais voulu faire un prog qui me permette de liste tout ce qui a ds un cd rom.mais Probleme avec une source [ par flatmax ] salut a tousca fait des jours que j'essaye d'utiliser une classe créé par un membre sur ce site, mais sans succes :(la source se trouve ici :http://ww Flash OCX sans MFC [ par Bilock ] Bonjour,Depuis quelque temps je cherche un moyen d'utiliser Flash OCX sans faire appel aux MFC. Et vu mon niveau en prog ben c'est pas facile.Dernière Comment utiliser une dll inconnue ? [ par Dionysos33 ] Bonjour à tous,Est-il possible de connaitre les fonctions d'une dll qu'on a pas créé ? C'est à dire l'utiliser en ayant uniquement le fichier .dllMerc Manipulation de netbios [ par guiguikun ] Peut-on modifier/utiliser netbios et sa configuration dans une application sans devoir utiliser system("net share blabla"); ?API ? Controle ? J'utilis utiliser visual c++ editeur et compilateur c [ par JeanLucZ ] Bonjour à tous,Quelqu'un peut-il m'indiquer une démarche simple pour editer et compiler du C dans visual c++.Merci d'avance.JL Ecrire ds un tableau excel ss VC++ : utiliser ADO??????? [ par kalf2000 ] bonjour,voila je voudrais savoir comment insérer des caractère (ou autre) dans un tableau excel. j'ai deja regardé en peu sur le forum et j'ai cru com


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 13,962 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.