Como posso dizer ao Apache httpd qual versão do MPI usar?
Estou tentando executar um aplicativo da Web do Django no Apache httpd e algumas de nossas páginas fazem chamadas MPI com o mpi4py. O problema é que eu recebo um ImportError quando uma página tenta importar MPI.
ImportError: libmpi.so.1: cannot open shared object file: No such file or directory
O servidor tem o OpenMPI e o MPICH instalados e, em um shell de usuário, eu tive que digitar module load openmpi/gnu
antes de poder usar o mpi4py. Por exemplo, isso falharia com um erro ao carregar a biblioteca:
python -c "from mpi4py import MPI"
Eu resolvi que para shells de usuários, criando um arquivo /etc/profile.d/openmpi.sh
com esta linha:
module load openmpi/gnu
Infelizmente, parece que o usuário do apache não carrega o perfil global, então ainda tenho o ImportError em minhas páginas. Tentei carregar o módulo no final de /etc/sysconfig/httpd
:
. /etc/profile.d/modules.sh
module load openmpi/gnu
Infelizmente, ainda recebo o ImportError. Se eu comentar a importação e verificar os.environ['PATH']
, parece que o módulo openmpi não foi carregado, portanto, o shell que carrega o serviço Apache não deve ser o mesmo que o shell que executa o serviço Apache.
Eu também tentei fazer alterações em /etc/bashrc
, mas isso também não parece afetar o usuário do apache.
Estamos executando o Apache 2.2.3 em um cluster Scowld Beowulf com o CentOS 5.9.