147 auto commGrid =
A.getcommgrid();
148 int myrank=commGrid->GetRank();
152 int nprocs = commGrid->GetSize();
153 int pr = commGrid->GetGridRows();
154 int pc = commGrid->GetGridCols();
155 int rowrank = commGrid->GetRankInProcRow();
156 int colrank = commGrid->GetRankInProcCol();
157 int diagneigh = commGrid->GetComplementRank();
166 DER* spSeq =
A.seqptr();
168 IT lnrow = spSeq->getnrow();
169 IT lncol = spSeq->getncol();
170 IT localRowStart = colrank * m_perproc;
179 MPI_Sendrecv(&
xsize, 1,
MPI_INT, diagneigh,
TRX, &
trxsize, 1,
MPI_INT, diagneigh,
TRX,
World, &
status);
181 MPI_Sendrecv(
mateCol2Row.GetLocArr(),
xsize,
MPIType<IT>(), diagneigh,
TRX,
trxnums.data(),
trxsize,
MPIType<IT>(), diagneigh,
TRX,
World, &
status);
187 std::vector<int>
dpls(pc,0);
206 if(
mj >= localRowStart &&
mj < (localRowStart+lnrow) )
211 IT i =
li + localRowStart;