gpt4 book ai didi

c - 如何在 Windows 上使用 MPI 和 OpenMP 编译和执行 C 程序

转载 作者:行者123 更新时间:2023-11-30 14:23:33 25 4
gpt4 key购买 nike

我有一个使用 MPI 和 OpenMP 的 C 程序。为了在Windows系统上编译这样的程序,我下载并安装了MinGW提供的gcc编译器。使用这个编译器,我可以使用 gcc 的关键 -fopenmp 来使用 OpenMP 编译和执行 C 程序。这样的程序运行起来没有问题。为了使用 MPI 编译和执行 C 程序,我下载并安装了 MPICH2。现在我可以毫无问题地编译和运行这样的程序,为 MinGW 提供的 gcc 指定附加参数。但是当我想编译并运行一个同时使用 OpenMP 和 MPI 的程序时,我遇到了问题。我为 gcc 编译器指定了键 -fopenmp 和 MPI 程序的键。编译器没有给我任何错误。我尝试通过 MPICH2 提供的 mpiexec 启动我的程序。我的程序不想工作(这是一个 HelloWorld 程序,它没有打印任何内容)。请帮助我正确编译和启动此类程序。

这是我的 HelloWorld 程序,它不会产生任何输出。

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

int main(int argc, char ** argv)
{
int thnum, thtotal;
int pid, np;

MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&pid);
MPI_Comm_size(MPI_COMM_WORLD,&np);

printf("Sequental %d out of %d!\n",pid,np);
MPI_Barrier(MPI_COMM_WORLD);

#pragma omp parallel private(thnum,thtotal)
{
thnum = omp_get_thread_num();
thtotal = omp_get_num_threads();
printf("parallel: %d out of %d from proc %d out of %d\n",thnum,thtotal,pid,np);

}
MPI_Barrier(MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}

最佳答案

您可以使用带有 -openmp 选项的 mpicc 编译器。例如,

mpicc -openmp hello.c -o hello

关于c - 如何在 Windows 上使用 MPI 和 OpenMP 编译和执行 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12795548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com