从Visual Studio 2017运行MPI应用程序,每个进程位于不同的cmd窗口中

问题描述 投票:0回答:1

使用Visual Studio 2017我试图运行类似黑桃游戏的MPI应用程序。在运行它时,我想为4个玩家中的每个玩家打开一个cmd终端,这样他们每个人都可以在轮到他的行动时输入他的卡片选择。

我尝试了很多选项,包括转到项目属性 - >调试并将命令更改为$(MSMPI_BIN)\mpiexec和命令参数更改为-np 4 "$(TargetPath)" - 请参阅下面的链接:

Command and Command Arguments

但是,除了让4个进程同时运行之外,我仍然打开一个单独的终端,这对我的任何键盘输入都没有反应。

有没有办法使用Visual Studio调试打开4个终端?还是其他任何方式?在cmd / bash中运行“mpiexec.exe -np 4 MyExec.exe”提供与上面相同的结果。

提前致谢

c++ visual-studio terminal mpi
1个回答
1
投票

我认为这是不可能的。

我曾尝试在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

© www.soinside.com 2019 - 2024. All rights reserved.