我正在尝试对一个大问题进行蒙特卡罗模拟,该问题需要对每个样本的矩阵进行特征解。矩阵本身非常大,以至于我希望特征解本身也是平行的。
这可能需要将处理器划分为子组,然后在每个组内并行化此特征解。我正在尝试为此使用 PETSc 和 SLEPC。
我可以进行简单的并行化,但我无法使用这样的子分组。有谁知道,如何做到这一点?
我正在尝试对一个大问题进行蒙特卡罗模拟,该问题需要对每个样本的矩阵进行特征解。矩阵本身非常大,以至于我希望特征解本身也是平行的。
这可能需要将处理器划分为子组,然后在每个组内并行化此特征解。我正在尝试为此使用 PETSc 和 SLEPC。
我可以进行简单的并行化,但我无法使用这样的子分组。有谁知道,如何做到这一点?
如果您知道如何将问题静态划分为子组,您可以尝试将 MPI 进程划分为这些子组,然后为每个子组创建一个 MPI 通信器。大多数 PETSc 和 SLEPc 对象创建例程都将通信器作为参数,因此MPI_COMM_WORLD您可以使用通过分区定义的子通信器来代替使用。