Как правильно обновить версию OpenMP? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь развернуть проект OpenMP / MPI на некоторых виртуальных машинах через Amazon EC2. Каждая виртуальная машина работает под управлением Ubuntu 16.04, и в настоящее время у меня есть: gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 и относительная mpich.

. Я правильно протестировал свой проект на Ubuntu 18.04 с gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0. В основном я использую сокращения массивов OpenMP с пользовательскими операторами сокращения, и, насколько мне известно, это стало доступно начиная с OpenMP 4.5. Это действительно проблема, так как на моих виртуальных машинах я получаю следующую ошибку: error: ‘array1_test’ has invalid type for ‘reduction’.

Я думал, что достаточно простого обновления ( после этого ), но после этого MPI жаловался на Please use the same version of GCC and g++ for compiling MPICH and user MPI programs. Я попытался переустановить mpich, но безуспешно.

Я использую cmake для компиляции. Связывание MPI выполняется следующим образом:

link_libraries(${MPI_CXX_LIBRARIES})
if(MPI_CXX_COMPILE_FLAGS)
  set_property(GLOBAL PROPERTY COMPILE_FLAGS "${MPI_CXX_COMPILE_FLAGS}")
endif()
if(MPI_CXX_LINK_FLAGS)
set_property(GLOBAL PROPERTY LINK_FLAGS "${MPI_CXX_LINK_FLAGS}")
endif()

Что я делаю не так и как я могу правильно обновить OpenMP, не портя конфигурацию MPI?

1 Ответ

1 голос
/ 19 апреля 2020

Так что для любого, кто испытывает мою проблему, я решил сборку проблемы из источника MPICH, как предложено @ Jérôme Richard.

1) Я установил более новую версию gcc, чтобы иметь совместимый стандарт OpenMP для моего проекта (например, 4.5) и решить проблему error: ‘array1_test’ has invalid type for ‘reduction’.

2) Я загрузил исходные файлы с веб-сайта MPICH ( раздел загрузки ).

3) Следуя их руководству по установке, мне удалось установить mpich с компиляцией gcc 7.4.0, чтобы решить Please use the same version of GCC and g++ for compiling MPICH and user MPI programs выпуск.

Обратите внимание, что мне нужно придерживаться Ubuntu 16.04. Все эти проблемы можно пропустить, просто используя более новую версию Ubuntu (например,> = 18.04).

...