我有一个代码可以计算一些导体中的热传递。一个导体中发生的事情不会影响模型中的其他导体。所以我试图让这些导体的解决方案并行运行,每个处理器采用一组不同的导体。现在,我认为代码可以在一个核心上运行,直到它进入我放置命令的循环:
MPI_INIT
然后在我请求的许多内核上运行这部分代码,然后在命令之后返回在一个内核上运行:
MPI_FINALIZE
遇到。但我看到的是输入文件被两个核心读取(如果我使用 2 个核心),并且所有输出也被打印两次。MPI 不像我想的那样工作吗?如果没有,那么我怎样才能实现我想要的行为?我只希望该代码段的代码在多个内核上运行,而不是在 MPI_INIT 和 MPI_FINALIZE 之外的任何其他子例程或部分代码中运行。