我如何告诉 Apache httpd 使用哪个版本的 MPI?
我正在尝试在 Apache httpd 下运行 Django Web 应用程序,并且我们的一些页面使用 mpi4py 进行 MPI 调用。问题是当页面尝试导入 MPI 时,我收到 ImportError。
ImportError:libmpi.so.1:无法打开共享对象文件:没有此文件或目录
服务器安装了 OpenMPI 和 MPICH,在用户 shell 中,我必须module load openmpi/gnu
先输入一些内容才能使用 mpi4py。例如,这会因加载库时出错而失败:
python -c "from mpi4py import MPI"
/etc/profile.d/openmpi.sh
我通过创建包含以下行的文件来解决用户 shell 的问题:
module load openmpi/gnu
不幸的是,听起来 apache 用户没有加载全局配置文件,所以我的页面中仍然有 ImportError。我尝试在末尾加载模块/etc/sysconfig/httpd
:
. /etc/profile.d/modules.sh
module load openmpi/gnu
不幸的是,我仍然得到了 ImportError。如果我注释掉导入并检查,os.environ['PATH']
看起来 openmpi 模块尚未加载,因此加载 Apache 服务的 shell 一定与运行 Apache 服务的 shell 不同。
我也尝试进行更改/etc/bashrc
,但这似乎也不会影响 apache 用户。
我们在装有 CentOS 5.9 的 Scyld Beowulf 集群上运行 Apache 2.2.3。