[mpich-discuss] ISend problem
Pavan Balaji
balaji at mcs.anl.gov
Wed Nov 23 02:10:33 CST 2011
If you post too many Isends, the MPI implementation will run out of
memory eventually. You are running into this. You should do a wait
occasionally to make sure there aren't too many pending isends.
-- Pavan
On 11/17/2011 12:29 PM, Jierui XIE wrote:
> Hello,
>
> The problem is not solved. Anyone can help?
>
> Thanks.
>
> On Fri, Nov 11, 2011 at 5:56 PM, Jierui XIE<jierui.xie at gmail.com> wrote:
>> Hello,
>>
>> I want to use MPI_ISend but got errors.
>>
>> For EACH process, I used a loop to post MPI_ISend() to other
>> processes(not all) and the number of messages is large (e.g., 100,000, each one one 2 integers)
>> I am wondering if there is a limit(max number) for posting MPI_ISend().
>>
>> If I replace it with a blocking MPI_Send, then it is fine. Why?
>>
>>
>> Jerry
>> Thanks.
>>
>> ==============Erorr===============================
>> rank 6 in job 223 node08_42506 caused collective abort of all ranks
>> exit status of rank 6: return code 1
>> Fatal error in MPI_Isend: Other MPI error, error stack:
>> MPI_Isend(146)...............: MPI_Isend(buf=0x12da9e8, count=2,
>> MPI_INT, dest=6, tag=1, MPI_COMM_WORLD, request=0x7fff0f363068) failed
>> MPIDI_EagerContigIsend(535)..: failure occurred while attempting to
>> send an eager message
>> MPID_nem_tcp_iSendContig(400): writev to socket failed - Connection
>> reset by peer
>>
>>
>> ==============Code===============================
>>
>> for(int t=1;t<maxT;t++){
>> MPI_Request req_s[totalMsgOut],req_r[totalMsgIn];
>> int tag=t;
>>
>> //------------------------------------
>> int msgArr[totalMsgIn][2];
>> for(int i=0;i<totalMsgIn;i++)
>> MPI_Irecv(&msgArr[i],2,MPI_INT,MPI_ANY_SOURCE,tag,MPI_COMM_WORLD,&req_r[i]);
>>
>> //-------------------------------------------------------------
>> // post send ****(problem)
>> //-----------------------------------------------------------
>> int dest,p=0;
>> for(int i=0;i<subNODES.size();i++){
>> MPI_Isend(v->msg,2,MPI_INT,dest,tag,MPI_COMM_WORLD,&req_s[p++]);
>>
>> //MPI_Send(v->msg,2,MPI_INT,dest,tag,MPI_COMM_WORLD);> }
>> }
>>
>>
>> //------------------------------------
>> //wait
>> MPI_Waitall(totalMsgIn, req_r, MPI_STATUSES_IGNORE);
>>
>> //------------------------------------
>> //wait
>> MPI_Waitall(totalMsgOut, req_s, MPI_STATUSES_IGNORE);
>>
>> }
>>
> _______________________________________________
> mpich-discuss mailing list mpich-discuss at mcs.anl.gov
> To manage subscription options or unsubscribe:
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
--
Pavan Balaji
http://www.mcs.anl.gov/~balaji
More information about the mpich-discuss
mailing list