如果我按如下方式启动使用 MPI 的后台流程:
system("start \"\" cmd /k \"cd <path> && mpiexec -n 1 <exe> &\"");
它工作正常,但整个输出显示在程序末尾的命令提示符中。我想在打印时立即看到输出。我怎么做?请注意,如果我在命令中没有使用mpiexec
,我会在发生输出后正确地获取输出。
样品:
#include <iostream>
#include <windows.h>
#include <mpi.h>
#include <cstdio>
int main(int argc, char* argv[])
{
MPI_Init(&argc, &argv);
printf("test A\n");
Sleep(2000);
printf("test B\n");
Sleep(2000);
printf("test C\n");
Sleep(2000);
MPI_Finalize();
return 0;
}
编辑:在每个print语句修复问题后使用fflush(stdout)
刷新输出(如注释中所述)。但是我想知道是否有其他方法可以解决这个问题,因为这需要在代码中更改数千个打印语句。