188 typedef typename DER::LocalIT
LIT;
193 DER* spSeq =
A2D.seqptr();
195 int numChunks = (
int)std::sqrt((
float)commGrid3D->GetGridLayers());
196 if(!colsplit) spSeq->Transpose();
203 int sqrtLayer = (
int)std::sqrt((
float)commGrid3D->GetGridLayers());
204 std::vector<DER>
sendChunks(commGrid3D->GetGridLayers());
239 DER* spSeq =
A2D.seqptr();
245 for(
typename DER::SpColIter
colit = spSeq->begcol();
colit != spSeq->endcol(); ++
colit)
257 for(
typename DER::SpColIter
colit = spSeq->begcol();
colit != spSeq->endcol(); ++
colit)
408 std::shared_ptr<CommGrid> commGridLayer = commGrid3D->GetCommGridLayer();
409 int procrows = commGridLayer->GetGridRows();
410 int proccols = commGridLayer->GetGridCols();
411 int nlayers = commGrid3D->GetGridLayers();
416 if(commGridLayer->GetRankInProcRow() == commGrid3D->GetGridCols()-1)
420 if(commGridLayer->GetRankInProcCol() == commGrid3D->GetGridRows()-1)
427 if(commGrid3D->GetRankInFiber() == (commGrid3D->GetGridLayers()-1))
434 if(commGrid3D->GetRankInFiber() == (commGrid3D->GetGridLayers()-1))
435 localm =
localm_L0 - localm * (commGrid3D->GetGridLayers()-1);
442 typedef typename DER::LocalIT
LIT;
444 DER * spSeq = layermat->seqptr();
446 int sqrtLayers = (
int)std::sqrt((
float)commGrid3D->GetGridLayers());
449 IT x = (colsplit) ? layermat->getnrow() : layermat->getncol();
463 for(
LIT i = start; i < end; i++){
466 if(colsplit) spSeq->Transpose();
471 std::vector<DER>
sendChunks(commGrid3D->GetGridLayers());
492 std::shared_ptr<CommGrid>
grid2d;
498 int nProcs = commGrid3D->GetSize();
500 int nGridCols = commGrid3D->GetGridCols();
501 int nGridRows = commGrid3D->GetGridRows();
519 std::shared_ptr<CommGrid>
grid2d;
523 std::vector< std::vector < std::tuple<LIT,LIT,NT> > > data(
nProcs);
524 DER* spSeq = layermat->seqptr();
526 for(
typename DER::SpColIter
colit = spSeq->begcol();
colit != spSeq->endcol(); ++
colit){
535 if(commGrid3D->GetCommGridLayer()->GetRankInProcRow() < (
nGridCols-1)){
547 if(commGrid3D->GetCommGridLayer()->GetRankInProcCol() < (
nGridRows-1)){
556 IT grow = commGrid3D->GetCommGridLayer()->GetRankInProcCol() * c +
lrow_L0;
557 IT gcol = commGrid3D->GetCommGridLayer()->GetRankInProcRow() * a +
lcol_L0;