mpich — выполнение команд MPI с использованием переполнения стека

Я пытаюсь выполнить программу MPI с использованием php, поскольку я должен предоставить пользователю веб-интерфейс .PHP успешно выполняет команду и возвращает только вывод Если у меня только один процесс, т.е.

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

Но мне нужно больше, чем один процесс, и я попробовал следующие способы, но результаты такие же, т.е. нет ответа от программы MPI.

Всегда загружается, но нет ответа
используя систему ()

$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);

Пожалуйста, помогите мне. Большое спасибо.

2

Решение

Кажется, проблема в том, что вы пытаетесь сохранить выходные данные «system ()» в «$ output», в то время как они уже сохраняют значение в «$ returnValue». Попробуй это:

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

По какой-то странной причине PHP не ладит с многопоточностью.

Грязным обходным путем будет вывод результата в файл и подача php из этого файла, что-то вроде:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]