Не удается установить mpi4py с OpenMPI: невозможно скомпилировать программы MPI
Это мой первый пост здесь, так что извините, если мой стиль не так!
Я пытался установить mpi4py (поскольку SU2 требует его для параллельной обработки) на Ubuntu 16.04 с использованием python 3.6. Я скачал mpi4py и попытался собрать из исходного кода, как я хотел бы использовать настроенные мной библиотеки OpenMPI, и попытался сделать следующее:
sudo python setup.py build --mpicc=/opt/openmpi/openmpi-2.1.0/bin/mpicc
Тем не менее, это в конечном итоге дает сбой с "ошибка: не удается связать программы MPI. Проверьте вашу конфигурацию!!!"
Глядя на документацию SU2 и mpi4py, они рекомендуют вместо этого использовать pip. Я также попробовал это:
sudo pip install mpi4py
а также env MPICC=/opt/openmpi/openmpi-2.1.0/bin/mpicc pip install mpi4py
но они также дали ту же ошибку.
Я сохранил оба вывода - см. Ссылку на вложения. Похоже, что он забрал много файлов из моей установки NVIDIA CUDA, хотя я не уверен почему.
Я новичок в составлении программ, поэтому я был бы признателен, если бы кто-нибудь мог пролить свет на это? Благодарю.
2 ответа
Хотя это старый пост, но я опубликую свой ответ, может помочь другим.
Я исправил эту проблему с помощью следующих команд:
sudo apt install libopenmpi-dev
pip install mpi4py`
Для всех, кто борется с этой проблемой, это оказалось рядом факторов. В основном, mpi4py не собирался правильно, так как моя реализация MPI (openMPI) была построена неправильно. Было много факторов, которые отличали создание программ на существующем суперкомпьютере и новой установке Linux.
Вот некоторые советы по устранению неполадок, которые я могу порекомендовать:
Убедитесь, что вы удалили все переменные среды, которые не нужны для установки, используя
unset
Выгрузите все модули, которые могут помешать установке, используя
module unload
, Это особенно верно при построении вашей собственной реализации MPI на суперкомпьютере, на котором уже загружено несколько других.Проверьте свои
$PATH
переменная для любых мест, которые могут загрязнить вашу установку (не забывая, что порядок важен)! Вы можете временно установить более чистую переменную PATH, чтобы убедиться, что сборка подбирает правильные библиотеки.
Надеюсь это поможет.