PHP Не удается запустить MPI из функции shell-exec()

У меня есть веб-интерфейс для управления кластером с помощью OpenMPI, я использую функцию shell_exec() для выполнения mpirun, когда я пытаюсь выполнить с «-host local», он работает отлично, но когда я запускаю команду «-hostfile /home/hostfile "ничего не делает.

Если я ввожу команду в консоль, она работает отлично, но та же команда в shell_exec() не работает.

Команда, которая не работает из shell_exec:

компакт-диск/MPI; mpirun -np 64 -hostfile /home/hostfile17 paralelo 1 image.bmp out.bmp

Но эта команда отлично работает из консоли.

Любая идея о том, что происходит?


person John Smith    schedule 23.12.2013    source источник
comment
Вы уверены, что файл хоста находится в /home? Для системы Unix очень нетипично хранить файлы в /home, а не в /home/username/.   -  person Hristo Iliev    schedule 25.12.2013
comment
Да, он находится в /home/hostfile17.   -  person John Smith    schedule 25.12.2013
comment
Проверьте права доступа /home/hostfile17 и убедитесь, что он доступен для чтения веб-сервером. Также убедитесь, что пользователь веб-сервера может войти в узлы, перечисленные в файле хоста, через SSH без пароля, например. с беспарольным ключом.   -  person Hristo Iliev    schedule 25.12.2013
comment
Привет @JohnSmith Удалось ли вам запустить mpirun из php? Я столкнулся с той же проблемой. В моем случае пользователь www-data, но все было построено под другим именем пользователя. Работает ли это с абсолютными путями? Должен ли я добавлять нового пользователя www-data на каждый узел?   -  person pacomet    schedule 16.06.2014


Ответы (1)


Функция 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
person emcconville    schedule 25.12.2013