[mpich-discuss] The equivalent HPF command in MPI

Rajeev Thakur thakur at mcs.anl.gov
Thu Sep 22 10:31:13 CDT 2011


Also, you should use nonblocking receives and sends (MPI_Irecv and MPI_Isend) followed by an MPI_Waitall. If everyone calls the blocking MPI_Recv, the program will hang since there will be no sender.

Rajeev

On Sep 22, 2011, at 10:08 AM, Anthony Chan wrote:

> 
> ----- Original Message -----
> 
>> I want to be sure that if these 2 commands are equivalent or not:
>> 
>> C_rh=CSHIFT(C_rh,-1,4) !HPF
> 
> I am not familiar HPF, but I couldn't find CSHIFT in some online HPF documentation.
> Howeveer, CSHITF is a Fortran 90 operator on array, but it is a local operation.
> 
>> MPI_Recv(C_rh,count, mreal,rank+1,MPI_COMM_WORLD,msid,ierr) !MPI
>> MPI_Send(C_rh,count, mreal,rank-1,MPI_COMM_WORLD,msid,ierr) !MPI
> 
> You used to use msid to designate MPI_Request.  MPI_Send and MPI_Recv
> do not have MPI_Request argument, only the non-blocking version have
> the it.  Also, your Send and Recv do not seem to have tag argument!
> 
> Aside from those errors, what are you trying to do ?  Stencil exchange or
> implement circular shift on a global array ..... ?
> 
>> and the second, is there any efficient way of debugging for finding
>> deadlocks in the code?
> 
> If you have access to a parallel debugger, like totalview, you could see
> if it still see the deadlock and start there.  If not, you could add some
> print statements in your code to see where MPICH2 detects the deadlock.
> 
> A.Chan
> 
> _______________________________________________
> 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



More information about the mpich-discuss mailing list