Запустите приложение MPI из Visual Studio 2017 с каждым процессом в отдельном окне cmd - PullRequest
0 голосов
/ 05 сентября 2018

Использование Visual Studio 2017 Я пытаюсь запустить приложение MPI, которое напоминает игру Spades. Запустив его, я хочу открыть терминал cmd для каждого из 4 игроков, чтобы каждый из них мог ввести выбор своей карты в свой ход, чтобы действовать.

Я перепробовал множество вариантов, в том числе перейдя в Свойства проекта -> Отладка и изменив Command на $(MSMPI_BIN)\mpiexec и Аргументы команд на -np 4 "$(TargetPath)" - см. Ссылку ниже:

Команда и командные аргументы

но, кроме одновременного запуска 4 процессов, я по-прежнему открываю один терминал, который не реагирует ни на один из моих вводов с клавиатуры.

Есть ли способ открыть 4 терминала с помощью отладки Visual Studio? Или любым другим способом? запуск "mpiexec.exe -np 4 MyExec.exe" в cmd / bash дает тот же результат, что и выше.

Заранее спасибо

1 Ответ

0 голосов
/ 09 сентября 2018

Я думаю, что это невозможно.

Я пытался использовать AllocConsole() в тестовой программе mpi, и каждый процесс возвращает ошибку, поскольку считает, что к ней уже подключена консоль.

В некотором смысле это выглядит логично, потому что mpiexec запустит процессы, и каждый стандартный вывод будет направлен на один и тот же вывод (файл или консоль), так как для стандартного ввода вы должны выбрать, какой процесс будет обрабатывать его (судя по руководству ) https://www.open -mpi.org / doc / v3.0 / man1 / mpiexec.1.php -stdin опция).

Эти перенаправления обязательно управляются менеджером процессов (https://wiki.mpich.org/mpich/index.php/Frequently_Asked_Questions)

Как сказал @Evg, судя по намекам на "игру пиков", я думаю, что MPI - это не то, что вам нужно. Может быть, более unix доменный сокет. Но они являются другими способами сделать межпроцессное ком (https://en.wikipedia.org/wiki/Inter-process_communication)

...