Package: rmumps 5.2.1-30
rmumps: 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) <doi:10.1137/S0895479899358194> and Amestoy et al. (2006) <doi:10.1016/j.parco.2005.07.004>.
Authors:
rmumps_5.2.1-30.tar.gz
rmumps_5.2.1-30.tar.gz(r-4.5-noble)rmumps_5.2.1-30.tar.gz(r-4.4-noble)
rmumps.pdf |rmumps.html✨
rmumps/json (API)
NEWS
# Install 'rmumps' in R: |
install.packages('rmumps', repos = 'https://cloud.r-project.org') |
Bug tracker:https://github.com/sgsokol/rmumps/issues0 issues
Conda:r-rmumps-5.2.1_22(2025-03-25)
Last updated 10 months agofrom:adae4a799b. Checks:2 OK, 1 NOTE. Indexed: no.
Target | Result | Latest binary |
---|---|---|
Doc / Vignettes | OK | Mar 12 2025 |
R-4.5-linux-x86_64 | OK | Mar 12 2025 |
R-4.4-linux-x86_64 | NOTE | Mar 12 2025 |
Exports:RmumpsRmumps__del_ptrRmumps__get_permutationRmumps__ptr_ijvRmumps__set_mat_ptrRmumps__set_permutationRmumps__solveptrRmumps__tripletRMUMPS_PERMRMUMPS_PERM_AMDRMUMPS_PERM_AMFRMUMPS_PERM_AUTORMUMPS_PERM_METISRMUMPS_PERM_PORDRMUMPS_PERM_QAMDRMUMPS_PERM_SCOTCH
Dependencies:Rcpp
Citation
To cite MUMPS in publications use:
P. R. Amestoy & al. (2001). A Fully Asynchronous Multifrontal Solver Using Distributed Dynamic Scheduling SIAM Journal on Matrix Analysis and Applications, 23(1), 15-41.
P. R. Amestoy & al. (2006). Hybrid scheduling for the parallel solution of linear systems Parallel Computing, 32(2), 136-156.
Corresponding BibTeX entries:
@Article{, title = {A Fully Asynchronous Multifrontal Solver Using Distributed Dynamic Scheduling}, author = {P. R. Amestoy and I. S. Duff and J. Koster and J.-Y. L'Excellent}, journal = {SIAM Journal on Matrix Analysis and Applications}, year = {2001}, volume = {23}, number = {1}, pages = {15--41}, }
@Article{, title = {Hybrid scheduling for the parallel solution of linear systems}, author = {P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and S. Pralet}, journal = {Parallel Computing}, year = {2006}, volume = {32}, number = {2}, pages = {136--156}, }
Readme and manuals
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)
Help Manual
Help page | Topics |
---|---|
Rcpp port of MUMPS library for LU or LDL^t factorization of sparse matrices | rmumps-package rmumps |
Rcpp Exported Class Wrapping MUMPS library | determinant.Rcpp_Rmumps dim.Rcpp_Rmumps ncol.Rcpp_Rmumps nrow.Rcpp_Rmumps print.Rcpp_Rmumps Rcpp_Rmumps-class Rmumps show.Rcpp_Rmumps solve.Rcpp_Rmumps solvet solvet.Rcpp_Rmumps |
Delete via Pointer | Rmumps__del_ptr |
Get Permutation Parameter | Rmumps__get_permutation |
Construct via Triplet Pointers | Rmumps__ptr_ijv |
Set Matrix via Pointer | Rmumps__set_mat_ptr |
Set Permutation Parameter | Rmumps__set_permutation |
Solve via Pointer | Rmumps__solveptr |
Explore via Triplet | Rmumps__triplet |
Exported Constants | RMUMPS_PERM RMUMPS_PERM_AMD RMUMPS_PERM_AMF RMUMPS_PERM_AUTO RMUMPS_PERM_METIS RMUMPS_PERM_PORD RMUMPS_PERM_QAMD RMUMPS_PERM_SCOTCH |