43 std::vector<IT> vecEss;
44 std::vector< SpDCCols<IT, NT> > partsmat;
49 shared_ptr<CommGrid> layerGrid;
51 SpParMat < IT, NT, SpDCCols<IT,NT> > *
A =
new SpParMat < IT, NT, SpDCCols<IT,NT> >(layerGrid);
53 A->ParallelReadMM(filename);
58 if(
A->getnrow() ==
A->getncol())
60 if(p.TotalLength()!=
A->getnrow())
63 p.
iota(
A->getnrow(), 0);
76 double trans_beg = MPI_Wtime();
81 double split_beg = MPI_Wtime();
82 localmat->
ColSplit(nparts, partsmat);
84 for(
int i=0; i< nparts; ++i)
86 std::vector<IT> ess = partsmat[i].GetEssentials();
87 for(
auto itr = ess.begin(); itr != ess.end(); ++itr)
89 vecEss.push_back(*itr);
95 double scatter_beg = MPI_Wtime();
98 std::vector<IT> myess(esscnt);
103 splitmat = partsmat[0];
104 for(
int recipient=1; recipient< nparts; ++recipient)
107 Arr<IT,NT> arrinfo = partsmat[recipient].GetArrays();
108 for(
unsigned int i=0; i< arrinfo.
indarrs.size(); ++i)
113 for(
unsigned int i=0; i< arrinfo.
numarrs.size(); ++i)
125 for(
unsigned int i=0; i< arrinfo.
indarrs.size(); ++i)
129 for(
unsigned int i=0; i< arrinfo.
numarrs.size(); ++i)
void Reader(string filename, CCGrid &CMG, SpDCCols< IT, NT > &splitmat, bool trans, bool permute, FullyDistVec< IT, IT > &p)