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

Run MPI Application from Visual Studio 2017 with each process in a different cmd window

本文关键字:进程 窗口 cmd 2017 Studio Visual 运行 MPI 应用程序      更新时间:2023-10-16

使用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 将启动进程,并且每个标准输出都将定向到相同的输出(文件或控制台(,至于 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(