Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-25 Thread George Bosilca

> On Nov 25, 2014, at 01:12 , Gilles Gouaillardet 
>  wrote:
> 
> Bottom line, though Open MPI implementation of MPI_Dist_graph_create is not
> deterministic, it is compliant with the MPI standard.
> /* not to mention this is not the right place to argue what the standard 
> could or should have been ... */

Feel free to join the fun http://meetings.mpi-forum.org/Meeting_details.php 


  George.



Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-25 Thread Gilles Gouaillardet
George,

imho, you are right !

here is attached a new version of Ghislain's program and that uses
MPI_Dist_graph_neighbors_count and MPI_Dist_graph_neighbors
as you suggested.

it produces correct results

/* note that in this case, realDestinations is similar to targets,
so i might have left some silent bugs in the program */

Bottom line, though Open MPI implementation of MPI_Dist_graph_create is not
deterministic, it is compliant with the MPI standard.
/* not to mention this is not the right place to argue what the standard
could or should have been ... */

Cheers,

Gilles


On 2014/11/24 12:47, George Bosilca wrote:
> I would argue this is a typical user level bug.
>
> The major difference between the dist_create and dist_create_adjacent is
> that in the later each process provides its neighbors in an order that is
> expected (and that match the info provided to the MPI_Neighbor_alltoallw
> call. When the topology is created with dist_create, every process will
> end-up having the correct partial topology, but in an order that doesn't
> match what the user expected (not in the rank-order of the neighbors).
> However, I can't find anything in the standard that would require from the
> MPI library to sort the neighbors. I would assume is the user
> responsibility, to make sure that they are using the topology in the right
> order, where the right order is what the communicator really contains and
> not what the user expect based on prior knowledge.
>
>   George.
>
>
> On Fri, Nov 21, 2014 at 3:48 AM, Gilles Gouaillardet <
> gilles.gouaillar...@iferc.org> wrote:
>
>>  Ghislain,
>>
>> i can confirm there is a bug in mca_topo_base_dist_graph_distribute
>>
>> FYI a proof of concept is available at
>> https://github.com/open-mpi/ompi/pull/283
>> and i recommend you use MPI_Dist_graph_create_adjacent if this meets your
>> needs.
>>
>> as a side note, the right way to set the info is
>> MPI_Info info = MPI_INFO_NULL;
>>
>> /* mpich is more picky and crashes with info = NULL */
>>
>> Cheers,
>>
>> Gilles
>>
>>
>> On 2014/11/21 18:21, Ghislain Viguier wrote:
>>
>> Hi Gilles and Howard,
>>
>> The use of MPI_Dist_graph_create_adjacent solves the issue :)
>>
>> Thanks for your help!
>>
>> Best reagrds,
>> Ghislain
>>
>> 2014-11-21 7:23 GMT+01:00 Gilles Gouaillardet >
>>  :
>>
>>Hi Ghislain,
>>
>> that sound like a but in MPI_Dist_graph_create :-(
>>
>> you can use MPI_Dist_graph_create_adjacent instead :
>>
>> MPI_Dist_graph_create_
>> adjacent(MPI_COMM_WORLD, degrees, &targets[0],
>> &weights[0],
>> degrees, &targets[0], &weights[0], info,
>> rankReordering, &commGraph);
>>
>> it does not crash and as far as i understand, it produces correct results,
>>
>> according the the mpi standard (example 7.3) that should do the same
>> thing, that's why
>> i think there is a bug in MPI_Dist_graph_create
>>
>> Cheers,
>>
>> Gilles
>>
>>
>>
>>
>> On 2014/11/21 2:21, Howard Pritchard wrote:
>>
>> Hi Ghislain,
>>
>> I tried to run your test with mvapich 1.9 and get a "message truncated"
>> failure at three ranks.
>>
>> Howard
>>
>>
>> 2014-11-20 8:51 GMT-07:00 Ghislain Viguier  
>>   
>> :
>>
>>
>>  Dear support,
>>
>> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
>> mpi-1.8.3.
>> I have enclosed a test case with information of my workstation.
>>
>> In this test, I define a weighted topology for 5 processes, where the
>> weight represent the number of buffers to send/receive :
>> rank
>>   0 : | x |
>>   1 : | 2 | x |
>>   2 : | 1 | 1 | x |
>>   3 : | 3 | 2 | 3 | x |
>>   4 : | 5 | 2 | 2 | 2 | x |
>>
>> In this topology, the rank 1 will send/receive :
>>2 buffers to/from the rank 0,
>>1 buffer to/from the rank 2,
>>2 buffers to/from the rank 3,
>>2 buffers to/from the rank 4,
>>
>> The send buffer are defined with the MPI_Type_create_hindexed_block. This
>> allows to use a same buffer for several communications without duplicating
>> it (read only).
>> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
>> The receiver buffer is a contiguous buffer defined with
>> MPI_Type_contiguous request.
>> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>>
>> This test case succesful for 2 or 3 processes. For 4 processes, the test
>> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>>
>> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>>
>> I don't understand what I am doing wrong.
>>
>> Could you please have a look on it?
>>
>> Thank you very much.
>>
>> Best regards,
>> Ghislain Viguier
>>
>> --
>> Ghislain Viguier
>> Tél. 06 31 95 03 17
>>
>> ___
>> users mailing listus...@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/2014/11/25850.php
>>
>>
>>
>> ___
>> users mailing li

Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-23 Thread George Bosilca
I would argue this is a typical user level bug.

The major difference between the dist_create and dist_create_adjacent is
that in the later each process provides its neighbors in an order that is
expected (and that match the info provided to the MPI_Neighbor_alltoallw
call. When the topology is created with dist_create, every process will
end-up having the correct partial topology, but in an order that doesn't
match what the user expected (not in the rank-order of the neighbors).
However, I can't find anything in the standard that would require from the
MPI library to sort the neighbors. I would assume is the user
responsibility, to make sure that they are using the topology in the right
order, where the right order is what the communicator really contains and
not what the user expect based on prior knowledge.

  George.


On Fri, Nov 21, 2014 at 3:48 AM, Gilles Gouaillardet <
gilles.gouaillar...@iferc.org> wrote:

>  Ghislain,
>
> i can confirm there is a bug in mca_topo_base_dist_graph_distribute
>
> FYI a proof of concept is available at
> https://github.com/open-mpi/ompi/pull/283
> and i recommend you use MPI_Dist_graph_create_adjacent if this meets your
> needs.
>
> as a side note, the right way to set the info is
> MPI_Info info = MPI_INFO_NULL;
>
> /* mpich is more picky and crashes with info = NULL */
>
> Cheers,
>
> Gilles
>
>
> On 2014/11/21 18:21, Ghislain Viguier wrote:
>
> Hi Gilles and Howard,
>
> The use of MPI_Dist_graph_create_adjacent solves the issue :)
>
> Thanks for your help!
>
> Best reagrds,
> Ghislain
>
> 2014-11-21 7:23 GMT+01:00 Gilles Gouaillardet 
>  :
>
>Hi Ghislain,
>
> that sound like a but in MPI_Dist_graph_create :-(
>
> you can use MPI_Dist_graph_create_adjacent instead :
>
> MPI_Dist_graph_create_
> adjacent(MPI_COMM_WORLD, degrees, &targets[0],
> &weights[0],
> degrees, &targets[0], &weights[0], info,
> rankReordering, &commGraph);
>
> it does not crash and as far as i understand, it produces correct results,
>
> according the the mpi standard (example 7.3) that should do the same
> thing, that's why
> i think there is a bug in MPI_Dist_graph_create
>
> Cheers,
>
> Gilles
>
>
>
>
> On 2014/11/21 2:21, Howard Pritchard wrote:
>
> Hi Ghislain,
>
> I tried to run your test with mvapich 1.9 and get a "message truncated"
> failure at three ranks.
>
> Howard
>
>
> 2014-11-20 8:51 GMT-07:00 Ghislain Viguier  
>   
> :
>
>
>  Dear support,
>
> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
> mpi-1.8.3.
> I have enclosed a test case with information of my workstation.
>
> In this test, I define a weighted topology for 5 processes, where the
> weight represent the number of buffers to send/receive :
> rank
>   0 : | x |
>   1 : | 2 | x |
>   2 : | 1 | 1 | x |
>   3 : | 3 | 2 | 3 | x |
>   4 : | 5 | 2 | 2 | 2 | x |
>
> In this topology, the rank 1 will send/receive :
>2 buffers to/from the rank 0,
>1 buffer to/from the rank 2,
>2 buffers to/from the rank 3,
>2 buffers to/from the rank 4,
>
> The send buffer are defined with the MPI_Type_create_hindexed_block. This
> allows to use a same buffer for several communications without duplicating
> it (read only).
> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
> The receiver buffer is a contiguous buffer defined with
> MPI_Type_contiguous request.
> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>
> This test case succesful for 2 or 3 processes. For 4 processes, the test
> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>
> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>
> I don't understand what I am doing wrong.
>
> Could you please have a look on it?
>
> Thank you very much.
>
> Best regards,
> Ghislain Viguier
>
> --
> Ghislain Viguier
> Tél. 06 31 95 03 17
>
> ___
> users mailing listus...@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/2014/11/25850.php
>
>
>
> ___
> users mailing listus...@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/2014/11/25852.php
>
>
>
> ___
> users mailing listus...@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/2014/11/25853.php
>
>
>
>
> ___
> users mailing listus...@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/2014/11/25855.php
>
>
>
> ___
> users mailing list
> us...@open-mpi.org
> Subscription: h

Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-21 Thread Gilles Gouaillardet
Ghislain,

i can confirm there is a bug in mca_topo_base_dist_graph_distribute

FYI a proof of concept is available at
https://github.com/open-mpi/ompi/pull/283
and i recommend you use MPI_Dist_graph_create_adjacent if this meets
your needs.

as a side note, the right way to set the info is
MPI_Info info = MPI_INFO_NULL;

/* mpich is more picky and crashes with info = NULL */

Cheers,

Gilles

On 2014/11/21 18:21, Ghislain Viguier wrote:
> Hi Gilles and Howard,
>
> The use of MPI_Dist_graph_create_adjacent solves the issue :)
>
> Thanks for your help!
>
> Best reagrds,
> Ghislain
>
> 2014-11-21 7:23 GMT+01:00 Gilles Gouaillardet > :
>>  Hi Ghislain,
>>
>> that sound like a but in MPI_Dist_graph_create :-(
>>
>> you can use MPI_Dist_graph_create_adjacent instead :
>>
>> MPI_Dist_graph_create_adjacent(MPI_COMM_WORLD, degrees, &targets[0],
>> &weights[0],
>> degrees, &targets[0], &weights[0], info,
>> rankReordering, &commGraph);
>>
>> it does not crash and as far as i understand, it produces correct results,
>>
>> according the the mpi standard (example 7.3) that should do the same
>> thing, that's why
>> i think there is a bug in MPI_Dist_graph_create
>>
>> Cheers,
>>
>> Gilles
>>
>>
>>
>>
>> On 2014/11/21 2:21, Howard Pritchard wrote:
>>
>> Hi Ghislain,
>>
>> I tried to run your test with mvapich 1.9 and get a "message truncated"
>> failure at three ranks.
>>
>> Howard
>>
>>
>> 2014-11-20 8:51 GMT-07:00 Ghislain Viguier  
>> :
>>
>>
>>  Dear support,
>>
>> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
>> mpi-1.8.3.
>> I have enclosed a test case with information of my workstation.
>>
>> In this test, I define a weighted topology for 5 processes, where the
>> weight represent the number of buffers to send/receive :
>> rank
>>   0 : | x |
>>   1 : | 2 | x |
>>   2 : | 1 | 1 | x |
>>   3 : | 3 | 2 | 3 | x |
>>   4 : | 5 | 2 | 2 | 2 | x |
>>
>> In this topology, the rank 1 will send/receive :
>>2 buffers to/from the rank 0,
>>1 buffer to/from the rank 2,
>>2 buffers to/from the rank 3,
>>2 buffers to/from the rank 4,
>>
>> The send buffer are defined with the MPI_Type_create_hindexed_block. This
>> allows to use a same buffer for several communications without duplicating
>> it (read only).
>> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
>> The receiver buffer is a contiguous buffer defined with
>> MPI_Type_contiguous request.
>> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>>
>> This test case succesful for 2 or 3 processes. For 4 processes, the test
>> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>>
>> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>>
>> I don't understand what I am doing wrong.
>>
>> Could you please have a look on it?
>>
>> Thank you very much.
>>
>> Best regards,
>> Ghislain Viguier
>>
>> --
>> Ghislain Viguier
>> Tél. 06 31 95 03 17
>>
>> ___
>> users mailing listus...@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/2014/11/25850.php
>>
>>
>>
>> ___
>> users mailing listus...@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/2014/11/25852.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/2014/11/25853.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/2014/11/25855.php



Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-21 Thread Ghislain Viguier
Hi Gilles and Howard,

The use of MPI_Dist_graph_create_adjacent solves the issue :)

Thanks for your help!

Best reagrds,
Ghislain

2014-11-21 7:23 GMT+01:00 Gilles Gouaillardet :

>  Hi Ghislain,
>
> that sound like a but in MPI_Dist_graph_create :-(
>
> you can use MPI_Dist_graph_create_adjacent instead :
>
> MPI_Dist_graph_create_adjacent(MPI_COMM_WORLD, degrees, &targets[0],
> &weights[0],
> degrees, &targets[0], &weights[0], info,
> rankReordering, &commGraph);
>
> it does not crash and as far as i understand, it produces correct results,
>
> according the the mpi standard (example 7.3) that should do the same
> thing, that's why
> i think there is a bug in MPI_Dist_graph_create
>
> Cheers,
>
> Gilles
>
>
>
>
> On 2014/11/21 2:21, Howard Pritchard wrote:
>
> Hi Ghislain,
>
> I tried to run your test with mvapich 1.9 and get a "message truncated"
> failure at three ranks.
>
> Howard
>
>
> 2014-11-20 8:51 GMT-07:00 Ghislain Viguier  
> :
>
>
>  Dear support,
>
> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
> mpi-1.8.3.
> I have enclosed a test case with information of my workstation.
>
> In this test, I define a weighted topology for 5 processes, where the
> weight represent the number of buffers to send/receive :
> rank
>   0 : | x |
>   1 : | 2 | x |
>   2 : | 1 | 1 | x |
>   3 : | 3 | 2 | 3 | x |
>   4 : | 5 | 2 | 2 | 2 | x |
>
> In this topology, the rank 1 will send/receive :
>2 buffers to/from the rank 0,
>1 buffer to/from the rank 2,
>2 buffers to/from the rank 3,
>2 buffers to/from the rank 4,
>
> The send buffer are defined with the MPI_Type_create_hindexed_block. This
> allows to use a same buffer for several communications without duplicating
> it (read only).
> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
> The receiver buffer is a contiguous buffer defined with
> MPI_Type_contiguous request.
> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>
> This test case succesful for 2 or 3 processes. For 4 processes, the test
> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>
> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>
> I don't understand what I am doing wrong.
>
> Could you please have a look on it?
>
> Thank you very much.
>
> Best regards,
> Ghislain Viguier
>
> --
> Ghislain Viguier
> Tél. 06 31 95 03 17
>
> ___
> users mailing listus...@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/2014/11/25850.php
>
>
>
> ___
> users mailing listus...@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/2014/11/25852.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/2014/11/25853.php
>



-- 
Ghislain Viguier
Tél. 06 31 95 03 17


Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-21 Thread Gilles Gouaillardet
Hi Ghislain,

that sound like a but in MPI_Dist_graph_create :-(

you can use MPI_Dist_graph_create_adjacent instead :

MPI_Dist_graph_create_adjacent(MPI_COMM_WORLD, degrees, &targets[0],
&weights[0],
degrees, &targets[0], &weights[0], info,
rankReordering, &commGraph);

it does not crash and as far as i understand, it produces correct results,

according the the mpi standard (example 7.3) that should do the same
thing, that's why
i think there is a bug in MPI_Dist_graph_create

Cheers,

Gilles



On 2014/11/21 2:21, Howard Pritchard wrote:
> Hi Ghislain,
>
> I tried to run your test with mvapich 1.9 and get a "message truncated"
> failure at three ranks.
>
> Howard
>
>
> 2014-11-20 8:51 GMT-07:00 Ghislain Viguier :
>
>> Dear support,
>>
>> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
>> mpi-1.8.3.
>> I have enclosed a test case with information of my workstation.
>>
>> In this test, I define a weighted topology for 5 processes, where the
>> weight represent the number of buffers to send/receive :
>> rank
>>   0 : | x |
>>   1 : | 2 | x |
>>   2 : | 1 | 1 | x |
>>   3 : | 3 | 2 | 3 | x |
>>   4 : | 5 | 2 | 2 | 2 | x |
>>
>> In this topology, the rank 1 will send/receive :
>>2 buffers to/from the rank 0,
>>1 buffer to/from the rank 2,
>>2 buffers to/from the rank 3,
>>2 buffers to/from the rank 4,
>>
>> The send buffer are defined with the MPI_Type_create_hindexed_block. This
>> allows to use a same buffer for several communications without duplicating
>> it (read only).
>> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
>> The receiver buffer is a contiguous buffer defined with
>> MPI_Type_contiguous request.
>> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>>
>> This test case succesful for 2 or 3 processes. For 4 processes, the test
>> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>>
>> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>>
>> I don't understand what I am doing wrong.
>>
>> Could you please have a look on it?
>>
>> Thank you very much.
>>
>> Best regards,
>> Ghislain Viguier
>>
>> --
>> Ghislain Viguier
>> Tél. 06 31 95 03 17
>>
>> ___
>> 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/2014/11/25850.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/2014/11/25852.php

diff --git a/ompi/mca/coll/basic/coll_basic_neighbor_alltoallw.c 
b/ompi/mca/coll/basic/coll_basic_neighbor_alltoallw.c
index 28ecf04..4069212 100644
--- a/ompi/mca/coll/basic/coll_basic_neighbor_alltoallw.c
+++ b/ompi/mca/coll/basic/coll_basic_neighbor_alltoallw.c
@@ -181,7 +181,7 @@ mca_coll_basic_neighbor_alltoallw_dist_graph(const void 
*sbuf, const int scounts
 /* post all receives first */
 for (neighbor = 0, reqs = basic_module->mccb_reqs ; neighbor < indegree ; 
++neighbor) {
 rc = MCA_PML_CALL(irecv((char *) rbuf + rdisps[neighbor], 
rcounts[neighbor], rdtypes[neighbor],
-inedges[neighbor], MCA_COLL_BASE_TAG_ALLTOALL, 
comm, reqs++));
+outedges[neighbor], 
MCA_COLL_BASE_TAG_ALLTOALL, comm, reqs++));
 if (OMPI_SUCCESS != rc) break;
 }

//
// Name: 027_MPI_Neighbor_alltoallw_synthetic.cpp
// Author  : 
// Version :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//

#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

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

	const int sendBufferSize = 1;

	///   MPI initialization   ///

	int ierr;
	int nbProc;
	int rank;
	ierr = MPI_Init(&argc, &argv);
	assert(!ierr);
	ierr = MPI_Comm_size(MPI_COMM_WORLD, &nbProc);
	assert(!ierr);
	ierr = MPI_Comm_rank(MPI_COMM_WORLD, &rank);
	assert(!ierr);

	assert(nbProc <= 5);

	///   weighted topology   ///
	//   0  | x |
	//   1  | 2 | x |
	//   2  | 1 | 1 | x |
	//   3  | 3 | 2 | 3 | x |
	//   4  | 5 | 2 | 2 | 2 | x |
	// rank   0   1   2   3   4

	int degrees = nbProc - 1;
	vector targets(4);
	vector weights(4);
	switch (rank) {

		case 0:
		targets[0] = 1; targets[1] = 2; targets[2] = 3; targets[3] = 4;
		weights[0] = 2; weights[1] = 1; weights[2] = 3; weights[3] = 5;
		break;

		case 1:
		targets[0] = 0; targets[1] = 2; targets[2] = 3; targets[3] = 4;
		weights[0] = 2; weights[1] = 1; weights[2] = 2; weights[3] = 2;
		break;

		case 2:
		ta

Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-20 Thread Howard Pritchard
Hi Ghislain,

I tried to run your test with mvapich 1.9 and get a "message truncated"
failure at three ranks.

Howard


2014-11-20 8:51 GMT-07:00 Ghislain Viguier :

> Dear support,
>
> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
> mpi-1.8.3.
> I have enclosed a test case with information of my workstation.
>
> In this test, I define a weighted topology for 5 processes, where the
> weight represent the number of buffers to send/receive :
> rank
>   0 : | x |
>   1 : | 2 | x |
>   2 : | 1 | 1 | x |
>   3 : | 3 | 2 | 3 | x |
>   4 : | 5 | 2 | 2 | 2 | x |
>
> In this topology, the rank 1 will send/receive :
>2 buffers to/from the rank 0,
>1 buffer to/from the rank 2,
>2 buffers to/from the rank 3,
>2 buffers to/from the rank 4,
>
> The send buffer are defined with the MPI_Type_create_hindexed_block. This
> allows to use a same buffer for several communications without duplicating
> it (read only).
> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
> The receiver buffer is a contiguous buffer defined with
> MPI_Type_contiguous request.
> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>
> This test case succesful for 2 or 3 processes. For 4 processes, the test
> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>
> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>
> I don't understand what I am doing wrong.
>
> Could you please have a look on it?
>
> Thank you very much.
>
> Best regards,
> Ghislain Viguier
>
> --
> Ghislain Viguier
> Tél. 06 31 95 03 17
>
> ___
> 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/2014/11/25850.php
>


Re: [OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-20 Thread Ghislain Viguier
For further information, the test also fails with MPI-1.8.4rc1.


2014-11-20 16:51 GMT+01:00 Ghislain Viguier :

> Dear support,
>
> I'm encountering an issue with the MPI_Neighbor_alltoallw request of
> mpi-1.8.3.
> I have enclosed a test case with information of my workstation.
>
> In this test, I define a weighted topology for 5 processes, where the
> weight represent the number of buffers to send/receive :
> rank
>   0 : | x |
>   1 : | 2 | x |
>   2 : | 1 | 1 | x |
>   3 : | 3 | 2 | 3 | x |
>   4 : | 5 | 2 | 2 | 2 | x |
>
> In this topology, the rank 1 will send/receive :
>2 buffers to/from the rank 0,
>1 buffer to/from the rank 2,
>2 buffers to/from the rank 3,
>2 buffers to/from the rank 4,
>
> The send buffer are defined with the MPI_Type_create_hindexed_block. This
> allows to use a same buffer for several communications without duplicating
> it (read only).
> Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
> The receiver buffer is a contiguous buffer defined with
> MPI_Type_contiguous request.
> Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)
>
> This test case succesful for 2 or 3 processes. For 4 processes, the test
> fails 1 times for 3 successes. For 5 processes, the test fails all the time.
>
> The error code is : *** MPI_ERR_IN_STATUS: error code in status
>
> I don't understand what I am doing wrong.
>
> Could you please have a look on it?
>
> Thank you very much.
>
> Best regards,
> Ghislain Viguier
>
> --
> Ghislain Viguier
> Tél. 06 31 95 03 17
>



-- 
Ghislain Viguier
Tél. 06 31 95 03 17


[OMPI users] MPI_Neighbor_alltoallw fails with mpi-1.8.3

2014-11-20 Thread Ghislain Viguier
Dear support,

I'm encountering an issue with the MPI_Neighbor_alltoallw request of
mpi-1.8.3.
I have enclosed a test case with information of my workstation.

In this test, I define a weighted topology for 5 processes, where the
weight represent the number of buffers to send/receive :
rank
  0 : | x |
  1 : | 2 | x |
  2 : | 1 | 1 | x |
  3 : | 3 | 2 | 3 | x |
  4 : | 5 | 2 | 2 | 2 | x |

In this topology, the rank 1 will send/receive :
   2 buffers to/from the rank 0,
   1 buffer to/from the rank 2,
   2 buffers to/from the rank 3,
   2 buffers to/from the rank 4,

The send buffer are defined with the MPI_Type_create_hindexed_block. This
allows to use a same buffer for several communications without duplicating
it (read only).
Here the rank 1 will have 2 send buffers (the max of 2, 1, 2, 2).
The receiver buffer is a contiguous buffer defined with MPI_Type_contiguous
request.
Here, the receiver buffer of the rank 1 is of size : 7 (2+1+2+2)

This test case succesful for 2 or 3 processes. For 4 processes, the test
fails 1 times for 3 successes. For 5 processes, the test fails all the time.

The error code is : *** MPI_ERR_IN_STATUS: error code in status

I don't understand what I am doing wrong.

Could you please have a look on it?

Thank you very much.

Best regards,
Ghislain Viguier

-- 
Ghislain Viguier
Tél. 06 31 95 03 17


ompi-output.tar.bz2
Description: BZip2 compressed data