使用Visual Studio 2017我试图运行类似黑桃游戏的MPI应用程序。在运行它时,我想为4个玩家中的每个玩家打开一个cmd终端,这样他们每个人都可以在轮到他的行动时输入他的卡片选择。
我尝试了很多选项,包括转到项目属性 - >调试并将命令更改为$(MSMPI_BIN)\mpiexec
和命令参数更改为-np 4 "$(TargetPath)"
- 请参阅下面的链接:
但是,除了让4个进程同时运行之外,我仍然打开一个单独的终端,这对我的任何键盘输入都没有反应。
有没有办法使用Visual Studio调试打开4个终端?还是其他任何方式?在cmd / bash中运行“mpiexec.exe -np 4 MyExec.exe”提供与上面相同的结果。
提前致谢
我认为这是不可能的。
我曾尝试在mpi测试程序中使用AllocConsole()
,每个进程都会返回一个错误,因为它认为已经有一个控制台连接到它。
在某种程度上它似乎是逻辑的,因为mpiexec将启动进程并且每个stdout将指向相同的输出(文件或控制台),对于stdin,您必须选择将处理它的进程(通过手动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)