C++ 从Visual Studio 2017运行MPI应用程序,每个进程位于不同的cmd窗口中
使用Visual Studio 2017,我尝试运行一个类似于黑桃游戏的MPI应用程序。在运行它时,我想为4个玩家中的每一个打开一个cmd终端,这样他们每个人都可以在轮到他表演时输入自己的卡片选择 我尝试了很多选项,包括转到项目属性->调试并将命令更改为C++ 从Visual Studio 2017运行MPI应用程序,每个进程位于不同的cmd窗口中,c++,visual-studio,terminal,mpi,C++,Visual Studio,Terminal,Mpi,使用Visual Studio 2017,我尝试运行一个类似于黑桃游戏的MPI应用程序。在运行它时,我想为4个玩家中的每一个打开一个cmd终端,这样他们每个人都可以在轮到他表演时输入自己的卡片选择 我尝试了很多选项,包括转到项目属性->调试并将命令更改为$(MSMPI\u BIN)\mpiexec和命令参数更改为-np 4“$(TargetPath)”-请参阅下面的链接: 但是,除了让4个进程同时运行外,我还打开了一个终端,它对我的任何键盘输入都没有反应 是否有任何方法可以使用Visual S
$(MSMPI\u BIN)\mpiexec
和命令参数更改为-np 4“$(TargetPath)”
-请参阅下面的链接:
但是,除了让4个进程同时运行外,我还打开了一个终端,它对我的任何键盘输入都没有反应
是否有任何方法可以使用Visual Studio调试打开4个终端?还是其他方式?在cmd/bash中运行“mpiexec.exe-np 4 MyExec.exe”可提供与上述相同的结果
提前谢谢我想这是不可能的 我尝试在mpi测试程序上使用
alloconsole()
,每个进程都返回一个错误,因为它认为已经有一个控制台连接到它
在某种程度上,这似乎是合乎逻辑的,因为mpiexec将启动进程,并且每个stdout都将指向相同的输出(文件或控制台),至于stdin,您必须选择哪个进程将处理它(通过manual-stdin选项判断)
这些重定向肯定由流程管理器()管理
正如@Evg所说,根据“黑桃游戏”的典故判断,我认为MPI不是你所需要的。也许更多的unix域套接字。但是它们是处理进程间com()的其他方法。与只运行
mpiexec
相比,它不控制mpiexec
如何运行进程。您希望mpiexec
做一件奇怪的事情。也许,您应该使用IPC的其他方式,而MPI并不是您所需要的。