Назад | Перейти на главную страницу

Загрузите модуль OpenMPI для Apache httpd

Как я могу указать 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.