[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