【问题标题】:MPI Reduce Program is not working, I`m always getting the error as work ( ) identifier not foundMPI 减少程序不工作,我总是收到错误,因为找不到工作()标识符
【发布时间】:2021-09-08 14:25:59
【问题描述】:
int myrank,
        numprocs;
    double mytime,   /*variables used for gathering timing statistics*/
        maxtime,
        mintime,
        avgtime;

    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Barrier(MPI_COMM_WORLD);  /*synchronize all processes*/
    mytime = MPI_Wtime();  /*get time just before work section */
   work();
    mytime = MPI_Wtime() - mytime;  /*get time just after work section*/
    /*compute max, min, and average timing statistics*/
    MPI_Reduce(&mytime, &maxtime, 1, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
    MPI_Reduce(&mytime, &mintime, 1, MPI_DOUBLE, MPI_MIN, 0, MPI_COMM_WORLD);
    MPI_Reduce(&mytime, &avgtime, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
    if (myrank == 0) {
        avgtime /= numprocs;
        printf("Min: %lf  Max: %lf  Avg:  %lf\n", mintime, maxtime, avgtime);
    }

在这里,我总是喜欢

Severity    Code    Description Project File    Line    Suppression State
Error   C3861   'work': identifier not found    Activity1   C:\Users\Acer\Desktop\Self Study\MPI\Activity1\Activity1.cpp    39

这是我从教程中获得的代码,所以我对 c++ 没有很好的了解。所以请在这种情况下帮助我。这个我试过很多次了。

【问题讨论】:

  • #include #include #include ,这些是我的导入
  • 教程有没有说你必须实现work子程序?
  • 请编辑您的问题,包含所有必要的编译位。
  • eecis.udel.edu/~pollock/367/manual/node23.html,这是教程的链接@GillesGouaillardet
  • 教程建议你需要实现你想要计时的work()子程序。

标签: c++ mpi


【解决方案1】:

由于这是来自教程的 MPI reduce 示例代码的代码段,因此需要将 work() 函数添加到代码中,如下所示以占用执行时间。在这里,我们使用一个虚拟函数来刺激工作量。 据我所知,work() 不是 c++ 的内置函数。

void work(){
    for(int i =0; i< INT16_MAX; i++) {
        //simulate the workload
    }
}

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 2021-02-15
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多