dear George, dear Gus, dear all,
Could you please tell me where I can find a good example?
I am sorry but I can not understand the 3D array.


Really Thanks

Diego


On 15 January 2015 at 20:13, George Bosilca <bosi...@icl.utk.edu> wrote:

>
> On Jan 15, 2015, at 06:02 , Diego Avesani <diego.aves...@gmail.com> wrote:
>
> Dear Gus, Dear all,
> Thanks a lot.
> MPI_Type_Struct works well for the first part of my problem, so I am very
> happy to be able to use it.
>
> Regarding MPI_TYPE_VECTOR.
>
> I have studied it and for simple case it is clear to me what id does (at
> least I believe). Foe example if I have a matrix define as:
> REAL, ALLOCATABLE (AA(:,:))
> ALLOCATE AA(100,5)
>
> I could send part of it defining
>
> CALL MPI_TYPE_VECTOR(5,1,5,MPI_DOUBLE_PRECISION,*MY_NEW_TYPE*)
>
> after that I can send part of it with
>
> CALL MPI_SEND( AA(1:*10*,:), *10*, *MY_NEW_TYPE*, 1, 0, MPI_COMM_WORLD );
>
> Have I understood correctly?
>
> What I can do in case of three dimensional array? for example AA(:,:,:), I
> am looking to MPI_TYPE_CREATE_SUBARRAY.
> Is that the correct way?
>
> Thanks again
>
>
> Indeed, using the subarray is the right approach independent on the number
> of dimensions of the data (you can use it instead of MPI_TYPE_VECTOR as
> well).
>
>   George.
>
>
>
>
>
>
> Diego
>
>
> On 13 January 2015 at 19:04, Gus Correa <g...@ldeo.columbia.edu> wrote:
>
>> Hi Diego
>> I guess MPI_Type_Vector is the natural way to send and receive Fortran90
>> array sections (e.g. your QQMLS(:,50:100,:)).
>> I used that before and it works just fine.
>> I think that is pretty standard MPI programming style.
>> I guess MPI_Type_Struct tries to emulate Fortran90 and C structures
>> (as you did in your previous code, with all the surprises regarding
>> alignment, etc), not array sections.
>> Also, MPI type vector should be more easy going (and probably more
>> efficient) than MPI type struct, with less memory alignment problems.
>> I hope this helps,
>> Gus Correa
>>
>> PS - These books have a quite complete description and several examples
>> of all MPI objects and functions, including MPI types (native and user
>> defined):
>> http://mitpress.mit.edu/books/mpi-complete-reference-0
>> http://mitpress.mit.edu/books/mpi-complete-reference-1
>>
>> [They cover MPI 1 and 2. I guess there is a new/upcoming book
>> with MPI 3, but for what you're doing 1 and 2 are more than enough.]
>>
>>
>> On 01/13/2015 09:22 AM, Diego Avesani wrote:
>>
>>> Dear all,
>>>
>>> I had some wonderful talking about MPI_type_create_struct adn
>>> isend\irecv with
>>> Gilles, Gustavo, George, Gus, Tom and Jeff. Now all is more clear and my
>>> program works.
>>>
>>> Now I have another question. In may program I have matrix:
>>>
>>> /QQMLS(:,:,:) /that is allocate as
>>>
>>> /ALLOCATE(QQMLS(9,npt,18)/), where npt is the number of particles
>>>
>>> QQMLS is double precision.
>>>
>>> I would like to sent form a CPU to another part of it, for example,
>>> sending QQMLS(:,50:100,:). I mean sending the QQMLS of the particles
>>> between 50 to 100.
>>> I suppose that i could use MPI_Type_vector but I am not sure. The
>>> particle that I want to sent could be from 25 to 50 ecc.. ecc..so
>>>   blocklength changes everytime.
>>>
>>> Do I have to use MPI_type_create_struct?
>>> Do I have correctly understood MPI_Type_vector?
>>>
>>> Thanks a lot
>>>
>>>
>>> Diego
>>>
>>>
>>>
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> Link to this post: http://www.open-mpi.org/
>>> community/lists/users/2015/01/26171.php
>>>
>>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post: http://www.open-mpi.org/community/lists/users/2015/01/
>> 26172.php
>>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2015/01/26184.php
>
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2015/01/26192.php
>

Reply via email to