<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body dir="auto">
<div>You need to move your waitany outside of the if statement so both ranks execute it. <br>
<br>
<br>
</div>
<div><br>
On Oct 19, 2014, at 9:33 AM, myself <<a href="mailto:chcdlf@126.com">chcdlf@126.com</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial">
<div>Here is my test program</div>
<br class="Apple-interchange-newline">
<span style="line-height: 23.7999992370605px;">======</span>
<div><br>
</div>
<div>
<div> #include "mpi.h"</div>
<div> #include <stdio.h></div>
<div> #include <stdlib.h></div>
<div> #include <sys/time.h></div>
<div> </div>
<div>
<div> typedef unsigned char byte;</div>
<div> </div>
<div> int main(int argc, char *argv[]){</div>
<div>     MPI_Init(&argc, &argv);</div>
<div>     int rank,size;</div>
<div>     MPI_Comm_size(MPI_COMM_WORLD, &size);</div>
<div>     MPI_Comm_rank(MPI_COMM_WORLD, &rank);</div>
<div>     byte buf[10][10];</div>
<div>     MPI_Request req[10];</div>
<div>     MPI_Status stat[10];</div>
<div>     int outcount;</div>
<div>     int array_of_indices[10];</div>
<div>     int i;</div>
<div> </div>
<div>     if(rank==0) {</div>
<div>         for(i =0; i< 10;i++){</div>
<div>             MPI_Isend(buf[i], 10, MPI_BYTE, 1, 123, MPI_COMM_WORLD, &req[i]);</div>
<div>         }</div>
<div>         printf("post send\n");</div>
<div>         MPI_Waitall(10, req, stat);</div>
<div>         printf("send over\n");</div>
<div>     }else {</div>
<div>         for(i=0; i< 10;i++){</div>
<div>             MPI_Irecv(buf[i], 10, MPI_BYTE, 0, 123, MPI_COMM_WORLD, &req[i]);</div>
<div>         }</div>
<div> </div>
<div>         printf("post recv\n");</div>
<div>         for (i=0;i<10;i++){</div>
<div>             MPI_Waitsome(10, req, &outcount, array_of_indices, stat);</div>
<div>             printf("%d index %d\n", outcount, array_of_indices[0]);</div>
<div>         }</div>
<div>     }</div>
<div>     MPI_Finalize();</div>
<div> }</div>
</div>
</div>
<div><br>
</div>
<div>======</div>
<div><span style="line-height: 1.7;"> get the result like this</span></div>
<div>======</div>
<div>
<div>
<div>$ mpirun -n 2 ./tests</div>
<div>post send</div>
<div>send over</div>
<div>post recv</div>
<div>1 index 0</div>
<div>1 index 1</div>
<div>1 index 2</div>
<div>1 index 3</div>
<div>1 index 4</div>
<div>1 index 5</div>
<div>1 index 6</div>
<div>1 index 7</div>
<div>1 index 8</div>
<div>1 index 9</div>
</div>
</div>
<div><br>
</div>
<div><span style="line-height: 23.7999992370605px;">======</span></div>
<div><span style="line-height: 23.7999992370605px;"><br>
</span></div>
<div><span style="line-height: 23.7999992370605px;">I think I should get some completed receive connection, not just 1.</span></div>
<div><br>
</div>
<div><br>
</div>
</div>
<br>
<br>
<span title="neteasefooter"><span id="netease_mail_footer"></span></span></div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>discuss mailing list     <a href="mailto:discuss@mpich.org">discuss@mpich.org</a></span><br>
<span>To manage subscription options or unsubscribe:</span><br>
<span><a href="https://lists.mpich.org/mailman/listinfo/discuss">https://lists.mpich.org/mailman/listinfo/discuss</a></span></div>
</blockquote>
</body>
</html>