我该如何告诉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"
我用这行创build一个/etc/profile.d/openmpi.sh文件解决了用户shell的问题:
module load openmpi/gnu
不幸的是,这听起来像Apache用户不加载全局configuration文件,所以我仍然在我的页面中的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。