Как я могу указать Apache httpd, какую версию MPI использовать?
Я пытаюсь запустить веб-приложение Django под Apache httpd, и некоторые из наших страниц выполняют вызовы MPI с помощью mpi4py. Проблема в том, что я получаю ImportError, когда страница пытается импортировать MPI.
ImportError: libmpi.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога
На сервере установлены OpenMPI и MPICH, и в пользовательской оболочке мне пришлось ввести module load openmpi/gnu
прежде чем я смог использовать mpi4py. Например, это приведет к ошибке загрузки библиотеки:
python -c "from mpi4py import MPI"
Я решил это для пользовательских оболочек, создав /etc/profile.d/openmpi.sh
файл с этой строкой:
module load openmpi/gnu
К сожалению, похоже, что пользователь apache не загружает глобальный профиль, поэтому на моих страницах все еще есть ImportError. Я пробовал загрузить модуль в конце /etc/sysconfig/httpd
:
. /etc/profile.d/modules.sh
module load openmpi/gnu
К сожалению, я все еще получаю ImportError. Если я закомментирую импорт и проверю os.environ['PATH']
похоже, что модуль openmpi не был загружен, поэтому оболочка, загружающая службу Apache, не должна быть такой же, как оболочка, которая запускает службу Apache.
Я также пробовал внести изменения в /etc/bashrc
, но это, похоже, не влияет и на пользователя apache.
Мы запускаем Apache 2.2.3 в кластере Scyld Beowulf с CentOS 5.9.