我正在对包含100万个元素的向量进行简单计算。 我正在使用MPI_ALLreduce来做到这一点。我在一年前编写了代码,当时它运行得很好,但现在它只是不起作用。我假设它必须与最新版本的MPI有关。有人可以在我出错的地方帮助我吗?
std::vector<vector<double>> creditlist(r+1,vector<double>(maxnodeid+1,0.0f));
for (int i = 0; i <= maxnodeid; i++) {
creditlist[0][i]=1.0f;
}
for(int i=1;i<=r;i++)
{
double start=MPI_Wtime();
vector<double> partialcredit=dompi(i,adjacencylist, rank, degree, creditlist,proc_rank); //computation part
vector<double> output(partialcredit.size());
MPI_Allreduce(partialcredit.data(),output.data() , creditlist[1].size(), MPI_DOUBLE, MPI_SUM,MPI_COMM_WORLD);
creditlist[i]=output;
double end=MPI_Wtime();
for (int j= 0; j < num_procs; j++) {
cout << "Time for round " << i<< " partition " << proc_rank<< "=" << end - start << endl;
}
}