Also, it's been a long time since I've done anything serious in C++, but are you guaranteed that &foo[x] for a vector<> will yield contiguous memory?

You might be better off using the Boost C++ MPI bindings; they provide all kinds of nifty things for classes, etc.


On Apr 7, 2008, at 7:47 AM, Andreas Schäfer wrote:
Hi Albert,

On 10:13 Mon 07 Apr     , Albert Babinskas wrote:
Some code for the error that i get:
[snip]
class Box has two int array inside it like
int a[3];
int b[3];

Sorry, but "has two int array inside it like" isn't very precise. Do
you mean:

class Box {
    int a[3];
    int b[3];
};

or might you also mean:

class Box {
    int a[3];
    Foo aLotOf;
    Bar otherStuff;
    int b[3];
};

?

Anyways, your MPI_Datatype construction doesn't seem to be right:

MPI_Type_contiguous(9, MPI_INT, &MPI_box);

Fist of all, you should be using MPI_Type_create_struct for C++
classes in order to ensure that each member is addressed with its
correct offset (b/c of compiler memory layout/alignment). And second
you said that myclass/Box or whatever is build from two int[3], but in
the code above you register 9 ints.

Again, we can't help you if you don't provide us with self-sufficient
code; small excerpts mixed with comments won't cut it in most cases.

Cheers
-Andreas


--
============================================
Andreas Schäfer
Cluster and Metacomputing Working Group
Friedrich-Schiller-Universität Jena, Germany
PGP/GPG key via keyserver
I'm a bright... http://www.the-brights.net
============================================

(\___/)
(+'.'+)
(")_(")
This is Bunny. Copy and paste Bunny into your
signature to help him gain world domination!
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


--
Jeff Squyres
Cisco Systems


Reply via email to