我有一个用OpenMPI控制集群的web界面,我用shell_exec()函数来执行mpirun,当我试图用“-host local”执行时,它工作得很好,但是当我用命令“-hostfile/home/hostfile”运行时,它什么也不做。
如果我将该命令放在控制台中,它可以正常工作,但是shell_exec()中的同一个命令不起作用。
无法从shell执行的命令:
cd/mpi;mpirun-np 64-hostfile/home/hostfile17 paralelo 1 image.bmp
输出.bmp
但这个命令在控制台上运行得很好。
知道怎么回事吗?.

最佳答案

PHP的shell_exec函数将在非登录用户下执行您的命令这只意味着$PATH和其他您所期望的环境变量将不会被提供。
只需明确mpirun的位置,并使用绝对路径确保MPI知道您在说什么。
例子:

/usr/local/bin/mpirun -np 64 -hostfile /home/hostfile17 /full/path/paralelo 1 /mpi/image.bmp /mpi/out.bmp

关于c - PHP无法从shell-exec()函数运行MPI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20745291/

10-11 19:36