octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #53140] Solution of a system of linear equatio


From: Marco Caliari
Subject: [Octave-bug-tracker] [bug #53140] Solution of a system of linear equations takes forever and hurts OS performance.
Date: Tue, 27 Feb 2018 14:52:13 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0

Follow-up Comment #24, bug #53140 (project octave):

I think I have a solution now: umfpack_solve performs refinement iterations
after the factorization. The parameter UMFPACK_DEFAULT_IRSTEP is set to 2 in
umfpack.h and can be overwritten with UMFPACK_IRSTEP. The first consequence,
is that W must have length 5*b_nr, and not b_nr (documentation at the end of
umfpack_wsolve.h). This would explain the strange behavior I partially
described in comment #21 (and other strange things not reported). With W of
the right length, no more strange things, but it is not possible to reduce the
cpu time. The only possibility is to disable the refinements, with a 


Control (UMFPACK_IRSTEP) = 0;


before calling UMFPACK_DNAME (solve). If I do that, I have the same cpu time
of a manual factorization and solution. So now, we have to decide:

1) do we want iterative refinements? From comment #17 it seems that matlab
perform them, too. If we want them, I think they should be documented (stable
branch).

2) I would anyhow use wsolve instead of solve, with the right allocation of
the buffers Wi and W (default branch).

3) I would anyhow assemble Bx as described in comment #18 (default branch).

4) I would anyhow set the number of nonzeros in the solution to b_nr*b_nc. I
do not see a reason to set it to nnz(b), see comment #15 (default branch).

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?53140>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]