小编hol*_*ola的帖子

OpenMPI MPI_Barrier问题

我使用MPI_Barrier的OpenMPI实现有一些同步问题:

int rank;
int nprocs;

int rc = MPI_Init(&argc, &argv);

if(rc != MPI_SUCCESS) {
    fprintf(stderr, "Unable to set up MPI");
    MPI_Abort(MPI_COMM_WORLD, rc);
}

MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);


printf("P%d\n", rank);
fflush(stdout);

MPI_Barrier(MPI_COMM_WORLD);

printf("P%d again\n", rank);

MPI_Finalize();
Run Code Online (Sandbox Code Playgroud)

对于mpirun -n 2 ./a.out

输出应为:P0 P1 ...

有时输出:P0 P0再次P1 P1

这是怎么回事?

c mpi openmpi

7
推荐指数
3
解决办法
6709
查看次数

单位操作

是否有可能在C中只获得一个int,然后在不读取整个int并将其写回内存的情况下翻转它?

context:试图在pthread中避免过多的锁定/解锁.

c

0
推荐指数
1
解决办法
1119
查看次数

标签 统计

c ×2

mpi ×1

openmpi ×1