サブコミュニケーターで PetscInitialize を呼び出すことが有利な理由を誰かが知っているかどうか疑問に思っていましたか? たとえば、4 つのコアで実行しているという問題がありますが、Petsc を使用する必要があるのはそのうちの 2 つだけです。設定することで、これら 2 つのプロセスのみを含むサブコミュニケーターで PetscInitialize を呼び出すことができます。
PETSC_COMM_WORLD=mySubCommunicator
しかし、それを初期化してMPI_COMM_WORLD
、サブコミュニケーターで Petsc ルーチンのみを呼び出すことはできませんか? 私が尋ねている理由は、コードを単純化して で初期化することMPI_COMM_WORLD
ですが、結果として悪影響を被りたくないからです。コメントありがとうございます。