Re: [OMPI users] Invalid rank despite com size large enough

2018-04-13 Thread Florian Lindner
Am 13.04.2018 um 15:41 schrieb Nathan Hjelm:
> Err. MPI_Comm_remote_size.

Ah, thanks! I thought at that MPI_Comm_size returns the number of remote ranks. 
remote_size returns 1, so now at least
the error message is consistent.

Best,
Florian

> 
>> On Apr 13, 2018, at 7:41 AM, Nathan Hjelm  wrote:
>>
>> Try using MPI_Comm_remotr_size. As this is an intercommunicator that will 
>> give the number of ranks for send/recv. 
>>
>>> On Apr 13, 2018, at 7:34 AM, Florian Lindner  wrote:
>>>
>>> Hello,
>>>
>>> I have this piece of code
>>>
>>> PtrRequest MPICommunication::aSend(double *itemsToSend, int size, int 
>>> rankReceiver)
>>> {
>>> rankReceiver = rankReceiver - _rankOffset;
>>> int comsize = -1;
>>> MPI_Comm_size(communicator(rankReceiver), &comsize);
>>> TRACE(size, rank(rankReceiver), comsize);
>>>
>>>
>>> MPI_Request request;
>>> MPI_Isend(itemsToSend,
>>>   size,
>>>   MPI_DOUBLE,
>>>   rank(rankReceiver),
>>>   0,
>>>   communicator(rankReceiver),
>>>   &request);
>>>
>>> return PtrRequest(new MPIRequest(request));
>>> }
>>>
>>> While there are quite some calls you don't know, it's basically a wrapper 
>>> around Isend.
>>>
>>> The communicator returned by communicator(rankReceiver) is an 
>>> inter-communicator!
>>>
>>> The TRACE call prints:
>>>
>>> [1,1]:(1) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
>>> aSend
>>> [1,1]:  Argument 0: size == 50
>>> [1,1]:  Argument 1: rank(rankReceiver) == 1
>>> [1,1]:  Argument 2: comsize == 2
>>> [1,0]:(0) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
>>> aSend
>>> [1,0]:  Argument 0: size == 48
>>> [1,0]:  Argument 1: rank(rankReceiver) == 0
>>> [1,0]:  Argument 2: comsize == 2
>>>
>>> So, on rank 1 we send to rank = 1 on a communicator with size = 2.
>>>
>>> Still, rank 1 crashes with:
>>>
>>> [neon:80361] *** An error occurred in MPI_Isend
>>> [neon:80361] *** reported by process [1052966913,1]
>>> [neon:80361] *** on communicator
>>> [neon:80361] *** MPI_ERR_RANK: invalid rank
>>> [neon:80361] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will 
>>> now abort,
>>> [neon:80361] ***and potentially your MPI job)
>>>
>>> your collegues from mpich print
>>>
>>> [1] Fatal error in PMPI_Isend: Invalid rank, error stack:
>>> [1] PMPI_Isend(149): MPI_Isend(buf=0x560ddeb02100, count=49, MPI_DOUBLE, 
>>> dest=1, tag=0, comm=0x8405,
>>> request=0x7ffd528989c0) failed
>>> [1] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
>>> less than 1
>>>
>>> [0] Fatal error in PMPI_Isend: Invalid rank, error stack:
>>> [0] PMPI_Isend(149): MPI_Isend(buf=0x564b74c9edd8, count=1, MPI_DOUBLE, 
>>> dest=1, tag=0, comm=0x8406,
>>> request=0x7ffe5848d9f0) failed
>>> [0] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
>>> less than 1
>>>
>>> but MPI_Comm_size also returns 2.
>>>
>>> Do you have any idea where to look to find out what is going wrong here? 
>>> Esp. with the communicator being an inter-com.
>>>
>>> Best Thanks,
>>> Florian
>>> ___
>>> users mailing list
>>> users@lists.open-mpi.org
>>> https://lists.open-mpi.org/mailman/listinfo/users
> ___
> users mailing list
> users@lists.open-mpi.org
> https://lists.open-mpi.org/mailman/listinfo/users
> 
___
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users


Re: [OMPI users] Invalid rank despite com size large enough

2018-04-13 Thread Nathan Hjelm
Err. MPI_Comm_remote_size.

> On Apr 13, 2018, at 7:41 AM, Nathan Hjelm  wrote:
> 
> Try using MPI_Comm_remotr_size. As this is an intercommunicator that will 
> give the number of ranks for send/recv. 
> 
>> On Apr 13, 2018, at 7:34 AM, Florian Lindner  wrote:
>> 
>> Hello,
>> 
>> I have this piece of code
>> 
>> PtrRequest MPICommunication::aSend(double *itemsToSend, int size, int 
>> rankReceiver)
>> {
>> rankReceiver = rankReceiver - _rankOffset;
>> int comsize = -1;
>> MPI_Comm_size(communicator(rankReceiver), &comsize);
>> TRACE(size, rank(rankReceiver), comsize);
>> 
>> 
>> MPI_Request request;
>> MPI_Isend(itemsToSend,
>>   size,
>>   MPI_DOUBLE,
>>   rank(rankReceiver),
>>   0,
>>   communicator(rankReceiver),
>>   &request);
>> 
>> return PtrRequest(new MPIRequest(request));
>> }
>> 
>> While there are quite some calls you don't know, it's basically a wrapper 
>> around Isend.
>> 
>> The communicator returned by communicator(rankReceiver) is an 
>> inter-communicator!
>> 
>> The TRACE call prints:
>> 
>> [1,1]:(1) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
>> aSend
>> [1,1]:  Argument 0: size == 50
>> [1,1]:  Argument 1: rank(rankReceiver) == 1
>> [1,1]:  Argument 2: comsize == 2
>> [1,0]:(0) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
>> aSend
>> [1,0]:  Argument 0: size == 48
>> [1,0]:  Argument 1: rank(rankReceiver) == 0
>> [1,0]:  Argument 2: comsize == 2
>> 
>> So, on rank 1 we send to rank = 1 on a communicator with size = 2.
>> 
>> Still, rank 1 crashes with:
>> 
>> [neon:80361] *** An error occurred in MPI_Isend
>> [neon:80361] *** reported by process [1052966913,1]
>> [neon:80361] *** on communicator
>> [neon:80361] *** MPI_ERR_RANK: invalid rank
>> [neon:80361] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will 
>> now abort,
>> [neon:80361] ***and potentially your MPI job)
>> 
>> your collegues from mpich print
>> 
>> [1] Fatal error in PMPI_Isend: Invalid rank, error stack:
>> [1] PMPI_Isend(149): MPI_Isend(buf=0x560ddeb02100, count=49, MPI_DOUBLE, 
>> dest=1, tag=0, comm=0x8405,
>> request=0x7ffd528989c0) failed
>> [1] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
>> less than 1
>> 
>> [0] Fatal error in PMPI_Isend: Invalid rank, error stack:
>> [0] PMPI_Isend(149): MPI_Isend(buf=0x564b74c9edd8, count=1, MPI_DOUBLE, 
>> dest=1, tag=0, comm=0x8406,
>> request=0x7ffe5848d9f0) failed
>> [0] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
>> less than 1
>> 
>> but MPI_Comm_size also returns 2.
>> 
>> Do you have any idea where to look to find out what is going wrong here? 
>> Esp. with the communicator being an inter-com.
>> 
>> Best Thanks,
>> Florian
>> ___
>> users mailing list
>> users@lists.open-mpi.org
>> https://lists.open-mpi.org/mailman/listinfo/users
___
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users


Re: [OMPI users] Invalid rank despite com size large enough

2018-04-13 Thread Nathan Hjelm
Try using MPI_Comm_remotr_size. As this is an intercommunicator that will give 
the number of ranks for send/recv. 

> On Apr 13, 2018, at 7:34 AM, Florian Lindner  wrote:
> 
> Hello,
> 
> I have this piece of code
> 
> PtrRequest MPICommunication::aSend(double *itemsToSend, int size, int 
> rankReceiver)
> {
>  rankReceiver = rankReceiver - _rankOffset;
>  int comsize = -1;
>  MPI_Comm_size(communicator(rankReceiver), &comsize);
>  TRACE(size, rank(rankReceiver), comsize);
> 
> 
>  MPI_Request request;
>  MPI_Isend(itemsToSend,
>size,
>MPI_DOUBLE,
>rank(rankReceiver),
>0,
>communicator(rankReceiver),
>&request);
> 
>  return PtrRequest(new MPIRequest(request));
> }
> 
> While there are quite some calls you don't know, it's basically a wrapper 
> around Isend.
> 
> The communicator returned by communicator(rankReceiver) is an 
> inter-communicator!
> 
> The TRACE call prints:
> 
> [1,1]:(1) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
> aSend
> [1,1]:  Argument 0: size == 50
> [1,1]:  Argument 1: rank(rankReceiver) == 1
> [1,1]:  Argument 2: comsize == 2
> [1,0]:(0) 14:30:04 [com::MPICommunication]:104 in aSend: Entering 
> aSend
> [1,0]:  Argument 0: size == 48
> [1,0]:  Argument 1: rank(rankReceiver) == 0
> [1,0]:  Argument 2: comsize == 2
> 
> So, on rank 1 we send to rank = 1 on a communicator with size = 2.
> 
> Still, rank 1 crashes with:
> 
> [neon:80361] *** An error occurred in MPI_Isend
> [neon:80361] *** reported by process [1052966913,1]
> [neon:80361] *** on communicator
> [neon:80361] *** MPI_ERR_RANK: invalid rank
> [neon:80361] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will 
> now abort,
> [neon:80361] ***and potentially your MPI job)
> 
> your collegues from mpich print
> 
> [1] Fatal error in PMPI_Isend: Invalid rank, error stack:
> [1] PMPI_Isend(149): MPI_Isend(buf=0x560ddeb02100, count=49, MPI_DOUBLE, 
> dest=1, tag=0, comm=0x8405,
> request=0x7ffd528989c0) failed
> [1] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
> less than 1
> 
> [0] Fatal error in PMPI_Isend: Invalid rank, error stack:
> [0] PMPI_Isend(149): MPI_Isend(buf=0x564b74c9edd8, count=1, MPI_DOUBLE, 
> dest=1, tag=0, comm=0x8406,
> request=0x7ffe5848d9f0) failed
> [0] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and 
> less than 1
> 
> but MPI_Comm_size also returns 2.
> 
> Do you have any idea where to look to find out what is going wrong here? Esp. 
> with the communicator being an inter-com.
> 
> Best Thanks,
> Florian
> ___
> users mailing list
> users@lists.open-mpi.org
> https://lists.open-mpi.org/mailman/listinfo/users
___
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users


[OMPI users] Invalid rank despite com size large enough

2018-04-13 Thread Florian Lindner
Hello,

I have this piece of code

PtrRequest MPICommunication::aSend(double *itemsToSend, int size, int 
rankReceiver)
{
  rankReceiver = rankReceiver - _rankOffset;
  int comsize = -1;
  MPI_Comm_size(communicator(rankReceiver), &comsize);
  TRACE(size, rank(rankReceiver), comsize);


  MPI_Request request;
  MPI_Isend(itemsToSend,
size,
MPI_DOUBLE,
rank(rankReceiver),
0,
communicator(rankReceiver),
&request);

  return PtrRequest(new MPIRequest(request));
}

While there are quite some calls you don't know, it's basically a wrapper 
around Isend.

The communicator returned by communicator(rankReceiver) is an 
inter-communicator!

The TRACE call prints:

[1,1]:(1) 14:30:04 [com::MPICommunication]:104 in aSend: Entering aSend
[1,1]:  Argument 0: size == 50
[1,1]:  Argument 1: rank(rankReceiver) == 1
[1,1]:  Argument 2: comsize == 2
[1,0]:(0) 14:30:04 [com::MPICommunication]:104 in aSend: Entering aSend
[1,0]:  Argument 0: size == 48
[1,0]:  Argument 1: rank(rankReceiver) == 0
[1,0]:  Argument 2: comsize == 2

So, on rank 1 we send to rank = 1 on a communicator with size = 2.

Still, rank 1 crashes with:

[neon:80361] *** An error occurred in MPI_Isend
[neon:80361] *** reported by process [1052966913,1]
[neon:80361] *** on communicator
[neon:80361] *** MPI_ERR_RANK: invalid rank
[neon:80361] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now 
abort,
[neon:80361] ***and potentially your MPI job)

your collegues from mpich print

[1] Fatal error in PMPI_Isend: Invalid rank, error stack:
[1] PMPI_Isend(149): MPI_Isend(buf=0x560ddeb02100, count=49, MPI_DOUBLE, 
dest=1, tag=0, comm=0x8405,
request=0x7ffd528989c0) failed
[1] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and less 
than 1

[0] Fatal error in PMPI_Isend: Invalid rank, error stack:
[0] PMPI_Isend(149): MPI_Isend(buf=0x564b74c9edd8, count=1, MPI_DOUBLE, dest=1, 
tag=0, comm=0x8406,
request=0x7ffe5848d9f0) failed
[0] PMPI_Isend(97).: Invalid rank has value 1 but must be nonnegative and less 
than 1

but MPI_Comm_size also returns 2.

Do you have any idea where to look to find out what is going wrong here? Esp. 
with the communicator being an inter-com.

Best Thanks,
Florian
___
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users