| 08f5efcf | 04-May-2016 |
Pieter Ghysels <pghysels@lbl.gov> |
Add interface to STRUMPACK-sparse.
STRUMPACK-sparse is a sparse direct solver and preconditioner (using Hierarchically Semi-Separable matrices), developed at LBNL, released under a BSD license: http
Add interface to STRUMPACK-sparse.
STRUMPACK-sparse is a sparse direct solver and preconditioner (using Hierarchically Semi-Separable matrices), developed at LBNL, released under a BSD license: http://portal.nersc.gov/project/sparse/strumpack/
This commit adds 2 interfaces to STRUMPACK-sparse: one for aij/seq and one for aij/mpi matrices. It also adds a script to the buildsystem to download/compile/install STRUMPACK-sparse.
I can get everything compiled with ./configure --download-strumpack --with-cxx-dialect=C++11 \ --with-openmp --download-scalapack --download-parmetis --download-metis --download-ptscotch (There was an issue compiling STRUMPACK-sparse as a shared library, so it is now always static)
I tested the new code with the src/snes/examples/tutorials/ex5.c example: OMP_NUM_THREADS=2 mpirun -n 2 ./ex5 -da_grid_x 100 \ -da_grid_y 100 \ -pc_type lu -pc_factor_mat_solver_package strumpack_mpi \ -ksp_monitor -mat_strumpack_mpi_matinput DISTRIBUTED \ --sp_mc64job 0 --sp_reordering_method scotch --sp_verbose
The aij/mpi solver is called 'strumpack_mpi', the aij/seq solver is 'strumpack'. All command line options are passed to the STRUMPACK solver, including -h, which prints out the STRUMPACK options.
STRUMPACK-sparse has 3 interfaces: * A sequential/nulti-threaded interface. This one is used with aij/seq matrices by selecting the 'strumpack' solver. * A distributed memory solver with replicated interface. This interface has the same input on every MPI proc (entire matrix and rhs and solution vectors). Select this for aij/mpi, with "-pc_type lu -pc_factor_mat_solver_package strumpack_mpi -mat_strumpack_mpi_matinput GLOBAL" * A fully distributed solver, works with the aij/mpi block-row distributed input matrix directly. Use with: "-pc_type lu -pc_factor_mat_solver_package strumpack_mpi -mat_strumpack_mpi_matinput DISTRIBUTED"
Pieter
show more ...
|