我一直在使用MPI,但我没有经验。所以 我在这里就以下实施的一般结构提出建议。 说,我有
的主要C ++文件MPI_Init(&narg,&arg);
int me,nprocs;
MPI_Comm_rank(MPI_COMM_WORLD,&me);
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
int N = 10;
for (int i=0;i<N;i++) {
//(1)do some stuff in parallel...
//(2)gather results and write an input file for executable
MPI_Barrier(MPI_COMM_WORLD);
//(3)run executable in parallel.
// which is usually run from command line as:
//
// mpirun -np 6 external.exe < input.file
//
MPI_Barrier(MPI_COMM_WORLD);
//(4)gather output from executable, distribute info among processors and keep running
}
MPI_Finalize();
这是(3)我在理解如何操作并且告诉它可以使用多少个处理器时遇到问题。我的困惑是,某些“运行”命令应该可以从单个处理器/实例执行。那么我如何让它工作并让并行可执行文件使用提供给主程序的所有处理器?如果可能的话。
p / s /我在stackoverflow中看到了类似的问题,但是如果可能的话,没有明确的答案。
答案 0 :(得分:0)