MPI_ALLreduce给出bad_alloc错误

时间:2018-03-16 01:52:50

标签: c++ mpi bad-alloc

我正在对包含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;
        }


  }

0 个答案:

没有答案