我有一个用OpenMPI控制集群的web界面,我使用shell_exec()函数来执行mpirun,当我尝试用“-host local”执行时它运行得很好但是当我使用命令“-hostfile /”运行时home / hostfile“它什么都不做。
如果我把命令放在控制台中它可以正常工作,但shell_exec()中的相同命令不起作用。
从shell_exec无效的命令:
cd / mpi; mpirun -np 64 -hostfile / home / hostfile17 paralelo 1 image.bmp out.bmp
但是这个命令可以在控制台上完美运行。
对于发生了什么有任何想法?。
答案 0 :(得分:0)
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