13int main(
int argc,
char* argv[])
16 MPI_Init(&argc, &argv);
17 MPI_Comm_size(MPI_COMM_WORLD,&
nprocs);
18 MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
24 cout <<
"Usage: ./VectorIndexing <BASEADDRESS> <VectorOne> <VectorTwo>" << endl;
25 cout <<
"Example: ./VectorIndexing ../TESTDATA sp10outta100.txt sp30outta100.txt" << endl;
26 cout <<
"Input files should be under <BASEADDRESS> in tuples format" << endl;
32 string directory(argv[1]);
33 string vec1name(argv[2]);
34 string vec2name(argv[3]);
35 vec1name = directory+
"/"+vec1name;
36 vec2name = directory+
"/"+vec2name;
38 ifstream inputvec1(vec1name.c_str());
39 ifstream inputvec2(vec2name.c_str());
43 if(inputvec1.fail() || inputvec2.fail())
45 cout <<
"One of the input vector files do not exist, aborting" << endl;
46 MPI_Abort(MPI_COMM_WORLD,
NOFILE);
50 MPI_Barrier(MPI_COMM_WORLD);
53 vec1.ReadDistribute(inputvec1, 0);
54 vec2.ReadDistribute(inputvec2, 0);
56 vec1.PrintInfo(
"vec1");
58 vec2.PrintInfo(
"vec2");
66 auto subvec1 = dvec(vec1);
69 auto subvec2 = dvec(vec2);
73 for(
int i=0; i<12; i+=3) vecA.SetElement(i,i);
74 MPI_Barrier(MPI_COMM_WORLD);
79 auto subvecA = dvecA(vecA);