# Advanpix vs. Maple – Direct Sparse Solvers Comparison

by on October 3, 2013

MATLAB doesn’t support sparse matrices computing with high precision.

As a result, we have no other way but compare our performance with famous mathematical packages Maple and Mathematica, which do have support for sparse matrices with arbitrary precision elements.

Table below show timing comparisons of solving sparse linear systems of moderate size (min `1000x1000`) by Advanpix toolbox and `Maple 17` using quadruple precision.

Matrix NameSizeNNZ Advanpix (sec) Maple (sec)Speed Gain (times)
nnc13741374 x 1374 8606 0.2009 20.858103.8
orsreg_12205 x 2205 14133 1.4409 22.94815.9
watt__11856 x 1856 11360 0.6724 649.308965.7
watt__11856 x 1856 11360 0.6723 342.282509.1
lns_39373937 x 3937 25407 1.3501 432.482320.3
lnsp39373937 x 3937 25407 1.2554 433.324345.2
sherman11000 x 1000 3750 0.0686 2.18431.8
sherman21080 x 1080 23094 1.6683 231.724138.9
sherman35005 x 5005 20033 2.0002 335.824167.9
sherman41104 x 1104 3786 0.0583 1.77830.5
sherman53312 x 3312 20793 0.8152 81.15299.5

Our test environment:

• `Core i7-3960X Extreme Edition, 3900 MHz, 64GB, Windows 7 64-bit`.
• `MATLAB R2013a, Multiprecision Computing Toolbox 3.5.5`.
• `Maple 17 64-bit`.
• Maple test script: sp_solver_test_maple.mw.
Note 1. Maple doesn’t have Sparse `QR` nor `LDLT` – so we tested only square asymmetric matrices (Sparse LU).
Note 2. At first we tried to solve all matrices from our test list. Unfortunately `Maple 17` was unable to solve many of them (was running for hours without stop, consuming tons of memory): `e20r0500, bcsstk13, bcsstk14, bcsstk15, bcsstk16, bcsstk17, bcsstk18, s1rmq4m1, s2rmq4m1, s3rmq4m1, s1rmt3m1, s2rmt3m1, s3rmt3m1, s3rmt3m3`, etc.
Note 3. As it turned out, comparison with `Mathematica 9` is not that simple. Main reason is that it doesn’t allow choosing solver method when it deals with high precision matrices (parameter `Method` of `LinearSolve` works only for `double` precision). Documentation is silent on the matter – and it is still unclear what methods it uses.
Some matrices `Mathematica 9` solves very quickly, others make it choke for `1500` seconds or more. We decided to not publish the results in order to be fair.