使用PHP执行MPI命令

时间:2015-06-04 11:42:30

标签: php mpich

我正在尝试使用php执行mpi程序,因为我必须为user.PHP成功执行命令并仅返回输出如果我只有一个进程,即

$output = system(" mpiexec -hostfile /data/hosts -np 1 /data/./hello",$returnValue);

但我需要一个以上的过程,我尝试了以下方法,但结果相同,即mpi程序没有响应。

Always loading, but no response 使用system()

$output = system(" mpiexec -hostfile /data/hosts -np 2 /data/./hello",$returnValue);

使用shell_exec()

$output = shell_exec(" mpiexec -hostfile /data/hosts -np 2 /data/./hello");

如果我使用这些方法来运行一个简单的c程序,我会收到响应。

$output = system("/data./hello",$returnValue);

请帮助我。非常感谢。

1 个答案:

答案 0 :(得分:3)

问题似乎是你试图存储" system()"的输出。进入" $输出"虽然它已经将值存储在" $ returnValue"上。试试这个:

exec('mpiexec -hostfile /data/hosts -np 2 /data/./hello', $var);
var_dump($var);

由于某些奇怪的原因,PHP与多线程相处并不相同。

脏的workarround将结果输出到文件并从该文件中提供php,如:

system(" mpiexec -hostfile /data/hosts -np 2 /data/./hello > myfile.txt 2>&1");
$handle = file_get_contents('myfile.txt');