嗨,我有一个用 C++ 编写的程序,其中有一个或两个函数使用 PETSc。
当我调用这些函数时,这将是使用 PETSc 时的正确方法
1) a)change all MPI_COMM_WORLD to PETSC_COMM_WORLD for my entire program
b)change MPI_Init to PetscInitialize
..
2) 为 petsc 创建一个单独的通信世界并将其传递给函数
MPI_Init(&argc, &argv);
..
//some many line of code
..
MPI_Comm_split(MPI_COMM_WORLD, rank, 0, &PETSC_COMM_WORLD);
petsc_function(PETSC_COMM_WORLD,.....
//some how reverting the comm_split here to continue as normal so all the non petsc functions work
..
3)或者我可以简单地通过使用 MPI_COMM_WORLD 和 Petsc 函数来获得..
4)还是有另一种我不知道的方法?