Я пытаюсь развернуть проект 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?