Я тестировал программу HelloWorld C, которая смешивает OpenMP и MPI на моем Macbook Pro.Как скомпилировать гибридную программу OpenMP и MPI на OS X
Компиляция с mpicc -fopenmp helloworld.c -o helloworld
или mpicc -openmp helloworld.c -o helloworld
оба дают мне сообщение об ошибке fatal error: 'omp.h' file not found
.
Если я скомпилирую только часть MPI с mpicc helloworld.c -o helloworld
или только часть OpenMP с gcc -fopenmp helloworld.c -o helloworld
, она сработала отлично.
Я посмотрел в SO, и я видел, как люди успешно компилируются в Linux, поэтому мне было интересно, если это проблема только для OS X. Должен ли я использовать другой флаг для OS X, кроме -openmp
или -fopenmp
? Любая помощь будет действительно оценена. Я использую OpenMPI-1.10.0 с OS X EI Capitan (10.11.1).
Простой HelloWorld программный код приведен ниже, и шаги, которые я последовал на this page:
#include <stdio.h>
#include "mpi.h"
#include <omp.h>
int main(int argc, char *argv[]) {
int numprocs, rank, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
int iam = 0, np = 1;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Get_processor_name(processor_name, &namelen);
#pragma omp parallel default(shared) private(iam, np)
{
np = omp_get_num_threads();
iam = omp_get_thread_num();
printf("Hello from thread %d out of %d from process %d out of %d on %s\n",
iam, np, rank, numprocs, processor_name);
}
MPI_Finalize();
}
компиляцией openmp first, ссылка с mpi позже – user3528438
@ user3528438 Спасибо за ваш ответ. Можете быть более конкретными? – Jimmy
, так как файл 'omp.h' не находится во время компиляции, добавьте' -IpathTo_omp.h_File' в оператор компиляции – user3629249