Skip to content

MueLu Benchmark

Jonathan Hu edited this page May 15, 2018 · 2 revisions

CMake flags needed to build the benchmark:

  -D Trilinos_ENABLE_MueLu=ON
  -D MueLu_ENABLE_EXAMPLES=ON

If you want to compile the benchmark with Kokkos enabled, then add these configure options:

  -D MueLu_ENABLE_Kokkos_Refactor=ON
  -D Xpetra_ENABLE_Kokkos_Refactor=ON

Path to benchmark source:

The MueLu scaling test is found in packages/muelu/test/scaling/Driver.cpp.

Path to benchmark executable:

  • $BUILD/packages/muelu/test/scaling/MueLu_Driver.exe.

Command line for small test:

mpirun -np 4 MueLu_Driver.exe --nx=250 --ny=250

This will construct and solve a 2D Poisson matrix (5-point stencil, equivalent to central finite-difference discretization) with 62600 rows. The right-hand side is generated by applying the matrix to a random vector. The initial guess is zero. The solver is conjugate gradient from Belos, and the preconditioner is smoothed aggregation multigrid from MueLu.

This benchmark accepts a number of command line options. The most useful are

  --help                                   prints all options and their default values

  --matrixType               string        matrix type to generate: Laplace1D, Laplace2D, Laplace3D, Elasticity2D, Elasticity3D
                                           (default: --matrixType="Laplace2D")
  --matrix                   string        MatrixMarket file containing matrix
                                           (default: --matrix="")
  --rhs                      string        MatrixMarket file containing right hand side
                                           (default: --rhs="")
  --nx                       long long int mesh points in x-direction.
                                           (default: --nx=100)
  --ny                       long long int mesh points in y-direction.
                                           (default: --ny=100)
  --nz                       long long int mesh points in z-direction.
                                           (default: --nz=100)
  --node                     string        node type (serial | openmp | cuda)
                                           (default: --node="")
  --its                      int           maximum number of solver iterations
                                           (default: --its=200)
  --solver                   string        Krylov solver type: (none | cg | gmres | standalone)
                                           (default: --solver="cg")
  --xml                      string        read MueLu parameters from a file
                                           (default: --xml="scaling.xml")
  --timings                  bool          print timings to screen
  --notimings                              (default: --timings)

Suggested scaling study: DESCRIBE WEAK/STRONG

  • mpirun -np 1 EXECUTABLENAME.exe --ADD_COMMAND_LINE_ARGS_HERE
  • mpirun -np 4 ....

Preliminary results:

  • Platform used:
  • Summary or screenshot:
Clone this wiki locally