图划分(Graph Partition&Re-ordering): METIS(5.x)&ParMETIS(4.x)使用实践

图划分(Graph Partition&Re-ordering): METIS(5.x)&ParMETIS(4.x)使用实践

学习METIS&ParMETIS用法:阅读手册和示例程序。


总结

  • METIS主要API说明

    API 说明 备注
    METIS_PartGraphRecursive 输入图数据(Graph Data),使用multilevel-recursive-bisection方法划分图数据 输入CSR格式(xadj,adjncy)
    METIS_PartGraphKway 输入图数据(Graph Data),使用multilevel k-way方法划分图数据 输入CSR格式(xadj,adjncy). 对于比较大数目(partitions)划分,建议使用此种方法
    METIS_PartMeshDual 输入网格数据(FEM/FVM Mesh),根据网格对偶图进行划分 输入mesh格式(eptr,eind),比较适合FVM类型问题
    METIS_PartMeshNodal 输入网格数据(FEM/FVM Mesh),根据网格节点图进行划分 输入mesh格式(eptr,eind),比较适合FEM类型问题
    METIS_NodeND 使用multilevel-nested-dissection算法,计算稀疏矩阵的fill-reducing-ordering 行列交换重排序 输入CSR压缩格式
  • ParMETIS主要API函数说明

图划分(Graph Partition&Re-ordering): METIS(5.x)&ParMETIS(4.x)使用实践_第1张图片

  • 使用情况

    PETSc中使用METIS对稀疏矩阵进行Ordering和Partition; OpenFOAM用METIS对计算区域进行并行划分(decomposePar); SuperLU_dist和MUMPS求解器在进行LU分解之前,会用METIS对稀疏矩阵的列进行重排序(Pc)

你可能感兴趣的:(HPC/MPI,数值计算/数值优化,CFD/OpenFOAM,OpenFOAM)