11.07.2015 Views

Introduction to Sparse Matrices In Scilab - Projects

Introduction to Sparse Matrices In Scilab - Projects

Introduction to Sparse Matrices In Scilab - Projects

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

function u = mysolverTAUCS (N,b)A = scibench_poissonA (N);hchol = taucs_chfact (A);u = taucs_chsolve ( hchol ,b)taucs_chdel ( hchol )endfunctionWe were unable <strong>to</strong> use the TAUCS solver, which makes <strong>Scilab</strong> unstablein this case. This problem was reported in the following bug report :http://bugzilla.scilab.org/show_bug.cgi?id=8824It is straightforward <strong>to</strong> created increasingly large matrices and <strong>to</strong> measurethe time required <strong>to</strong> solve the Poisson equation. The script is provided withinthe demos of the scibench module. The plot in the figure 14 compares thevarious solvers.It is obvious that, in this case, the UMFPACK module is much faster.The fact that we use the pcg function without actually preconditionningthe matrix is an obvious limitation of this benchmark. This is why we workon updating the sparse ILU preconditionners in the following Forge project :http://forge.scilab.org/index.php/p/spilu/The current work is based on the former Scilin project.This benchmark shows that we can solve really large systems of equations.The table in the figure 15 displays the performance measures.For matrices larger than approximately 400, the UMFPACK functionsfails <strong>to</strong> solve the equation because they require more memory than <strong>Scilab</strong>can provide <strong>to</strong> it.--> scibench_poisson (400 , %t , %t , mysolverUMF )!-- error 999umf_lufact : An error occurred :symbolic fac<strong>to</strong>rization : not enough memoryat line 3 of function mysolverUMF called by :at line 95 of function scibench_poisson called by :scibench_poisson (400 , %t , %t , mysolverUMF )We emphasize that the actual size of the matrix does not matter. Whatmatters is the number of nonzero terms in the matrix. For example, withN=500, the matrix is 250000-by-250000 but has only 1 248 000 nonzero entries.32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!