问题来源:在使用MPI时,将程序并行实现了,运行时需要在dos窗口下输入批处理命令,以完成程序的执行。
如:mpiexec -localroot -n 6 d:/mpi/pro.exe
但每次这样挺麻烦的,就将批处理命令写在bat文件中,需要运行时直接双击运行bat文件即可。
但使用MPI实现的程序是软件功能的一部分,需要在软件使用过程中从软件中进行调用,实现MPI的并行处理,上面的方法就不可行了,上面的方法单独用还可以,但是要将功能集成在软件中,就需要另想办法了。
解决办法:system函数
函数原型:
int system (const char* command);
该函数作用是执行系统命令,system函数是C语言标准库函数,因此在C++中也可以使用,加上头文件stdlib.h。
使用方法:
方法1.
system("mpiexec -localroot -n 3 d:/mpi/pro.exe");
方法2
将批处理命令写入bat文件中,然后将bat文件路径作为system的参数
system("D:\mpi\pro.bat");