связать объект gcc и объект pgfortran вместе (оба имеют внутри директивы omp)

Сейчас я работаю над научным проектом, в котором мы используем фортран-куда из PGI. Мы обнаружили, что поддержка omp в PGI настолько мала, что мы не можем выполнить параллельную задачу omp от pgfortran. Поэтому мы решили извлечь что-то, сделать C ++ и скомпилировать его с помощью g ++.

Другая причина, по которой мы хотим смешать PGI-компилятор pgfortran с GNU G ++, заключается в том, что нам нужно использовать pgfortran для компиляции части кода cuda-fortran, а также нам нужно использовать NVCC от Nvidia (который использует g ++ для компиляции кода хоста). ) скомпилировать те сегменты OMP, в которых есть CUDA и которые не могут быть правильно скомпилированы pgfortran.

Наконец, когда я связываю объектные файлы C ++, скомпилированные с помощью g ++, и объектные файлы Fortran, скомпилированные с помощью pgfortran, если я не укажу здесь опцию -lgomp, возникнут ошибки при связывании. Но если я поставлю это там, поведение потоков OMP будет странным.

Я думаю, проблема в том, что два разных компилятора используют разные библиотеки OMP, а gomp — это библиотека GNU. Так кто-нибудь знает, как правильно их связать? Или может кто-нибудь сказать мне, как связать библиотеку OMP PGI?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]