Closed
Description
Running the attached problem with two processes such as
mpirun -n 2 ./deadlock
results in deadlock.
From the bt, one process is waiting to receive data from the other process in pdcopy
.
libmpi.so.12!MPIDI_NM_progress.constprop.0 (Unknown Source:0)
libmpi.so.12!MPIDI_progress_test (Unknown Source:0)
libmpi.so.12!MPIR_Wait_state (Unknown Source:0)
libmpi.so.12!MPIR_Wait (Unknown Source:0)
libmpi.so.12!PMPI_Recv (Unknown Source:0)
BI_Srecv(BLACSCONTEXT * ctxt, int src, int msgid, BLACBUFF * bp) (\scalapack-2.2.2\BLACS\SRC\BI_Srecv.c:8)
Cdgerv2d(int ConTxt, int m, int n, double * A, int lda, int rsrc, int csrc) (\scalapack-2.2.2\BLACS\SRC\dgerv2d_.c:79)
PB_CpaxpbyDN(PBTYP_T * TYPE, char * CONJUG, int M, int N, char * ALPHA, char * A, int IA, int JA, int * DESCA, char * AROC, char * BETA, char * B, int IB, int JB, int * DESCB, char * BROC) (\scalapack-2.2.2\PBLAS\SRC\PTOOLS\PB_CpaxpbyDN.c:656)
PB_Cpaxpby(PBTYP_T * TYPE, char * CONJUG, int M, int N, char * ALPHA, char * A, int IA, int JA, int * DESCA, char * AROC, char * BETA, char * B, int IB, int JB, int * DESCB, char * BROC) (\scalapack-2.2.2\PBLAS\SRC\PTOOLS\PB_Cpaxpby.c:754)
pdcopy_(int * N, double * X, int * IX, int * JX, int * DESCX, int * INCX, double * Y, int * IY, int * JY, int * DESCY, int * INCY) (\scalapack-2.2.2\PBLAS\SRC\pdcopy_.c:217)
pdgesvx(character*1 fact, character*1 trans, integer(kind=4) n, integer(kind=4) nrhs, real(kind=8) (*) a, integer(kind=4) ia, integer(kind=4) ja, integer(kind=4) (*) desca, real(kind=8) (*) af, integer(kind=4) iaf, integer(kind=4) jaf, integer(kind=4) (*) descaf, integer(kind=4) (*) ipiv, character*1 equed, real(kind=8) (*) r, real(kind=8) (*) c, real(kind=8) (*) b, integer(kind=4) ib, integer(kind=4) jb, integer(kind=4) (*) descb, real(kind=8) (*) x, integer(kind=4) ix, integer(kind=4) jx, integer(kind=4) (*) descx, real(kind=8) rcond, real(kind=8) (*) ferr, real(kind=8) (*) berr, real(kind=8) (*) work, integer(kind=4) lwork, integer(kind=4) (*) iwork, integer(kind=4) liwork, integer(kind=4) info, integer(kind=8) _fact, integer(kind=8) _trans, integer(kind=8) _equed) (\scalapack-2.2.2\SRC\pdgesvx.f:791)
run() (\deadlock.cpp:92)
main() (\deadlock.cpp:100)
The attached program does not yield correct solution, only created to reproduce the deadlock.
Metadata
Metadata
Assignees
Labels
No labels