Advanpix vs. Maple – Direct Sparse Solvers Comparison

by Pavel Holoborodko 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.

Advanpix vs. Maple: Sparse LU, 34 digits (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:

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.

{ 0 comments… add one now }

Leave a Comment

Previous post:

Next post: