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. Third part ordering libraries are included and can be used: 'PORD', 'METIS', 'SCOTCH'. '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 http://mumps.enseeiht.fr/. 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.2.1-43 by Serguei Sokol, 5 months ago


http://www.mumps-solver.org/, https://github.com/sgsokol/rmumps/


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


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


Authors: Serguei Sokol [aut, cre] , Emmanuel Agullo [ctb] , Patrick Amestoy [ctb, cph] , Maurice Bremond [ctb] , Alfredo Buttari [ctb] , Philippe Combes [ctb] , Marie Durand [ctb] , Aurelia Fevre [ctb] , Abdou Guermouche [ctb] , Guillaume Joslin [ctb] , Jacko Koster [ctb] , Jean-Yves L'Excellent [ctb] , Stephane Pralet [ctb] , Chiara Puglisi [ctb] , Francois-Henry Rouet [ctb] , Wissam Sid-Lakhdar [ctb] , Tzvetomila Slavova [ctb] , Bora Ucar [ctb] , Clement Weisbecker [ctb] , Juergen Schulze [ctb] , George Karypis [ctb] , Douglas C. Schmidt [ctb] , Isamu Hasegawa [ctb] , Alexander Chemeris [ctb] , Makoto Matsumoto [ctb] , Takuji Nishimura [ctb] , Francois Pellegrini [ctb] , David Goudin [ctb] , Pascal Henon [ctb] , Pierre Ramet [ctb] , Sebastien Fourestier [ctb] , Jun-Ho Her [ctb] , Cedric Chevalier [ctb] , Timothy A. Davis [ctb, cph] , Iain S. Duff [ctb, cph] , John K. Reid [ctb, cph] , Richard Stallman [ctb] , Samuel Thibault [ctb, cph] , CERFACS [cph] , CNRS [cph] , ENS Lyon [cph] , INP Toulouse [cph] , INRIA [cph] , University of Bordeaux [cph] , Regents of the University of Minnesota [cph] , Free Software Foundation , Inc [cph] , Alexander Chemeris [cph] , Makoto Matsumoto [cph] , Takuji Nishimura [cph] , Universite de Bordeaux [cph] , CNRS [cph] , INSA [cph] , INRAE [cph]


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