0

我想知道是否有人知道为什么在子通信器上调用 PetscInitialize 可能是有利的?例如,我有一个问题,我在 4 个内核上运行,但其中只有两个需要使用 Petsc。我可以通过设置在仅包括这两个进程的子通信器上调用 PetscInitialize

PETSC_COMM_WORLD=mySubCommunicator

但我不能只初始化它MPI_COMM_WORLD并只在子通信器上调用 Petsc 例程吗?我问的原因是它会简化我的代码来初始化MPI_COMM_WORLD,但我不想因此遭受任何负面后果。感谢您的任何评论。

4

1 回答 1

1

只要您不对PETSC_COMM_WORLD等级子集调用任何集体操作,您应该没问题。我能找到的唯一隐含的函数是PetscMallocDumpPetscMPIDump还有一些PetscLog*。您还必须召集PetscFinalize所有队伍。

于 2016-12-07T16:34:01.443 回答