小编gen*_*nin的帖子

MPI 矩阵-矩阵乘法的问题:集群比单台计算机慢

我使用 MPI 编写了一个小程序来并行化矩阵-矩阵乘法。问题是:在我的电脑上运行程序时,大约需要10秒才能完成,但在集群上大约需要75秒。我想我有一些同步问题,但我无法弄清楚(还)。

这是我的源代码:

/*matrix.c
mpicc -o out matrix.c
mpirun -np 11 out
*/

#include <mpi.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define N 1000

#define DATA_TAG 10
#define B_SENT_TAG 20
#define FINISH_TAG 30

int master(int);
int worker(int, int);

int main(int argc, char **argv) {
    int myrank, p;
    double s_time, f_time;

    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
    MPI_Comm_size(MPI_COMM_WORLD, &p);

    if (myrank == 0) {
        s_time = MPI_Wtime();
        master(p);
        f_time = MPI_Wtime();
        printf("Complete in %1.2f seconds\n", f_time - s_time);
        fflush(stdout);
    }
    else {
        worker(myrank, …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing mpi matrix-multiplication

5
推荐指数
1
解决办法
3066
查看次数