163 auto commGrid =
A.getcommgrid();
164 int myrank=commGrid->GetRank();
168 int nprocs = commGrid->GetSize();
169 int pr = commGrid->GetGridRows();
170 int pc = commGrid->GetGridCols();
171 int rowrank = commGrid->GetRankInProcRow();
172 int colrank = commGrid->GetRankInProcCol();
173 int diagneigh = commGrid->GetComplementRank();
182 DER* spSeq =
A.seqptr();
184 IT lnrow = spSeq->getnrow();
185 IT lncol = spSeq->getncol();
186 IT localRowStart = colrank * m_perproc;
195 MPI_Sendrecv(&
xsize, 1,
MPI_INT, diagneigh,
TRX, &
trxsize, 1,
MPI_INT, diagneigh,
TRX,
World, &
status);
197 MPI_Sendrecv(
mateCol2Row.GetLocArr(),
xsize,
MPIType<IT>(), diagneigh,
TRX,
trxnums.data(),
trxsize,
MPIType<IT>(), diagneigh,
TRX,
World, &
status);
203 std::vector<int>
dpls(pc,0);
222 if(
mj >= localRowStart &&
mj < (localRowStart+lnrow) )
227 IT i =
li + localRowStart;