[cctbxbb] New top-level module: fast_linalg

Luc Bourhis luc_j_bourhis at mac.com
Mon Mar 7 01:12:31 PST 2016


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 <nksauter at lbl.gov> 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 <luc_j_bourhis at mac.com <mailto:luc_j_bourhis at mac.com>> 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
> cctbxbb at phenix-online.org <mailto:cctbxbb at phenix-online.org>
> http://phenix-online.org/mailman/listinfo/cctbxbb <http://phenix-online.org/mailman/listinfo/cctbxbb>
> 
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/cctbxbb/attachments/20160307/fedc33cb/attachment.htm>


More information about the cctbxbb mailing list