# Baseline-MG **Repository Path**: yuntiy/baseline-mg ## Basic Information - **Project Name**: Baseline-MG - **Description**: Baseline programs to invoke hypre's multigrids including SMG, PFMG, SysPFMG, and BoomerAMG to solve the same problems as StructMG. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-16 - **Last Updated**: 2025-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Baseline-MG Baseline programs to invoke hypre's multigrids including SMG, PFMG, SysPFMG, and BoomerAMG to solve the same problems as StructMG. - File base\_struct.c invokes SMG and PFMG through Struct interface. - File base\_sstruct.c invokes SysPFMG through SStruct interface. - File base\_IJ.c invokes BoomerAMG through IJ interface. The specific parameters to invoke different multigrids for different problems could be found in these files with calls of HYPRE\_* functions. Dependency: hypre (version 2.25.0) libraries of different precisions. ## Compile Makefile specifies compile and link options for hypre libraries of different precisions on both ARM and X86 platforms. ## Run Similar to StructMG (https://gitee.com/zongy17/smg/blob/master/README.md), tests of baseline programs could be run by the following example commands. - SMG: salloc -N _Node_ --exclusive mpirun --mca io romio321 -rf _rankfile_ _executable_ _case\_name_ _cx_ _cy_ _cz_ _px_ _py_ _pz_ SMG - PFMG: salloc -N _Node_ --exclusive mpirun --mca io romio321 -rf _rankfile_ _executable_ _case\_name_ _cx_ _cy_ _cz_ _px_ _py_ _pz_ PFMG - BoomerAMG: salloc -N _Node_ --exclusive mpirun --mca io romio321 -rf _rankfile_ _executable_ _case\_name_ _cx_ _cy_ _cz_ - SysPFMG: salloc -N _Node_ --exclusive mpirun --mca io romio321 -rf _rankfile_ _executable_ _case\_name_ _cx_ _cy_ _cz_ _px_ _py_ _pz_ SysPFMG where _Node_ is the number of computing nodes, and _rankfile_ is the MPI rankfiles to assign processes and threads' binding, and _cx_, _cy_, and _cz_ are case sizes of three dimensions in a test, and _px_, _py_, and _pz_ are process partisions in three dimensions. These test configurations refer to test\_config.md in the repositories. For both StructMG and baseline programs, processes partition a problem with strictly-balanced loads across them.