Wrapper for 'MUMPS' Library

Some basic features of 'MUMPS' (Multifrontal Massively Parallel sparse direct Solver) are wrapped in a class whose methods can be used for sequentially solving a sparse linear system (symmetric or not) with one or many right hand sides (dense or sparse). There is a possibility to do separately symbolic analysis, LU (or LDL^t) factorization and system solving. The ordering libraries 'PORD' and 'METIS' are included. 'MUMPS' method was first described in Amestoy et al. (2001) and Amestoy et al. (2006) .


Rcpp Wrapper for MUMPS Library

MUMPS stands for "a MUltifrontal Massively Parallel sparse direct Solver" see more on their official site https://mumps-solver.org/. rmumps bundles MUMPS 5.9.1 (sequential, double precision) with the orderings AMD, AMF, QAMD, PORD and METIS. Currently, it is one of the most competitive direct solvers for sparse matrices. On my CPU (Xenon E5-2609 v2 @ 2.50GHz) I have a speedup ranging from 3 to 16 compared to the default solver from Matrix package. In addition, the precision of the solution is equal or even better than with Matrix.

Example of use:

   # prepare random sparse matrix
   library(Matrix)
   library(rmumps)
   n=2000
   a=Matrix(0, n, n)
   set.seed(7)
   ij=sample(1:(n*n), 15*n)
   a[ij]=runif(ij)
   diag(a)=0
   diag(a)=-rowSums(a)
   a[1,1]=a[1,1]-1
   am=Rmumps$new(a)
   b=as.double(a%*%(1:n)) # rhs for an exact solution vector 1:n
   # following time includes symbolic analysis, LU factorization and system solving
   system.time(x<-am$solve(b))
   bb=2*b
   # this second time should be much shorter
   # as symbolic analysis and LU factorization are already done
   system.time(xx<-am$solve(bb))
   # compare to Matrix corresponding times
   system.time(xm<-solve(a, b))
   system.time(xxm<-solve(a, bb))
   # compare to Matrix precision
   range(x-1:n)  # mumps
   range(xm-1:n) # Matrix
 
   # matrix inversion
   system.time(aminv <- am$inv())
   system.time(ainv <- solve(a)) # the same in Matrix
 
   # clean up by hand to avoid possible interference between gc() and
   # Rcpp object destructor after unloading this namespace
   rm(am)

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("rmumps")

5.9.1-1 by Balasubramanian Narasimhan, 2 days ago


https://mumps-solver.org/, https://github.com/bnaras/rmumps/


Report a bug at https://github.com/bnaras/rmumps/issues


Browse source code at https://github.com/cran/rmumps


Authors: Serguei Sokol [aut] , Balasubramanian Narasimhan [ctb, cph, cre] (C interface for other packages , ABI adapters , vendoring pipeline) , Emmanuel Agullo [ctb] (MUMPS) , Patrick Amestoy [ctb, cph] (MUMPS , AMD) , Maurice Bremond [ctb] (MUMPS) , Alfredo Buttari [ctb] (MUMPS) , Philippe Combes [ctb] (MUMPS) , Marie Durand [ctb] (MUMPS) , Aurelia Fevre [ctb] (MUMPS) , Matthieu Gerest [ctb] (MUMPS) , Abdou Guermouche [ctb] (MUMPS) , Antoine Jego [ctb] (MUMPS) , Guillaume Joslin [ctb] (MUMPS) , Jacko Koster [ctb] (MUMPS) , Jean-Yves L'Excellent [ctb] (MUMPS) , Theo Mary [ctb] (MUMPS) , Pierre-Etienne Polet [ctb] (MUMPS) , Stephane Pralet [ctb] (MUMPS) , Chiara Puglisi [ctb] (MUMPS) , Francois-Henry Rouet [ctb] (MUMPS) , Wissam Sid-Lakhdar [ctb] (MUMPS) , Tzvetomila Slavova [ctb] (MUMPS) , Bora Ucar [ctb] (MUMPS) , Clement Weisbecker [ctb] (MUMPS) , CERFACS [cph] (MUMPS) , CNRS [cph] (MUMPS , rmumps) , ENS Lyon [cph] (MUMPS) , INP Toulouse [cph] (MUMPS) , Inria [cph] (MUMPS) , Mumps Technologies [cph] (MUMPS) , University of Bordeaux [cph] (MUMPS) , Timothy A. Davis [ctb, cph] (AMD , in MUMPS) , Iain S. Duff [ctb, cph] (AMD , in MUMPS) , The University of Tennessee and The University of Tennessee Research Foundation [cph] (LAPACK-derived code in MUMPS) , The University of California Berkeley [cph] (LAPACK-derived code in MUMPS) , The University of Colorado Denver [cph] (LAPACK-derived code in MUMPS) , Juergen Schulze [ctb] (PORD (public domain)) , George Karypis [ctb] (METIS) , Regents of the University of Minnesota [cph] (METIS) , Douglas C. Schmidt [ctb] (glibc qsort , in METIS/GKlib) , Free Software Foundation , Inc. [cph] (glibc code , in METIS/GKlib) , Alexander Chemeris [ctb, cph] (msinttypes , in METIS/GKlib) , Makoto Matsumoto [ctb, cph] (MT19937-64 , in METIS/GKlib) , Takuji Nishimura [ctb, cph] (MT19937-64 , in METIS/GKlib) , INRAE [cph] (rmumps) , INSA [cph] (rmumps)


Documentation:   PDF Manual  


GPL (>= 2) license


Imports Rcpp

Depends on methods

Suggests testthat, Matrix, slam

Linking to Rcpp

System requirements: GNU Make


Imported by Uno.

Depended on by multbxxc, r2sundials.

Suggested by conos, sccore.


See at CRAN