mailRe: r24294 - in /branches/disp_spin_speed: lib/dispersion/ns_r1rho_2site.py target_functions/relax_disp.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on June 26, 2014 - 16:59:
Hi,

I have no interest in pursuing this at the moment.

That's no problem.  We have a permanent record here
(http://thread.gmane.org/gmane.science.nmr.relax.scm/22044) for this
issue.  It should be a useful reference for the future.


If numpy should provide a universal function, which is faster,
like einsum is a replacement for dot, for multiple dimension, then we can
have a look.

We will have to wait for a future version I'm afraid.  Probably a very
distant future.  There doesn't seem to be any developers interested in
this problem on the numpy or scipy mailing lists, as far as I can
tell.


But I wont use scipy.

This is best.  It was just a suggestion for understanding the problem
and possible solutions, and more for reading the Scipy code for these
functions.  I.e. just a learning exercise.


The thing I would like more, is to eliminate the looping when doing the
matrix exponential.

I have just completed a test/profiling script, which strides through the
data.
It took it me quite long to grasp the striding thing, but I think it is
worth my time to learn how to access data in any possible way.

We can gain 1.5 in speed ! :-)

On top of the current gains, this will be quite significant.  I can't
help you with the striding concept as I'm not too familiar with it.
This seems similar to pointer arithmetic in C for accessing matrix
data.  Is this essentially collapsing the rank-7 [NE, NS, NM, NO, ND,
x, y] structure into a rank-3 structure and looping over the first
column.  This combined with maybe a Pade approximation instead of the
much slower eigenvalue decomposition method might be the fastest.

Regards,

Edward



Related Messages


Powered by MHonArc, Updated Thu Jun 26 17:40:15 2014