Thanks Nick.

Yes I inferred as much but keeping to the small molecule tradition I deal with dense matrices, a realm in which OpenBLAS is the king.

More precisely, I build a dense Jacobian J from which I compute a dense normal matrix J^T J: the computation of J^T J totally dominate runtime and the fastest algorithm is LAPACK SFRK taking advantage of an optimised BLAS level 3. OpenBLAS provides both in an easy to build package, with runtime selection of the code depending on the detected processor. In the context of Olex 2, the latter is a key advantage: we can distribute one library which will optimally run on any Intel processor.

However I do deal with sparse matrices for restraints and constraints, using the hand-made sparse matrix framework in scitbx.sparse, which proved to be very inefficient in places. I fixed that (commits still to come) but seeing you were using Eigen, it is on my todo list to see whether I should move restraints and constraints to Eigen::SparseMatrix instead. I may come back to you with questions then.

Best wishes,

Luc


On 6 Mar 2016, at 21:38, Nicholas Sauter <[email protected]> wrote:

Luc,

Are you also aware that we've implemented sparse Cholesky decomposition by wrapping the Eigen C++ header library?  We use it now within DIALS for true sparse-matrix decomposition.  One modality is that we take a Jacobian expressed in terms of the sparse::matrix data structure that you defined within scitbx, but then we use Eigen to actually solve the normal matrix. 

David Waterman & I can provide more details as needed.

Nick 

Nicholas K. Sauter, Ph. D.
Computer Staff Scientist, Molecular Biophysics and Integrated Bioimaging Division
Lawrence Berkeley National Laboratory
1 Cyclotron Rd., Bldg. 33R0345
Berkeley, CA 94720
(510) 486-5713

On Sun, Mar 6, 2016 at 5:06 AM, Luc Bourhis <[email protected]> wrote:
Hi,

this is an advanced warning for the introduction of a new top-level module named fast_linalg. In a couple of days, I will push it in one go as 25 commits but don’t be scared, nothing is changed outside the top directory fast_linalg, which also means it is not configured by default. Thus there cannot be any disruption but I thought it would be polite to warn all cctbx developers.

The module features the automatic installation and integration of OpenBLAS which I have used to speed up smtbx refinement. I will commit that work later.

Best wishes,

Luc J. Bourhis


_______________________________________________
cctbxbb mailing list
[email protected]
http://phenix-online.org/mailman/listinfo/cctbxbb

_______________________________________________
cctbxbb mailing list
[email protected]
http://phenix-online.org/mailman/listinfo/cctbxbb