taskrelax - Tasks: task #7807, Speed-up of dispersion models for...

 
 
Show feedback again

task #7807: Speed-up of dispersion models for Clustered analysis

Submitted by:  Troels E. Linnet <tlinnet>
Submitted on:  Fri Jun 6 16:40:34 2014  
 
Should Start On: Fri Jun 6 00:00:00 2014Should be Finished on: Fri Jun 6 00:00:00 2014
Category: relax's source codePriority: 7 - High
Status: In ProgressPercent Complete: 100%
Assigned to: Troels E. Linnet <tlinnet>Open/Closed: Closed
Effort: 100.00

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Wed Jul 23 08:02:26 2014, SVN revision 24670:

Merged revisions 24543,24549-24550,24562,24638,24652-24664,24668 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/trunk

................
r24543 | bugman | 2014-07-16 20:34:10 +0200 (Wed, 16 Jul 2014) | 3 lines

Added the missing timing module to the relax library package _all_ list.
................
r24549 | bugman | 2014-07-17 14:56:24 +0200 (Thu, 17 Jul 2014) | 5 lines

Removed the line wrapping in the epydoc parameter section of the optimisation function docstrings.

This is for the pipe_control.minimise module.
................
r24550 | bugman | 2014-07-17 14:57:01 +0200 (Thu, 17 Jul 2014) | 3 lines

More docstring line wrapping removal from pipe_control.minimise.
................
r24562 | bugman | 2014-07-18 10:58:56 +0200 (Fri, 18 Jul 2014) | 7 lines

Bug fix for the parameter units descriptions.

This only affects a few rare parameters. The specific analysis API parameter object units() method
was incorrectly checking if the units value is a function - it was checking the parameter conversion
factor instead.
................
r24638 | bugman | 2014-07-22 17:06:47 +0200 (Tue, 22 Jul 2014) | 6 lines

Modified the align_tensor.init user function so that the parameters are now optional.

This allows alignment tensors to be initialised without specifying the parameter values for that
tensor.
................
r24652 | bugman | 2014-07-22 18:37:02 +0200 (Tue, 22 Jul 2014) | 3 lines

Initialized merge tracking via "svnmerge" with revisions "1-23718" from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed
................
r24653 | bugman | 2014-07-22 18:50:50 +0200 (Tue, 22 Jul 2014) | 348 lines

Merged revisions 23722-23742 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23722 | tlinnet | 2014-06-07 21:43:16 +0200 (Sat, 07 Jun 2014) | 6 lines

Modified profiling script to have different number of NCYC points per frequency.

This is to complicate the data, so any errournous reshaping of data is discovered.
It is expected, that experiments can have different number of NCYC points per spectrometer frequency.

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23723 | tlinnet | 2014-06-07 21:43:19 +0200 (Sat, 07 Jun 2014) | 55 lines

[...]

[...] Initial try to alter the target function calc_CR72_chi2.

[...]

[...] This is the first test to restructure the arrays, to allow for higher dimensional computation.

[...] All numpy arrays have to have same shape to allow to multiply together.

[...] The dimensions should be [ei][si][mi][oi][di]. [Experiment][spins][spec. frq][offset][disp points].

[...] This is complicated with number of disp point can change per spectrometer frequency.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] This implementation brings a high overhead.

[...] The first test shows no winning of time.

[...] The creation of arrays takes all the time.

[...]

[...] Checked on MacBook Pro

[...] 2.4 GHz Intel Core i5

[...] 8 GB 1067 Mhz DDR3 RAM.

[...] Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

[...]

[...] Timing for:

[...] 3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15)

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20)

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22)

[...] iterations of function call: 1000

[...]

[...] Timed for simulating 1 or 100 clustered spins.

[...]

[...] For TRUNK

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 3000 0.267 0.000 0.313 0.000 cr72.py:100(r2eff_CR72)

[...] 1000 0.056 0.000 0.434 0.000 relax_disp.py:456(calc_CR72_chi2)

[...] 3000 0.045 0.000 0.061 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 300000 26.315 0.000 30.771 0.000 cr72.py:100(r2eff_CR72)

[...] 1000 5.498 0.005 42.660 0.043 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 4.438 0.000 6.021 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 19013 0.278 0.000 0.278 0.000 {numpy.core.multiarray.array}

[...] 1000 0.191 0.000 0.777 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 1000 0.147 0.000 0.197 0.000 cr72.py:101(r2eff_CR72)

[...] 3000 0.044 0.000 0.061 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1504904 25.215 0.000 25.215 0.000 {numpy.core.multiarray.array}

[...] 1000 17.261 0.017 51.180 0.051 relax_disp.py:457(calc_CR72_chi2)

[...] 300000 4.637 0.000 6.310 0.000 chi2.py:32(chi2)

[...] ........

[...] r23724 | tlinnet | 2014-06-07 21:43:21 +0200 (Sat, 07 Jun 2014) | 4 lines

[...]

[...] Temporary changed the lib/dispersion/cr72.py function to unsafe state.

[...]

[...] This change turns-off all the safety measures, since they have to be re-implemented

[...] for higher dimensional structures.

[...] ........

[...] r23725 | tlinnet | 2014-06-07 22:36:00 +0200 (Sat, 07 Jun 2014) | 71 lines

[...]

[...] Altered profiling script to report cumulative timings and save to temporary files.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] This indeed shows that the efficiency has gone down:

[...]

[...] -----

[...]

[...] Checked on MacBook Pro

[...] 2.4 GHz Intel Core i5

[...] 8 GB 1067 Mhz DDR3 RAM.

[...] Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

[...]

[...] Timing for:

[...] 3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15)

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20)

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22)

[...] iterations of function call: 1000

[...]

[...] Timed for simulating 1 or 100 clustered spins.

[...]

[...] For TRUNK

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.434 0.434 :1()

[...] 1 0.001 0.001 0.434 0.434 pf:354(single)

[...] 1000 0.002 0.000 0.432 0.000 pf:340(calc)

[...] 1000 0.007 0.000 0.429 0.000 relax_disp.py:908(func_CR72_full)

[...] 1000 0.054 0.000 0.416 0.000 relax_disp.py:456(calc_CR72_chi2)

[...] 3000 0.256 0.000 0.300 0.000 cr72.py:100(r2eff_CR

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 42.035 42.035 :1()

[...] 1 0.002 0.002 42.035 42.035 pf:378(cluster)

[...] 1000 0.004 0.000 41.957 0.042 pf:340(calc)

[...] 1000 0.011 0.000 41.953 0.042 relax_disp.py:908(func_CR72_full)

[...] 1000 5.378 0.005 41.928 0.042 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 25.942 0.000 30.276 0.000 cr72.py:100(r2eff_CR72)

[...] 300000 4.362 0.000 5.903 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.792 0.792 :1()

[...] 1 0.001 0.001 0.792 0.792 pf:354(single)

[...] 1000 0.002 0.000 0.789 0.001 pf:340(calc)

[...] 1000 0.011 0.000 0.787 0.001 relax_disp.py:966(func_CR72_full)

[...] 1000 0.187 0.000 0.769 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 26013 0.290 0.000 0.290 0.000 {numpy.core.multiarray.array}

[...] 1000 0.147 0.000 0.198 0.000 cr72.py:101(r2eff_CR72)

[...] 2001 0.002 0.000 0.086 0.000 numeric.py:167(asarray)

[...] 3000 0.045 0.000 0.062 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 46.821 46.821 :1()

[...] 1 0.002 0.002 46.821 46.821 pf:378(cluster)

[...] 1000 0.004 0.000 46.744 0.047 pf:340(calc)

[...] 1000 0.017 0.000 46.740 0.047 relax_disp.py:966(func_CR72_full)

[...] 1000 15.422 0.015 46.708 0.047 relax_disp.py:457(calc_CR72_chi2)

[...] 1511904 23.475 0.000 23.475 0.000 {numpy.core.multiarray.array}

[...] 300000 4.175 0.000 5.668 0.000 chi2.py:32(chi2)

[...] 2001 0.004 0.000 4.804 0.002 numeric.py:167(asarray)

[...] 1000 0.010 0.000 2.438 0.002 fromnumeric.py:1774(amax)

[...] 1000 0.006 0.000 2.428 0.002 fromnumeric.py:32(_wrapit)

[...] 300000 0.353 0.000 1.493 0.000 fromnumeric.py:1379(sum)

[...] 1000 1.281 0.001 1.444 0.001 cr72.py:101(r2eff_CR72)

[...] ........

[...] r23726 | tlinnet | 2014-06-07 23:18:15 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Added print out of chi2 to profile script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23727 | tlinnet | 2014-06-07 23:18:18 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Moved the creation of special numpy structures outside target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23728 | tlinnet | 2014-06-08 13:14:34 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Modified profiling script to calculate correct values when setting up R2eff values.

[...]

[...] This is to test, that the return of chi2 gets zero.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23729 | tlinnet | 2014-06-08 13:14:36 +0200 (Sun, 08 Jun 2014) | 31 lines

[...]

[...] Removing looping over exp and offset indicies in calc_chi2. They are always 0 anyway.

[...]

[...] This brings a little speed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] ----

[...] Profiling.

[...]

[...] 1000 iterations

[...] 100 spins

[...] 3 sfrq

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58.]))

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78.]))

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))

[...] ('chi2 cluster:', 0.0)

[...]

[...] TRUNK

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 5.221 0.005 53.578 0.054 relax_disp.py:456(calc_CR72_chi2)

[...]

[...] BEFORE

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 14.871 0.015 43.084 0.043 relax_disp.py:494(calc_CR72_chi2)

[...]

[...] AFTER removing looping over exp and offset indicies. They are always 0.

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 12.831 0.013 38.248 0.038 relax_disp.py:494(calc_CR72_chi2)

[...] ........

[...] r23730 | tlinnet | 2014-06-08 13:14:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] In profiling script, moved up the calculation of values one level.

[...]

[...] This is to better see the output of the profiling iterations for cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23731 | tlinnet | 2014-06-08 19:48:23 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Fix for calculation of the larmor frequency per spin in profiling script.

[...]

[...] The frq loop should also be up-shifted.

[...] It was now extracted as 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23732 | tlinnet | 2014-06-08 19:48:25 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-inserted safety checks in lin/dispersion/cr72.py file.

[...]

[...] This is re-inserted for the rank_1 cases.

[...]

[...] This makes the unit-tests pass again.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23733 | tlinnet | 2014-06-08 19:48:27 +0200 (Sun, 08 Jun 2014) | 8 lines

[...]

[...] Important fix for extracting the correct shape to create new arrays.

[...]

[...] If using just one field, or having the same number of dispersion points, the shape would extend to the dispersion number.

[...] It would report [ei][si][mi][oi][di] when calling ndarray.shape.

[...]

[...] Shape always has to be reported as: [ei][si][mi][oi].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23734 | tlinnet | 2014-06-08 19:48:29 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Made it easier to switch between single and cluster reporting in profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23735 | tlinnet | 2014-06-08 19:48:31 +0200 (Sun, 08 Jun 2014) | 9 lines

[...]

[...] Important fix for the creation of the multi dimensional pA numpy array.

[...]

[...] It should be created as numpy.zeros([ei][si][mi][oi]) instead of numpy.ones([ei][si][mi][oi]).

[...]

[...] This allows for rapid testing of all dimensions with np.allclose(pA, numpy.ones(dw.shape)).

[...] pA can have missing filled out values, when the number of dispersion points are different

[...] per spectrometer frequency.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23736 | tlinnet | 2014-06-08 19:48:33 +0200 (Sun, 08 Jun 2014) | 18 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for one field.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23737 | tlinnet | 2014-06-08 19:48:35 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-implemented safety checks in lib/dispersion/cr72.py.

[...]

[...] This is now implemented for both rank-1 float array and of higher dimensions.

[...]

[...] This makes the unit tests pass for multi dimensional computing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23738 | tlinnet | 2014-06-08 19:48:37 +0200 (Sun, 08 Jun 2014) | 17 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for three fields.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23739 | tlinnet | 2014-06-08 19:48:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Changed that special numpy structure is also created for "CR72".

[...]

[...] This makes most system tests pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23740 | tlinnet | 2014-06-08 22:22:22 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Critical fix for the slicing of values in target function.

[...]

[...] This makes system test: Relax_disp.test_sod1wt_t25_to_cr72 pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23741 | tlinnet | 2014-06-08 22:22:24 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Added self.has_missing keyword in initialization of the Dispersion class.

[...]

[...] This is to test once, per spin or cluster.

[...] This saves a looping over the dipsersion points, when collection the data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23742 | tlinnet | 2014-06-08 22:22:26 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Created multi dimensional error and value numpy arrays.

[...]

[...] This is to calculate the chi2 sum much faster.

[...] Reordered the loop over missing data points, so it is only iniatiated if missing points is detected.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...]................

[...] r24654 | bugman | 2014-07-22 18:52:58 +0200 (Tue, 22 Jul 2014) | 118 lines

[...]

[...] Merged revisions 23745-23752,23754-23758 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ........

[...] r23745 | tlinnet | 2014-06-08 23:44:44 +0200 (Sun, 08 Jun 2014) | 8 lines

[...]

[...] Swith the looping from spin->frq to frq->spin.

[...]

[...] Since the number of dispersion points are the same for all spins, this

[...] allows to move the calculation of pA and kex array one level up.

[...]

[...] This saves alot of computation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23746 | tlinnet | 2014-06-08 23:44:45 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Changed all the creation of special numpy arrays to be of float64 type.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23747 | tlinnet | 2014-06-08 23:54:41 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Moved the data filling of special numpy array errors and values, to initialization of Dispersion class.

[...]

[...] These values does not change, and can safely be stored outside.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23748 | tlinnet | 2014-06-08 23:56:36 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Just a tiny little more speed, by removing temporary storage of chi2 calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23749 | tlinnet | 2014-06-09 00:09:59 +0200 (Mon, 09 Jun 2014) | 25 lines

[...]

[...] Changed all calls to numpy np.X functions to just the numpy function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] Timing is now showing, 17% loss per single spin, but but 277 % gain on 100 spin.

[...] 3 fields, 1000 iterations.

[...] 1 spin

[...] 1 0.000 0.000 0.677 0.677 :1()

[...] 1 0.001 0.001 0.677 0.677 pf:419(single)

[...] 1000 0.002 0.000 0.671 0.001 pf:405(calc)

[...] 1000 0.009 0.000 0.669 0.001 relax_disp.py:979(func_CR72_full)

[...] 1000 0.102 0.000 0.655 0.001 relax_disp.py:507(calc_CR72_chi2)

[...] 1003 0.160 0.000 0.365 0.000 cr72.py:101(r2eff_CR72)

[...] 23029 0.188 0.000 0.188 0.000 {numpy.core.multiarray.array}

[...] 4003 0.119 0.000 0.182 0.000 numeric.py:1862(allclose)

[...]

[...] 100 spin

[...] 1 0.000 0.000 19.783 19.783 :1()

[...] 1 0.002 0.002 19.783 19.783 pf:441(cluster)

[...] 1000 0.004 0.000 19.665 0.020 pf:405(calc)

[...] 1000 0.013 0.000 19.661 0.020 relax_disp.py:979(func_CR72_full)

[...] 1000 6.541 0.007 19.634 0.020 relax_disp.py:507(calc_CR72_chi2)

[...] 916108 11.127 0.000 11.127 0.000 {numpy.core.multiarray.array}

[...] 1300 1.325 0.001 2.026 0.002 cr72.py:101(r2eff_CR72)

[...] 4300 0.495 0.000 0.634 0.000 numeric.py:1862(allclose)

[...] ........

[...] r23750 | tlinnet | 2014-06-09 00:49:14 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23751 | tlinnet | 2014-06-09 00:49:15 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Changed all calls to numpy np.X functions to just the numpy function in lib/dispersion/cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23752 | tlinnet | 2014-06-09 00:49:18 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23754 | tlinnet | 2014-06-09 19:46:17 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Made copies of numpy arrays instead of creating from new.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23755 | tlinnet | 2014-06-09 19:46:19 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Added a self.frqs_a as a multidimensional numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23756 | tlinnet | 2014-06-09 19:46:20 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Small fix for the indicies to the errors and values numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23757 | tlinnet | 2014-06-09 19:46:22 +0200 (Mon, 09 Jun 2014) | 5 lines

[...]

[...] Lowered the number of iterations to the profiling scripts.

[...]

[...] This is to use the profiling script as bug finder.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23758 | tlinnet | 2014-06-09 19:46:25 +0200 (Mon, 09 Jun 2014) | 7 lines

[...]

[...] Moved the calculation of dw_frq out of spin and spectrometer loop.

[...]

[...] This is done by having a special 1/0 spin numpy array, which turns on or off the values in the numpy array multiplication.

[...]

[...] The multiplication needs to first axis expand dw, and then tile the arrays according to the numpy structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...]................

[...] r24655 | bugman | 2014-07-22 18:56:51 +0200 (Tue, 22 Jul 2014) | 543 lines

[...]

[...] Merged revisions 23760-23770,23787-23789,23791-23806,23813-23855 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ................

[...] r23760 | tlinnet | 2014-06-10 01:01:49 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Moved the calculation of pA and kex out off all loopes.

[...]

[...] This was done by having two special 1/0 spin structure arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23761 | tlinnet | 2014-06-10 01:01:51 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed dw_frq_a numpy array, as it was not necessary.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23762 | tlinnet | 2014-06-10 01:01:53 +0200 (Tue, 10 Jun 2014) | 6 lines

[...]

[...] Removed all looping over spin and spectrometer frequency.

[...]

[...] This is the last loop!

[...] Wuhu.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23763 | tlinnet | 2014-06-10 01:01:55 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Reordered arrays for beauty of code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23764 | tlinnet | 2014-06-10 01:01:57 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Made the back_calc array be initiated as copy of the values array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23765 | tlinnet | 2014-06-10 01:01:59 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Small edit to profiling script, to help bug finding.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23766 | tlinnet | 2014-06-10 01:02:00 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fixed that arrays are correctly initiated with one or zero values.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23767 | tlinnet | 2014-06-10 01:02:02 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Very important fix, for only replacing part of data array which have Nan values.

[...]

[...] Before, all values were replaced, which was wrong.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23768 | tlinnet | 2014-06-10 01:02:04 +0200 (Tue, 10 Jun 2014) | 8 lines

[...]

[...] Needed to increase the relative tolerance when testing if pA array is 1.

[...]

[...] Now system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis passes.

[...]

[...] Also added some comments lines, to prepare for mask replace of values.

[...] For example if only some of etapos values should be replaced.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23769 | tlinnet | 2014-06-10 01:02:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Restored profiling script to normal.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23770 | tlinnet | 2014-06-10 01:21:14 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Made the logic and comments much clearer about how to reshape, expand axis, and tile numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23787 | tlinnet | 2014-06-10 16:51:30 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed line "# -*- coding: utf-8 -*-" which was automatically inserted by new python code editor.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23788 | tlinnet | 2014-06-10 16:51:33 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Implemented a masked array search for where "missing" array is equal 1.

[...]

[...] This makes it possible to replace all values with this mask, from the value array.

[...]

[...] This eliminates the last loops over the missing values.

[...]

[...] It took over 4 hours to figure out, that the mask should be called with mask.mask,

[...] to return the same fulls structure,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23789 | tlinnet | 2014-06-10 16:51:35 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Yet another small improvement for the profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23791 | tlinnet | 2014-06-10 18:40:55 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of pA.

[...]

[...] pA is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23792 | tlinnet | 2014-06-10 18:40:59 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of pA in lib function, when pA is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23793 | tlinnet | 2014-06-10 18:41:01 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so pA is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23794 | tlinnet | 2014-06-10 18:41:03 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of kex.

[...]

[...] kex is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23795 | tlinnet | 2014-06-10 18:41:05 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of kex in lib function, when kex is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23796 | tlinnet | 2014-06-10 18:41:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so kex is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23797 | tlinnet | 2014-06-10 18:41:08 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Important fix for replacing values if eta_pos > 700 is violated.

[...]

[...] This fixes systemtest: Relax_disp.test_sod1wt_t25_to_cr72, which failed after making kex to a numpy float.

[...]

[...] The trick is to make a numpy mask which stores the position where to replace the values.

[...] Then replace the values just before last return.

[...]

[...] This makes sure, that not all values are changed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23798 | tlinnet | 2014-06-10 18:41:10 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Increased the kex speed to 1e7 in clustered unit tests cases.

[...]

[...] This is to demonstrate where there will be no excange.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23799 | tlinnet | 2014-06-10 18:54:28 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Added a multi-dimensional numpy array chi2 value calculation function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23800 | tlinnet | 2014-06-10 18:54:31 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Called the newly created chi2 function to calculate for multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23801 | tlinnet | 2014-06-10 19:11:07 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Renamed chi2_ND to chi2_rankN.

[...]

[...] This is a better name for representing multiple axis calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23802 | tlinnet | 2014-06-10 20:58:15 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Made special ei, si, mi, and oi numpy structure array.

[...]

[...] This is for rapid speed-up of numpy array creation in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23803 | tlinnet | 2014-06-10 20:58:19 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Code clean-up in lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23804 | tlinnet | 2014-06-10 20:58:22 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replace np.tile with tile.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23805 | tlinnet | 2014-06-10 20:58:24 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replaced self.spins_a with self.disp_struct.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23806 | tlinnet | 2014-06-10 21:06:12 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed un-used self structures in __init__of class.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23813 | tlinnet | 2014-06-11 08:28:25 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made iinitialisation structures for dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23814 | tlinnet | 2014-06-11 08:28:27 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Initial try to reshape dw faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23815 | tlinnet | 2014-06-11 08:40:38 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Switched to use self.ei, self.si, self.mi, self.oi, self.di.

[...]

[...] This is for better reading of code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23816 | tlinnet | 2014-06-11 08:40:40 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment out the sys.exit(), which would make the code fail for wrong calculation of dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23817 | tlinnet | 2014-06-11 08:46:00 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Copied profiling script for CPMG model CR72 to R1rho DPL94 model.

[...]

[...] The framework of the script will be the same, but the data a little different.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23818 | tlinnet | 2014-06-11 10:08:02 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Started converting profiling script to DPL94.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23819 | tlinnet | 2014-06-11 10:08:05 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND).

[...]

[...] These numbers represents the maximum number of dimensions, instead of index.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23820 | tlinnet | 2014-06-11 10:08:06 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Added the ei index, when creating the first dw_mask.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23821 | tlinnet | 2014-06-11 10:08:08 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Reordered how the structures dw init structures are created.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23822 | tlinnet | 2014-06-11 10:08:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clearing the dw_struct before calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23823 | tlinnet | 2014-06-11 10:16:27 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Started using the new way of constructing dw.

[...]

[...] This is for running system tests.

[...]

[...] Note, somewhere in the dw array, the frequencies will be different between the two implementations.

[...] But apparently, this does not matter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23824 | tlinnet | 2014-06-11 10:46:42 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Inserted temporary method to switch for profiling.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23825 | tlinnet | 2014-06-11 10:46:44 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] First try to speed-up the old dw structure calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23826 | tlinnet | 2014-06-11 13:12:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Simplified calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23827 | tlinnet | 2014-06-11 13:12:14 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Yet another try to implement a fast dw structure method.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23828 | tlinnet | 2014-06-11 13:12:16 +0200 (Wed, 11 Jun 2014) | 6 lines

[...]

[...] Implemented the fastest way to calculate the dw structure.

[...]

[...] This uses the numpy ufunc multiply.outer function to create the outer array, and then multiply

[...] with the frqs_structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23829 | tlinnet | 2014-06-11 13:12:18 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Renamed dw temporary structure to generic structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23830 | tlinnet | 2014-06-11 13:12:20 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Restructured the calculation of R20A and R20B to the most efficient way.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23831 | tlinnet | 2014-06-11 13:12:21 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made the lib/cr72.py to a numpy multi dimensional numpy array calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23832 | tlinnet | 2014-06-11 14:05:35 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Changed the catching when dw is zero, to use masked array.

[...]

[...] Implemented backwards compability with unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23833 | tlinnet | 2014-06-11 14:05:37 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Bugfix for testing if kex is zero.

[...]

[...] It was tested if kex was equal 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23834 | tlinnet | 2014-06-11 14:54:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Implemented masked replacement if fact is less that 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23835 | tlinnet | 2014-06-11 14:55:31 +0200 (Wed, 11 Jun 2014) | 1 line

[...]

[...] Replaced isnan mask with function that catches all invalid values.

[...] ................

[...] r23836 | tlinnet | 2014-06-11 14:55:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clean up of comment lines.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23837 | tlinnet | 2014-06-11 14:55:34 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Removed the masked replacement if fact is less than 1.0.

[...]

[...] This is very strange, but otherwise system test:

[...] Relax_disp.test_hansen_cpmg_data_missing_auto_analysis

[...]

[...] would fail.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23838 | tlinnet | 2014-06-11 15:09:01 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Removed the slow allclose() function to test if R20A and R20B is equal.

[...]

[...] It is MUCH faster to just subtract and check sum is not 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23839 | tlinnet | 2014-06-11 15:25:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Replaced the temporary variable R2eff with back_calc, and used numpy subtract to speed up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23840 | tlinnet | 2014-06-11 15:25:34 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Made the lib function into a pure numpy array calculation.

[...]

[...] This requires, that r20a, r20b and dw has same dimension as the dispersion points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23841 | tlinnet | 2014-06-11 15:25:36 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changes too unit tests, so data is sent to target function in numpy array format.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23842 | tlinnet | 2014-06-11 16:19:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed an the creation of a unnessary structure bu using numpy multiply.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23843 | tlinnet | 2014-06-11 16:19:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Moved the mask which finds where to replace values into the _init_ function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23844 | tlinnet | 2014-06-11 16:43:17 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Replaced the multiplcation with the disp structure, to a replacement with a mask.

[...]

[...] My timings are varying at my computer, so results are within the very same timing.

[...]

[...] But for reading the code, having two masks, is essential better.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] ................

[...] r23846 | tlinnet | 2014-06-11 17:14:09 +0200 (Wed, 11 Jun 2014) | 25 lines

[...]

[...] Reverted r23845-r23844 as this was using a wrong commit message.

[...]

[...] The command used was:

[...] svn merge -r23845:23844 .

[...]

[...] ........

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] ........

[...] ................

[...] r23847 | tlinnet | 2014-06-11 17:15:03 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 to B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23848 | tlinnet | 2014-06-11 19:37:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for the B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23849 | tlinnet | 2014-06-11 19:37:40 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Modified model B14 lib file to faster numpy multidimensional mode.

[...]

[...] The implementations comes almost directly from the CR72 model file.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23850 | tlinnet | 2014-06-11 19:37:42 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Reverted the use of the mask "mask_set_blank".

[...]

[...] It did not work, and many system tests started failing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23851 | tlinnet | 2014-06-11 19:37:43 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed the target function to handle the B14 model for faster numpy computation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23852 | tlinnet | 2014-06-11 19:37:45 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed unit test for B14 to match numpy input requirement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23853 | tlinnet | 2014-06-11 20:43:45 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Added additional tests in b14, when math errors can occur.

[...]

[...] This is very easy with a conditional masked search in arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23854 | tlinnet | 2014-06-11 20:43:47 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment fix for finding when E0 is above 700 in lib function of B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23855 | tlinnet | 2014-06-11 20:47:29 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed use of "asarray", since the variables are already arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...]................

[...] r24656 | bugman | 2014-07-22 19:04:10 +0200 (Tue, 22 Jul 2014) | 615 lines

[...]

[...] Merged revisions 23864-23877,23880,23888-23934,23937-23942,23946 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ........

[...] r23864 | tlinnet | 2014-06-12 12:12:58 +0200 (Thu, 12 Jun 2014) | 14 lines

[...]

[...] Changed target function for model CR72.

[...]

[...] To CR72 is now also the input of the parameters of R20A, R20B and dw.

[...] dw is tested for zero, to return flat lines.

[...] It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

[...]

[...] This is for speed-up.

[...]

[...] R20A and R20B is also subtracted, to see if the full model should be used.

[...] In the same way, it is faster to subtract the smaller array.

[...]

[...] These small tricks are expected to give 5-10 pct. speeed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23865 | tlinnet | 2014-06-12 12:12:59 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Made the lib function of CR72 accept the R20A, R20B and dw of the original array.

[...]

[...] This is for speed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23866 | tlinnet | 2014-06-12 12:13:01 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed unit-tests, to send in the original R20A, R20B and dw_orig to the testing of the lib function CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23867 | tlinnet | 2014-06-12 12:13:03 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed profiling script to send R20A, R20B and dw, as original parameters to the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23868 | tlinnet | 2014-06-12 12:23:18 +0200 (Thu, 12 Jun 2014) | 11 lines

[...]

[...] Changed target function for model B14.

[...]

[...] To B14 now also send the input of the original parameters dw.

[...] dw is tested for zero, to return flat lines.

[...] It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

[...]

[...] This is for speed-up.

[...]

[...] These small tricks are expected to give 5-10 pct. speeed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23869 | tlinnet | 2014-06-12 12:23:20 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Made the lib function of B14 accept dw of the original array.

[...]

[...] This is for speed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23870 | tlinnet | 2014-06-12 12:23:21 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed unit-tests, to send in the original dw_orig to the testing of the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23871 | tlinnet | 2014-06-12 12:23:23 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed profiling script to send dw as original parameters to the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23872 | tlinnet | 2014-06-12 12:31:42 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 model to TSMFK01 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23873 | tlinnet | 2014-06-12 13:18:56 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Indention fix in cr72.py and b14.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23874 | tlinnet | 2014-06-12 13:18:58 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified profiling script to be used for model TSMFK01.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23875 | tlinnet | 2014-06-12 13:19:00 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified target function for model TSMFK01, to send in dw as original parameter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23876 | tlinnet | 2014-06-12 13:19:02 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified lib function for model TSMFK01 to accept dw_orig as input and replaced functions to find math domain errors into maske replacements.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23877 | tlinnet | 2014-06-12 13:19:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Made unit tests for model TSMFK01 send in R20A and dw as a numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23880 | tlinnet | 2014-06-12 13:56:12 +0200 (Thu, 12 Jun 2014) | 32 lines

[...]

[...] Large increase in speed for model TSMFK01 by changing target functions to use multidimensional numpy arrays in calculation.

[...]

[...] This is done by restructuring data into multidimensional arrays of dimension [NE][NS][NM][NO][ND], which are

[...] number of spins, number of magnetic field strength, number of offsets, maximum number of dispersion point.

[...]

[...] The speed comes from using numpy ufunc operations.

[...]

[...] The new version is 2.4X as fast per spin calculation, and 54X as fast for clustered analysis.

[...]

[...] The different in timings for 3 spectrometer frequencies, calculated for 1 spin or 100 clustered spins with 1000 iterations are:

[...]

[...] ----

[...] VERSION 3.2.2

[...] ----

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.262 0.262 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 25.391 25.391 :1()

[...] ----

[...] New version

[...] ---

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.111 0.111 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.468 0.468 :1()

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23888 | tlinnet | 2014-06-12 20:07:59 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Replacing math domain checking in model DPL94, with masked array replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23889 | tlinnet | 2014-06-12 20:08:01 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Fix for import missing error in lib function dpl94.

[...]

[...] Needed to import numpy any() function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23890 | tlinnet | 2014-06-12 20:08:03 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] First try to speed up model DPL94.

[...]

[...] This has not succeded, since systemtest: Relax_disp.test_dpl94_data_to_dpl94 sti?\195?\131ll fails.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23891 | tlinnet | 2014-06-12 20:08:06 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Trying to move some of the structures into its own part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23892 | tlinnet | 2014-06-12 20:08:08 +0200 (Thu, 12 Jun 2014) | 7 lines

[...]

[...] Fix for forgetting to multiply frqs to power 2.

[...]

[...] This was found by inspecting all print out before and after implementation.

[...]

[...] New implementation of DPL94 now passes all system and unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23893 | tlinnet | 2014-06-12 20:08:10 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the expansion of the R1 structure out of the for loops.

[...]

[...] This is to speed-up the _init_ of the class of the target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23894 | tlinnet | 2014-06-12 20:35:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the packing of errors and values out of for loop in the _init_ class of target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23895 | tlinnet | 2014-06-12 20:35:06 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the multi dimensional expansion of inv_relax_times out of for loop.

[...]

[...] This can be done for all structures, which does not have missing points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23896 | tlinnet | 2014-06-12 20:35:08 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] For inv_relax_times, expanded one axis, and tiled up to NR spins, before reshaping and blowing up to full structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23897 | tlinnet | 2014-06-12 20:35:10 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the expansion of frqs out of for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23898 | tlinnet | 2014-06-12 23:11:38 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Documentation fix for description of input arrays to lib functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23899 | tlinnet | 2014-06-13 07:20:57 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Converted TAP03 model to use multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23900 | tlinnet | 2014-06-13 07:21:00 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Made dw in unit tests of TAP03 be of numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?78

(Browse SVN revision 24670)

Edward d Auvergne <bugman>
Project Administrator
Wed Jul 23 07:59:05 2014, SVN revision 24669:

Merged revisions 24652-24664,24668 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/trunk

................
r24652 | bugman | 2014-07-22 18:37:02 +0200 (Tue, 22 Jul 2014) | 3 lines

Initialized merge tracking via "svnmerge" with revisions "1-23718" from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed
................
r24653 | bugman | 2014-07-22 18:50:50 +0200 (Tue, 22 Jul 2014) | 348 lines

Merged revisions 23722-23742 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23722 | tlinnet | 2014-06-07 21:43:16 +0200 (Sat, 07 Jun 2014) | 6 lines

Modified profiling script to have different number of NCYC points per frequency.

This is to complicate the data, so any errournous reshaping of data is discovered.
It is expected, that experiments can have different number of NCYC points per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23723 | tlinnet | 2014-06-07 21:43:19 +0200 (Sat, 07 Jun 2014) | 55 lines

Initial try to alter the target function calc_CR72_chi2.

This is the first test to restructure the arrays, to allow for higher dimensional computation.
All numpy arrays have to have same shape to allow to multiply together.
The dimensions should be [ei][si][mi][oi][di]. [Experiment][spins][spec. frq][offset][disp points].
This is complicated with number of disp point can change per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

This implementation brings a high overhead.
The first test shows no winning of time.
The creation of arrays takes all the time.

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]
('sfrq: ', 600000000.0, 'number of cpmg frq', 15)
('sfrq: ', 800000000.0, 'number of cpmg frq', 20)
('sfrq: ', 900000000.0, 'number of cpmg frq', 22)
iterations of function call: 1000

[...] Timed for simulating 1 or 100 clustered spins.

[...]

[...] For TRUNK

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 3000 0.267 0.000 0.313 0.000 cr72.py:100(r2eff_CR72)

[...] 1000 0.056 0.000 0.434 0.000 relax_disp.py:456(calc_CR72_chi2)

[...] 3000 0.045 0.000 0.061 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 300000 26.315 0.000 30.771 0.000 cr72.py:100(r2eff_CR72)

[...] 1000 5.498 0.005 42.660 0.043 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 4.438 0.000 6.021 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 19013 0.278 0.000 0.278 0.000 {numpy.core.multiarray.array}

[...] 1000 0.191 0.000 0.777 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 1000 0.147 0.000 0.197 0.000 cr72.py:101(r2eff_CR72)

[...] 3000 0.044 0.000 0.061 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1504904 25.215 0.000 25.215 0.000 {numpy.core.multiarray.array}

[...] 1000 17.261 0.017 51.180 0.051 relax_disp.py:457(calc_CR72_chi2)

[...] 300000 4.637 0.000 6.310 0.000 chi2.py:32(chi2)

[...] ........

[...] r23724 | tlinnet | 2014-06-07 21:43:21 +0200 (Sat, 07 Jun 2014) | 4 lines

[...]

[...] Temporary changed the lib/dispersion/cr72.py function to unsafe state.

[...]

[...] This change turns-off all the safety measures, since they have to be re-implemented

[...] for higher dimensional structures.

[...] ........

[...] r23725 | tlinnet | 2014-06-07 22:36:00 +0200 (Sat, 07 Jun 2014) | 71 lines

[...]

[...] Altered profiling script to report cumulative timings and save to temporary files.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] This indeed shows that the efficiency has gone down:

[...]

[...] -----

[...]

[...] Checked on MacBook Pro

[...] 2.4 GHz Intel Core i5

[...] 8 GB 1067 Mhz DDR3 RAM.

[...] Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

[...]

[...] Timing for:

[...] 3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15)

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20)

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22)

[...] iterations of function call: 1000

[...]

[...] Timed for simulating 1 or 100 clustered spins.

[...]

[...] For TRUNK

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.434 0.434 :1()

[...] 1 0.001 0.001 0.434 0.434 pf:354(single)

[...] 1000 0.002 0.000 0.432 0.000 pf:340(calc)

[...] 1000 0.007 0.000 0.429 0.000 relax_disp.py:908(func_CR72_full)

[...] 1000 0.054 0.000 0.416 0.000 relax_disp.py:456(calc_CR72_chi2)

[...] 3000 0.256 0.000 0.300 0.000 cr72.py:100(r2eff_CR

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 42.035 42.035 :1()

[...] 1 0.002 0.002 42.035 42.035 pf:378(cluster)

[...] 1000 0.004 0.000 41.957 0.042 pf:340(calc)

[...] 1000 0.011 0.000 41.953 0.042 relax_disp.py:908(func_CR72_full)

[...] 1000 5.378 0.005 41.928 0.042 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 25.942 0.000 30.276 0.000 cr72.py:100(r2eff_CR72)

[...] 300000 4.362 0.000 5.903 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.792 0.792 :1()

[...] 1 0.001 0.001 0.792 0.792 pf:354(single)

[...] 1000 0.002 0.000 0.789 0.001 pf:340(calc)

[...] 1000 0.011 0.000 0.787 0.001 relax_disp.py:966(func_CR72_full)

[...] 1000 0.187 0.000 0.769 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 26013 0.290 0.000 0.290 0.000 {numpy.core.multiarray.array}

[...] 1000 0.147 0.000 0.198 0.000 cr72.py:101(r2eff_CR72)

[...] 2001 0.002 0.000 0.086 0.000 numeric.py:167(asarray)

[...] 3000 0.045 0.000 0.062 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 46.821 46.821 :1()

[...] 1 0.002 0.002 46.821 46.821 pf:378(cluster)

[...] 1000 0.004 0.000 46.744 0.047 pf:340(calc)

[...] 1000 0.017 0.000 46.740 0.047 relax_disp.py:966(func_CR72_full)

[...] 1000 15.422 0.015 46.708 0.047 relax_disp.py:457(calc_CR72_chi2)

[...] 1511904 23.475 0.000 23.475 0.000 {numpy.core.multiarray.array}

[...] 300000 4.175 0.000 5.668 0.000 chi2.py:32(chi2)

[...] 2001 0.004 0.000 4.804 0.002 numeric.py:167(asarray)

[...] 1000 0.010 0.000 2.438 0.002 fromnumeric.py:1774(amax)

[...] 1000 0.006 0.000 2.428 0.002 fromnumeric.py:32(_wrapit)

[...] 300000 0.353 0.000 1.493 0.000 fromnumeric.py:1379(sum)

[...] 1000 1.281 0.001 1.444 0.001 cr72.py:101(r2eff_CR72)

[...] ........

[...] r23726 | tlinnet | 2014-06-07 23:18:15 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Added print out of chi2 to profile script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23727 | tlinnet | 2014-06-07 23:18:18 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Moved the creation of special numpy structures outside target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23728 | tlinnet | 2014-06-08 13:14:34 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Modified profiling script to calculate correct values when setting up R2eff values.

[...]

[...] This is to test, that the return of chi2 gets zero.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23729 | tlinnet | 2014-06-08 13:14:36 +0200 (Sun, 08 Jun 2014) | 31 lines

[...]

[...] Removing looping over exp and offset indicies in calc_chi2. They are always 0 anyway.

[...]

[...] This brings a little speed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] ----

[...] Profiling.

[...]

[...] 1000 iterations

[...] 100 spins

[...] 3 sfrq

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58.]))

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78.]))

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))

[...] ('chi2 cluster:', 0.0)

[...]

[...] TRUNK

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 5.221 0.005 53.578 0.054 relax_disp.py:456(calc_CR72_chi2)

[...]

[...] BEFORE

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 14.871 0.015 43.084 0.043 relax_disp.py:494(calc_CR72_chi2)

[...]

[...] AFTER removing looping over exp and offset indicies. They are always 0.

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 12.831 0.013 38.248 0.038 relax_disp.py:494(calc_CR72_chi2)

[...] ........

[...] r23730 | tlinnet | 2014-06-08 13:14:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] In profiling script, moved up the calculation of values one level.

[...]

[...] This is to better see the output of the profiling iterations for cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23731 | tlinnet | 2014-06-08 19:48:23 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Fix for calculation of the larmor frequency per spin in profiling script.

[...]

[...] The frq loop should also be up-shifted.

[...] It was now extracted as 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23732 | tlinnet | 2014-06-08 19:48:25 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-inserted safety checks in lin/dispersion/cr72.py file.

[...]

[...] This is re-inserted for the rank_1 cases.

[...]

[...] This makes the unit-tests pass again.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23733 | tlinnet | 2014-06-08 19:48:27 +0200 (Sun, 08 Jun 2014) | 8 lines

[...]

[...] Important fix for extracting the correct shape to create new arrays.

[...]

[...] If using just one field, or having the same number of dispersion points, the shape would extend to the dispersion number.

[...] It would report [ei][si][mi][oi][di] when calling ndarray.shape.

[...]

[...] Shape always has to be reported as: [ei][si][mi][oi].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23734 | tlinnet | 2014-06-08 19:48:29 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Made it easier to switch between single and cluster reporting in profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23735 | tlinnet | 2014-06-08 19:48:31 +0200 (Sun, 08 Jun 2014) | 9 lines

[...]

[...] Important fix for the creation of the multi dimensional pA numpy array.

[...]

[...] It should be created as numpy.zeros([ei][si][mi][oi]) instead of numpy.ones([ei][si][mi][oi]).

[...]

[...] This allows for rapid testing of all dimensions with np.allclose(pA, numpy.ones(dw.shape)).

[...] pA can have missing filled out values, when the number of dispersion points are different

[...] per spectrometer frequency.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23736 | tlinnet | 2014-06-08 19:48:33 +0200 (Sun, 08 Jun 2014) | 18 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for one field.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23737 | tlinnet | 2014-06-08 19:48:35 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-implemented safety checks in lib/dispersion/cr72.py.

[...]

[...] This is now implemented for both rank-1 float array and of higher dimensions.

[...]

[...] This makes the unit tests pass for multi dimensional computing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23738 | tlinnet | 2014-06-08 19:48:37 +0200 (Sun, 08 Jun 2014) | 17 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for three fields.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23739 | tlinnet | 2014-06-08 19:48:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Changed that special numpy structure is also created for "CR72".

[...]

[...] This makes most system tests pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23740 | tlinnet | 2014-06-08 22:22:22 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Critical fix for the slicing of values in target function.

[...]

[...] This makes system test: Relax_disp.test_sod1wt_t25_to_cr72 pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23741 | tlinnet | 2014-06-08 22:22:24 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Added self.has_missing keyword in initialization of the Dispersion class.

[...]

[...] This is to test once, per spin or cluster.

[...] This saves a looping over the dipsersion points, when collection the data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23742 | tlinnet | 2014-06-08 22:22:26 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Created multi dimensional error and value numpy arrays.

[...]

[...] This is to calculate the chi2 sum much faster.

[...] Reordered the loop over missing data points, so it is only iniatiated if missing points is detected.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...]................

[...] r24654 | bugman | 2014-07-22 18:52:58 +0200 (Tue, 22 Jul 2014) | 118 lines

[...]

[...] Merged revisions 23745-23752,23754-23758 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ........

[...] r23745 | tlinnet | 2014-06-08 23:44:44 +0200 (Sun, 08 Jun 2014) | 8 lines

[...]

[...] Swith the looping from spin->frq to frq->spin.

[...]

[...] Since the number of dispersion points are the same for all spins, this

[...] allows to move the calculation of pA and kex array one level up.

[...]

[...] This saves alot of computation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23746 | tlinnet | 2014-06-08 23:44:45 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Changed all the creation of special numpy arrays to be of float64 type.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23747 | tlinnet | 2014-06-08 23:54:41 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Moved the data filling of special numpy array errors and values, to initialization of Dispersion class.

[...]

[...] These values does not change, and can safely be stored outside.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23748 | tlinnet | 2014-06-08 23:56:36 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Just a tiny little more speed, by removing temporary storage of chi2 calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23749 | tlinnet | 2014-06-09 00:09:59 +0200 (Mon, 09 Jun 2014) | 25 lines

[...]

[...] Changed all calls to numpy np.X functions to just the numpy function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] Timing is now showing, 17% loss per single spin, but but 277 % gain on 100 spin.

[...] 3 fields, 1000 iterations.

[...] 1 spin

[...] 1 0.000 0.000 0.677 0.677 :1()

[...] 1 0.001 0.001 0.677 0.677 pf:419(single)

[...] 1000 0.002 0.000 0.671 0.001 pf:405(calc)

[...] 1000 0.009 0.000 0.669 0.001 relax_disp.py:979(func_CR72_full)

[...] 1000 0.102 0.000 0.655 0.001 relax_disp.py:507(calc_CR72_chi2)

[...] 1003 0.160 0.000 0.365 0.000 cr72.py:101(r2eff_CR72)

[...] 23029 0.188 0.000 0.188 0.000 {numpy.core.multiarray.array}

[...] 4003 0.119 0.000 0.182 0.000 numeric.py:1862(allclose)

[...]

[...] 100 spin

[...] 1 0.000 0.000 19.783 19.783 :1()

[...] 1 0.002 0.002 19.783 19.783 pf:441(cluster)

[...] 1000 0.004 0.000 19.665 0.020 pf:405(calc)

[...] 1000 0.013 0.000 19.661 0.020 relax_disp.py:979(func_CR72_full)

[...] 1000 6.541 0.007 19.634 0.020 relax_disp.py:507(calc_CR72_chi2)

[...] 916108 11.127 0.000 11.127 0.000 {numpy.core.multiarray.array}

[...] 1300 1.325 0.001 2.026 0.002 cr72.py:101(r2eff_CR72)

[...] 4300 0.495 0.000 0.634 0.000 numeric.py:1862(allclose)

[...] ........

[...] r23750 | tlinnet | 2014-06-09 00:49:14 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23751 | tlinnet | 2014-06-09 00:49:15 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Changed all calls to numpy np.X functions to just the numpy function in lib/dispersion/cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23752 | tlinnet | 2014-06-09 00:49:18 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23754 | tlinnet | 2014-06-09 19:46:17 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Made copies of numpy arrays instead of creating from new.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23755 | tlinnet | 2014-06-09 19:46:19 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Added a self.frqs_a as a multidimensional numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23756 | tlinnet | 2014-06-09 19:46:20 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Small fix for the indicies to the errors and values numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23757 | tlinnet | 2014-06-09 19:46:22 +0200 (Mon, 09 Jun 2014) | 5 lines

[...]

[...] Lowered the number of iterations to the profiling scripts.

[...]

[...] This is to use the profiling script as bug finder.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23758 | tlinnet | 2014-06-09 19:46:25 +0200 (Mon, 09 Jun 2014) | 7 lines

[...]

[...] Moved the calculation of dw_frq out of spin and spectrometer loop.

[...]

[...] This is done by having a special 1/0 spin numpy array, which turns on or off the values in the numpy array multiplication.

[...]

[...] The multiplication needs to first axis expand dw, and then tile the arrays according to the numpy structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...]................

[...] r24655 | bugman | 2014-07-22 18:56:51 +0200 (Tue, 22 Jul 2014) | 543 lines

[...]

[...] Merged revisions 23760-23770,23787-23789,23791-23806,23813-23855 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ................

[...] r23760 | tlinnet | 2014-06-10 01:01:49 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Moved the calculation of pA and kex out off all loopes.

[...]

[...] This was done by having two special 1/0 spin structure arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23761 | tlinnet | 2014-06-10 01:01:51 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed dw_frq_a numpy array, as it was not necessary.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23762 | tlinnet | 2014-06-10 01:01:53 +0200 (Tue, 10 Jun 2014) | 6 lines

[...]

[...] Removed all looping over spin and spectrometer frequency.

[...]

[...] This is the last loop!

[...] Wuhu.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23763 | tlinnet | 2014-06-10 01:01:55 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Reordered arrays for beauty of code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23764 | tlinnet | 2014-06-10 01:01:57 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Made the back_calc array be initiated as copy of the values array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23765 | tlinnet | 2014-06-10 01:01:59 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Small edit to profiling script, to help bug finding.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23766 | tlinnet | 2014-06-10 01:02:00 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fixed that arrays are correctly initiated with one or zero values.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23767 | tlinnet | 2014-06-10 01:02:02 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Very important fix, for only replacing part of data array which have Nan values.

[...]

[...] Before, all values were replaced, which was wrong.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23768 | tlinnet | 2014-06-10 01:02:04 +0200 (Tue, 10 Jun 2014) | 8 lines

[...]

[...] Needed to increase the relative tolerance when testing if pA array is 1.

[...]

[...] Now system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis passes.

[...]

[...] Also added some comments lines, to prepare for mask replace of values.

[...] For example if only some of etapos values should be replaced.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23769 | tlinnet | 2014-06-10 01:02:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Restored profiling script to normal.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23770 | tlinnet | 2014-06-10 01:21:14 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Made the logic and comments much clearer about how to reshape, expand axis, and tile numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23787 | tlinnet | 2014-06-10 16:51:30 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed line "# -*- coding: utf-8 -*-" which was automatically inserted by new python code editor.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23788 | tlinnet | 2014-06-10 16:51:33 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Implemented a masked array search for where "missing" array is equal 1.

[...]

[...] This makes it possible to replace all values with this mask, from the value array.

[...]

[...] This eliminates the last loops over the missing values.

[...]

[...] It took over 4 hours to figure out, that the mask should be called with mask.mask,

[...] to return the same fulls structure,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23789 | tlinnet | 2014-06-10 16:51:35 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Yet another small improvement for the profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23791 | tlinnet | 2014-06-10 18:40:55 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of pA.

[...]

[...] pA is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23792 | tlinnet | 2014-06-10 18:40:59 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of pA in lib function, when pA is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23793 | tlinnet | 2014-06-10 18:41:01 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so pA is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23794 | tlinnet | 2014-06-10 18:41:03 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of kex.

[...]

[...] kex is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23795 | tlinnet | 2014-06-10 18:41:05 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of kex in lib function, when kex is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23796 | tlinnet | 2014-06-10 18:41:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so kex is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23797 | tlinnet | 2014-06-10 18:41:08 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Important fix for replacing values if eta_pos > 700 is violated.

[...]

[...] This fixes systemtest: Relax_disp.test_sod1wt_t25_to_cr72, which failed after making kex to a numpy float.

[...]

[...] The trick is to make a numpy mask which stores the position where to replace the values.

[...] Then replace the values just before last return.

[...]

[...] This makes sure, that not all values are changed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23798 | tlinnet | 2014-06-10 18:41:10 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Increased the kex speed to 1e7 in clustered unit tests cases.

[...]

[...] This is to demonstrate where there will be no excange.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23799 | tlinnet | 2014-06-10 18:54:28 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Added a multi-dimensional numpy array chi2 value calculation function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23800 | tlinnet | 2014-06-10 18:54:31 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Called the newly created chi2 function to calculate for multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23801 | tlinnet | 2014-06-10 19:11:07 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Renamed chi2_ND to chi2_rankN.

[...]

[...] This is a better name for representing multiple axis calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23802 | tlinnet | 2014-06-10 20:58:15 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Made special ei, si, mi, and oi numpy structure array.

[...]

[...] This is for rapid speed-up of numpy array creation in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23803 | tlinnet | 2014-06-10 20:58:19 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Code clean-up in lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23804 | tlinnet | 2014-06-10 20:58:22 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replace np.tile with tile.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23805 | tlinnet | 2014-06-10 20:58:24 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replaced self.spins_a with self.disp_struct.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23806 | tlinnet | 2014-06-10 21:06:12 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed un-used self structures in __init__of class.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23813 | tlinnet | 2014-06-11 08:28:25 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made iinitialisation structures for dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23814 | tlinnet | 2014-06-11 08:28:27 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Initial try to reshape dw faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23815 | tlinnet | 2014-06-11 08:40:38 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Switched to use self.ei, self.si, self.mi, self.oi, self.di.

[...]

[...] This is for better reading of code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23816 | tlinnet | 2014-06-11 08:40:40 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment out the sys.exit(), which would make the code fail for wrong calculation of dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23817 | tlinnet | 2014-06-11 08:46:00 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Copied profiling script for CPMG model CR72 to R1rho DPL94 model.

[...]

[...] The framework of the script will be the same, but the data a little different.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23818 | tlinnet | 2014-06-11 10:08:02 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Started converting profiling script to DPL94.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23819 | tlinnet | 2014-06-11 10:08:05 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND).

[...]

[...] These numbers represents the maximum number of dimensions, instead of index.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23820 | tlinnet | 2014-06-11 10:08:06 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Added the ei index, when creating the first dw_mask.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23821 | tlinnet | 2014-06-11 10:08:08 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Reordered how the structures dw init structures are created.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23822 | tlinnet | 2014-06-11 10:08:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clearing the dw_struct before calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23823 | tlinnet | 2014-06-11 10:16:27 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Started using the new way of constructing dw.

[...]

[...] This is for running system tests.

[...]

[...] Note, somewhere in the dw array, the frequencies will be different between the two implementations.

[...] But apparently, this does not matter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23824 | tlinnet | 2014-06-11 10:46:42 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Inserted temporary method to switch for profiling.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23825 | tlinnet | 2014-06-11 10:46:44 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] First try to speed-up the old dw structure calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23826 | tlinnet | 2014-06-11 13:12:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Simplified calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23827 | tlinnet | 2014-06-11 13:12:14 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Yet another try to implement a fast dw structure method.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23828 | tlinnet | 2014-06-11 13:12:16 +0200 (Wed, 11 Jun 2014) | 6 lines

[...]

[...] Implemented the fastest way to calculate the dw structure.

[...]

[...] This uses the numpy ufunc multiply.outer function to create the outer array, and then multiply

[...] with the frqs_structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23829 | tlinnet | 2014-06-11 13:12:18 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Renamed dw temporary structure to generic structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23830 | tlinnet | 2014-06-11 13:12:20 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Restructured the calculation of R20A and R20B to the most efficient way.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23831 | tlinnet | 2014-06-11 13:12:21 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made the lib/cr72.py to a numpy multi dimensional numpy array calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23832 | tlinnet | 2014-06-11 14:05:35 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Changed the catching when dw is zero, to use masked array.

[...]

[...] Implemented backwards compability with unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23833 | tlinnet | 2014-06-11 14:05:37 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Bugfix for testing if kex is zero.

[...]

[...] It was tested if kex was equal 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23834 | tlinnet | 2014-06-11 14:54:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Implemented masked replacement if fact is less that 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23835 | tlinnet | 2014-06-11 14:55:31 +0200 (Wed, 11 Jun 2014) | 1 line

[...]

[...] Replaced isnan mask with function that catches all invalid values.

[...] ................

[...] r23836 | tlinnet | 2014-06-11 14:55:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clean up of comment lines.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23837 | tlinnet | 2014-06-11 14:55:34 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Removed the masked replacement if fact is less than 1.0.

[...]

[...] This is very strange, but otherwise system test:

[...] Relax_disp.test_hansen_cpmg_data_missing_auto_analysis

[...]

[...] would fail.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23838 | tlinnet | 2014-06-11 15:09:01 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Removed the slow allclose() function to test if R20A and R20B is equal.

[...]

[...] It is MUCH faster to just subtract and check sum is not 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23839 | tlinnet | 2014-06-11 15:25:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Replaced the temporary variable R2eff with back_calc, and used numpy subtract to speed up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23840 | tlinnet | 2014-06-11 15:25:34 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Made the lib function into a pure numpy array calculation.

[...]

[...] This requires, that r20a, r20b and dw has same dimension as the dispersion points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23841 | tlinnet | 2014-06-11 15:25:36 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changes too unit tests, so data is sent to target function in numpy array format.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23842 | tlinnet | 2014-06-11 16:19:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed an the creation of a unnessary structure bu using numpy multiply.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23843 | tlinnet | 2014-06-11 16:19:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Moved the mask which finds where to replace values into the _init_ function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23844 | tlinnet | 2014-06-11 16:43:17 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Replaced the multiplcation with the disp structure, to a replacement with a mask.

[...]

[...] My timings are varying at my computer, so results are within the very same timing.

[...]

[...] But for reading the code, having two masks, is essential better.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] ................

[...] r23846 | tlinnet | 2014-06-11 17:14:09 +0200 (Wed, 11 Jun 2014) | 25 lines

[...]

[...] Reverted r23845-r23844 as this was using a wrong commit message.

[...]

[...] The command used was:

[...] svn merge -r23845:23844 .

[...]

[...] ........

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] ........

[...] ................

[...] r23847 | tlinnet | 2014-06-11 17:15:03 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 to B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23848 | tlinnet | 2014-06-11 19:37:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for the B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23849 | tlinnet | 2014-06-11 19:37:40 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Modified model B14 lib file to faster numpy multidimensional mode.

[...]

[...] The implementations comes almost directly from the CR72 model file.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23850 | tlinnet | 2014-06-11 19:37:42 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Reverted the use of the mask "mask_set_blank".

[...]

[...] It did not work, and many system tests started failing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23851 | tlinnet | 2014-06-11 19:37:43 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed the target function to handle the B14 model for faster numpy computation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23852 | tlinnet | 2014-06-11 19:37:45 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed unit test for B14 to match numpy input requirement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23853 | tlinnet | 2014-06-11 20:43:45 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Added additional tests in b14, when math errors can occur.

[...]

[...] This is very easy with a conditional masked search in arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23854 | tlinnet | 2014-06-11 20:43:47 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment fix for finding when E0 is above 700 in lib function of B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...] r23855 | tlinnet | 2014-06-11 20:47:29 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed use of "asarray", since the variables are already arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ................

[...]................

[...] r24656 | bugman | 2014-07-22 19:04:10 +0200 (Tue, 22 Jul 2014) | 615 lines

[...]

[...] Merged revisions 23864-23877,23880,23888-23934,23937-23942,23946 via svnmerge from

[...] svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

[...]

[...] ........

[...] r23864 | tlinnet | 2014-06-12 12:12:58 +0200 (Thu, 12 Jun 2014) | 14 lines

[...]

[...] Changed target function for model CR72.

[...]

[...] To CR72 is now also the input of the parameters of R20A, R20B and dw.

[...] dw is tested for zero, to return flat lines.

[...] It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

[...]

[...] This is for speed-up.

[...]

[...] R20A and R20B is also subtracted, to see if the full model should be used.

[...] In the same way, it is faster to subtract the smaller array.

[...]

[...] These small tricks are expected to give 5-10 pct. speeed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23865 | tlinnet | 2014-06-12 12:12:59 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Made the lib function of CR72 accept the R20A, R20B and dw of the original array.

[...]

[...] This is for speed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23866 | tlinnet | 2014-06-12 12:13:01 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed unit-tests, to send in the original R20A, R20B and dw_orig to the testing of the lib function CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23867 | tlinnet | 2014-06-12 12:13:03 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed profiling script to send R20A, R20B and dw, as original parameters to the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23868 | tlinnet | 2014-06-12 12:23:18 +0200 (Thu, 12 Jun 2014) | 11 lines

[...]

[...] Changed target function for model B14.

[...]

[...] To B14 now also send the input of the original parameters dw.

[...] dw is tested for zero, to return flat lines.

[...] It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

[...]

[...] This is for speed-up.

[...]

[...] These small tricks are expected to give 5-10 pct. speeed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23869 | tlinnet | 2014-06-12 12:23:20 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Made the lib function of B14 accept dw of the original array.

[...]

[...] This is for speed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23870 | tlinnet | 2014-06-12 12:23:21 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed unit-tests, to send in the original dw_orig to the testing of the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23871 | tlinnet | 2014-06-12 12:23:23 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed profiling script to send dw as original parameters to the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23872 | tlinnet | 2014-06-12 12:31:42 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 model to TSMFK01 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23873 | tlinnet | 2014-06-12 13:18:56 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Indention fix in cr72.py and b14.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23874 | tlinnet | 2014-06-12 13:18:58 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified profiling script to be used for model TSMFK01.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23875 | tlinnet | 2014-06-12 13:19:00 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified target function for model TSMFK01, to send in dw as original parameter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23876 | tlinnet | 2014-06-12 13:19:02 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified lib function for model TSMFK01 to accept dw_orig as input and replaced functions to find math domain errors into maske replacements.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23877 | tlinnet | 2014-06-12 13:19:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Made unit tests for model TSMFK01 send in R20A and dw as a numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23880 | tlinnet | 2014-06-12 13:56:12 +0200 (Thu, 12 Jun 2014) | 32 lines

[...]

[...] Large increase in speed for model TSMFK01 by changing target functions to use multidimensional numpy arrays in calculation.

[...]

[...] This is done by restructuring data into multidimensional arrays of dimension [NE][NS][NM][NO][ND], which are

[...] number of spins, number of magnetic field strength, number of offsets, maximum number of dispersion point.

[...]

[...] The speed comes from using numpy ufunc operations.

[...]

[...] The new version is 2.4X as fast per spin calculation, and 54X as fast for clustered analysis.

[...]

[...] The different in timings for 3 spectrometer frequencies, calculated for 1 spin or 100 clustered spins with 1000 iterations are:

[...]

[...] ----

[...] VERSION 3.2.2

[...] ----

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.262 0.262 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 25.391 25.391 :1()

[...] ----

[...] New version

[...] ---

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.111 0.111 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.468 0.468 :1()

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23888 | tlinnet | 2014-06-12 20:07:59 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Replacing math domain checking in model DPL94, with masked array replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23889 | tlinnet | 2014-06-12 20:08:01 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Fix for import missing error in lib function dpl94.

[...]

[...] Needed to import numpy any() function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23890 | tlinnet | 2014-06-12 20:08:03 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] First try to speed up model DPL94.

[...]

[...] This has not succeded, since systemtest: Relax_disp.test_dpl94_data_to_dpl94 sti?\195?\131ll fails.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23891 | tlinnet | 2014-06-12 20:08:06 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Trying to move some of the structures into its own part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23892 | tlinnet | 2014-06-12 20:08:08 +0200 (Thu, 12 Jun 2014) | 7 lines

[...]

[...] Fix for forgetting to multiply frqs to power 2.

[...]

[...] This was found by inspecting all print out before and after implementation.

[...]

[...] New implementation of DPL94 now passes all system and unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23893 | tlinnet | 2014-06-12 20:08:10 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the expansion of the R1 structure out of the for loops.

[...]

[...] This is to speed-up the _init_ of the class of the target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23894 | tlinnet | 2014-06-12 20:35:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the packing of errors and values out of for loop in the _init_ class of target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23895 | tlinnet | 2014-06-12 20:35:06 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the multi dimensional expansion of inv_relax_times out of for loop.

[...]

[...] This can be done for all structures, which does not have missing points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23896 | tlinnet | 2014-06-12 20:35:08 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] For inv_relax_times, expanded one axis, and tiled up to NR spins, before reshaping and blowing up to full structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23897 | tlinnet | 2014-06-12 20:35:10 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the expansion of frqs out of for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23898 | tlinnet | 2014-06-12 23:11:38 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Documentation fix for description of input arrays to lib functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23899 | tlinnet | 2014-06-13 07:20:57 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Converted TAP03 model to use multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23900 | tlinnet | 2014-06-13 07:21:00 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Made dw in unit tests of TAP03 be of numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23901 | tlinnet | 2014-06-13 07:21:02 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced the loop structure in target function of TAP03 with numpy arrays.

[...]

[...] This makes the model faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23902 | tlinnet | 2014-06-13 07:21:04 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Reordered the initialization structure of the special numpy arrays.

[...]

[...] This was done in the init part of the target function of relaxation dispersion.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23903 | tlinnet | 2014-06-13 07:26:14 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Added model MODEL_TSMFK01 also get self.tau_cpmg calculated in init part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] r23904 | tlinnet | 2014-06-13 08:18:23 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Methods to replace math domain errors in model TP02, has been replaced with numpy masks.

[...]

[...] Documentation is also fixed.

[...]

[...]

(Browse SVN revision 24669)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:27:18 2014, SVN revision 24664:

Merged revisions 24362-24364,24510,24612-24615,24619-24637,24641-24648,24650 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24362 | bugman | 2014-06-30 10:41:27 +0200 (Mon, 30 Jun 2014) | 10 lines

Created a master profiling script for comparing the speed between different dispersion models.

This is similar to the disp_profile_all.py script except it only operates on a single relax version.
The output is then simply the timings, with statistics, of the calculation time for 100 function
calls for 100 spins (either 10,000 function calls for single spins or 100 function calls for the
cluster of 100 spins).

The output of the script for the current disp_spin_speed branch code has also been added.
........
r24363 | tlinnet | 2014-06-30 11:48:47 +0200 (Mon, 30 Jun 2014) | 5 lines

Critical fix for the recalculation of tau cpmg, when plotting for numerical models.

The interpolated dispersion points with tau_cpgm was calculated with frq, instead of cmpg_frq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24364 | bugman | 2014-06-30 12:20:31 +0200 (Mon, 30 Jun 2014) | 7 lines

The new dispersion model profiling master script now includes links to the relax wiki.

The models are no longer presented by name but rather by the relax wiki links for each model (see
http://wiki.nmr-relax.com/Category:Relaxation_dispersion for all these links). This is to improve
the Google rank of the relax wiki, as these links may appear in a number of locations.
........
r24510 | bugman | 2014-07-10 12:04:53 +0200 (Thu, 10 Jul 2014) | 6 lines

Removal of many unused imports in the disp_spin_speed branch.

These were detected using the devel_scripts/find_unused_imports.py script which uses pylint to find
all unused imports. The false positives also present in the trunk were ignored.
........
r24612 | tlinnet | 2014-07-22 15:16:47 +0200 (Tue, 22 Jul 2014) | 13 lines

Reverted r24339 as relax dependency of numpy is now 1.6 where the "out" argument is available.

The command used was:
svn merge -r24339:r24338 .

.....
r24339 | tlinnet | 2014-06-27 12:58:29 +0200 (Fri, 27 Jun 2014) | 3 lines

Added a list of systemtests to skip, if numpy "out" argument is not available.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] .....

[...]........

[...] r24613 | tlinnet | 2014-07-22 15:23:47 +0200 (Tue, 22 Jul 2014) | 13 lines

[...]

[...] Reverted r24336 as relax dependency of numpy is now 1.6 where the "einsum" function is available.

[...]

[...] The command used was:

[...] svn merge -r24336:r24335 .

[...]

[...] .....

[...] r24336 | tlinnet | 2014-06-27 12:58:22 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Added to target function that experiment_type_setup() should not be initiated, if numpy.einsum is missing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] .....

[...]........

[...] r24614 | tlinnet | 2014-07-22 15:27:44 +0200 (Tue, 22 Jul 2014) | 18 lines

[...]

[...] Reverted r24337 as relax dependency of numpy is now 1.6 where the "out" argument is available.

[...]

[...] The command used was:

[...] svn merge -r24337:r24336 .

[...]

[...] .....

[...] r24337 | tlinnet | 2014-06-27 12:58:24 +0200 (Fri, 27 Jun 2014) | 8 lines

[...]

[...] Added a numpy "out" argument check to dep_check.py.

[...]

[...] This is for checking the out argument of:

[...] numpy.multiply

[...] numpy.add

[...] numpy.subtract

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] .....

[...]........

[...] r24615 | tlinnet | 2014-07-22 15:35:16 +0200 (Tue, 22 Jul 2014) | 13 lines

[...]

[...] Reverted r24323 as relax dependency of numpy is now 1.6 where "einsum" function is available.

[...]

[...] The command used was:

[...] svn merge -r24323:r24322 .

[...]

[...] .....

[...] r24323 | tlinnet | 2014-06-25 19:31:40 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Implemented a dependency check for numpy einsum, so relax can still start.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] .....

[...]........

[...] r24619 | tlinnet | 2014-07-22 16:51:26 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/b14.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24620 | tlinnet | 2014-07-22 16:51:28 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24621 | tlinnet | 2014-07-22 16:51:30 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/dpl94.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24622 | tlinnet | 2014-07-22 16:51:32 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/lm63_3site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24623 | tlinnet | 2014-07-22 16:51:33 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/lm63.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24624 | tlinnet | 2014-07-22 16:51:35 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/m61b.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24625 | tlinnet | 2014-07-22 16:51:37 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/m61.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24626 | tlinnet | 2014-07-22 16:51:38 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/matrix_exponential.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24627 | tlinnet | 2014-07-22 16:51:40 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/mp05.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24628 | tlinnet | 2014-07-22 16:51:42 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_cpmg_2site_expanded.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24629 | tlinnet | 2014-07-22 16:51:44 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_cpmg_2site_star.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24630 | tlinnet | 2014-07-22 16:51:46 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_mmq_2site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24631 | tlinnet | 2014-07-22 16:51:48 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_mmq_3site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24632 | tlinnet | 2014-07-22 16:51:50 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_r1rho_2site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24633 | tlinnet | 2014-07-22 16:51:51 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/ns_r1rho_3site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24634 | tlinnet | 2014-07-22 16:51:53 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/tap03.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24635 | tlinnet | 2014-07-22 16:51:55 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/tp02.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24636 | tlinnet | 2014-07-22 16:51:57 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of lib/dispersion/two_point.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24637 | tlinnet | 2014-07-22 16:51:59 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Code validation of target_functions/relax_disp.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24641 | tlinnet | 2014-07-22 17:53:38 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Removal of space after for loop in target_functions/relax_disp.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24642 | tlinnet | 2014-07-22 17:53:40 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Copyright time extension for lib/dispersion/tsmfk01.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24643 | tlinnet | 2014-07-22 17:53:42 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] More removal of space after for loop in target_functions/relax_disp.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24644 | tlinnet | 2014-07-22 17:53:43 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] For model ns mmq 3site, moved the parameter conversion of dw_AB from target function to lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24645 | tlinnet | 2014-07-22 17:53:45 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Removed chi sum initialisation in func_ns_mmq_2site() as this is not used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24646 | tlinnet | 2014-07-22 17:53:47 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Documentation fix for the get_back_calc() function in target_function/relax_disp.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24647 | tlinnet | 2014-07-22 17:56:23 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Removed unnecessary repetitive calculation of kex**2 in model DPL94.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24648 | tlinnet | 2014-07-22 18:08:22 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] API documentation fixes, where a "\" is the last character on the line. There should be a space " ", ending this characater.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24650 | tlinnet | 2014-07-22 18:21:20 +0200 (Tue, 22 Jul 2014) | 3 lines

[...]

[...] Comment space fixing in target_functions/relax_disp.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24664)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:24:19 2014, SVN revision 24663:

Merged revisions 24323-24326,24335-24343,24347-24351,24353,24357,24360 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24323 | tlinnet | 2014-06-25 19:31:40 +0200 (Wed, 25 Jun 2014) | 3 lines

Implemented a dependency check for numpy einsum, so relax can still start.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24324 | tlinnet | 2014-06-25 19:31:45 +0200 (Wed, 25 Jun 2014) | 5 lines

Initiated lengthy profiling script, that shows that doing square numpy matrix_power on strided data, can speed up the calculation by factor 1.5.

The profiling script can quicly be turned into a unit test, and includes small helper functions to calculate how to stride through the data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24325 | tlinnet | 2014-06-25 20:41:47 +0200 (Wed, 25 Jun 2014) | 7 lines

First try to implement function that will calculate the matrix exponential by striding through data.

Interestingly, it does not work. Theses systemtests will fail.
test_hansen_cpmg_data_to_ns_cpmg_2site_3D
test_hansen_cpmg_data_to_ns_cpmg_2site_3D_full

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24326 | tlinnet | 2014-06-25 20:41:49 +0200 (Wed, 25 Jun 2014) | 3 lines

Added matrix_power to the init file in lib/dispersion.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24335 | tlinnet | 2014-06-27 12:58:20 +0200 (Fri, 27 Jun 2014) | 3 lines

Deleted the printout in dep_check. The printouts are only used for the essential packages before calling sys.exit()

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24336 | tlinnet | 2014-06-27 12:58:22 +0200 (Fri, 27 Jun 2014) | 3 lines

Added to target function that experiment_type_setup() should not be initiated, if numpy.einsum is missing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24337 | tlinnet | 2014-06-27 12:58:24 +0200 (Fri, 27 Jun 2014) | 8 lines

Added a numpy "out" argument check to dep_check.py.

This is for checking the out argument of:

[...] numpy.multiply

[...] numpy.add

[...] numpy.subtract

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24338 | tlinnet | 2014-06-27 12:58:26 +0200 (Fri, 27 Jun 2014) | 10 lines

[...]

[...] Added the missing "self.num_exp" to target function.

[...]

[...] Testing on older system, this was failing the systemtest.

[...] It is a wonder how these lines in _init_ could be performed without this?

[...]

[...] self.end_index.append(self.num_exp * self.num_spins * self.num_frq)

[...] if model in [MODEL_B14_FULL, MODEL_CR72_FULL, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR_FULL]:

[...] self.end_index.append(2 * self.num_exp * self.num_spins * self.num_frq)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24339 | tlinnet | 2014-06-27 12:58:29 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Added a list of systemtests to skip, if numpy "out" argument is not available.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24340 | tlinnet | 2014-06-27 13:35:32 +0200 (Fri, 27 Jun 2014) | 6 lines

[...]

[...] Fix for unit test passing on old numpy systems.

[...]

[...] The error was:

[...] ValueError: setting an array element with a sequence.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24341 | bugman | 2014-06-27 14:24:23 +0200 (Fri, 27 Jun 2014) | 5 lines

[...]

[...] Expanded the dispersion target function class documentation.

[...]

[...] The NE, NS, NM, NO, and ND notation is now explained.

[...]........

[...] r24342 | bugman | 2014-06-27 14:27:27 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Added Ti and NT to the dispersion target function class documentation.

[...]........

[...] r24343 | bugman | 2014-06-27 14:52:08 +0200 (Fri, 27 Jun 2014) | 13 lines

[...]

[...] Slight speed up of the 'B14' and 'B14 full' dispersion models by minimising repetitive maths.

[...]

[...] Using the disp_profile_all.py script, the speed ups for these two models are:

[...]

[...] 100 single spins analysis:

[...] B14: 3.944+/-0.032 -> 3.888+/-0.038, 1.014x faster.

[...] B14 full: 4.037+/-0.040 -> 3.940+/-0.025, 1.025x faster.

[...]

[...] Cluster of 100 spins analysis:

[...] B14: 0.522+/-0.003 -> 0.507+/-0.008, 1.031x faster.

[...] B14 full: 0.507+/-0.008 -> 0.487+/-0.007, 1.042x faster.

[...]........

[...] r24347 | tlinnet | 2014-06-27 17:09:42 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Initial try to write up a 2x2 matrix by closed form.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24348 | tlinnet | 2014-06-27 17:09:45 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Made the validation check in profiling of marix_power check all values.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24349 | tlinnet | 2014-06-27 17:12:25 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Replaced all self.spins with self.NS in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24350 | tlinnet | 2014-06-27 17:14:34 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Replaced all self.num_exp with self.NE in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24351 | tlinnet | 2014-06-27 17:16:16 +0200 (Fri, 27 Jun 2014) | 3 lines

[...]

[...] Replaced all self.num_frq with self.NM in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24353 | bugman | 2014-06-27 17:53:53 +0200 (Fri, 27 Jun 2014) | 18 lines

[...]

[...] A very small speed up to the CR72 dispersion models by minimising repetitive maths operations.

[...]

[...] The k_BA and k_AB rates are used to simplify the Psi calculation, dropping from 3 to 2

[...] multiplications and removing a squaring operation. The Dpos and Dneg value calculations have been

[...] simplified to drop one multiplication operation. And the calculation of eta_scale / cpmg_frqs now

[...] only occurs once rather than twice.

[...]

[...] Using the disp_profile_all.py script, the speed ups for these two models are:

[...]

[...] 100 single spins analysis:

[...] CR72: 1.608+/-0.025 -> 1.552+/-0.028, 1.036x faster.

[...] CR72 full: 1.795+/-0.043 -> 1.705+/-0.024, 1.053x faster.

[...]

[...] Cluster of 100 spins analysis:

[...] CR72: 0.109+/-0.001 -> 0.107+/-0.001, 1.026x faster.

[...] CR72 full: 0.114+/-0.004 -> 0.110+/-0.001, 1.034x faster.

[...]........

[...] r24357 | bugman | 2014-06-27 18:32:30 +0200 (Fri, 27 Jun 2014) | 5 lines

[...]

[...] Removal of a tonne of unused imports in the lib.dispersion package.

[...]

[...] These were identified using the command "pylint * --disable=all --enable=unused-import".

[...]........

[...] r24360 | bugman | 2014-06-27 19:01:21 +0200 (Fri, 27 Jun 2014) | 12 lines

[...]

[...] A very small speed up to the MMQ CR72 dispersion model by minimising repetitive maths operations.

[...]

[...] This matches the recent change for the CR72 model (r24353), though the Psi calculation was already

[...] using the fast form. Using the disp_profile_all.py script, the speed ups are:

[...]

[...] 100 single spins analysis:

[...] MMQ CR72: 4.276+/-0.066 -> 4.230+/-0.089, 1.011x faster.

[...]

[...] Cluster of 100 spins analysis:

[...] MMQ CR72: 0.883+/-0.015 -> 0.862+/-0.010, 1.024x faster.

[...]........

[...]

[...]

(Browse SVN revision 24663)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:21:35 2014, SVN revision 24662:

Merged revisions 24265-24266,24270-24278,24280-24283,24285-24308,24315,24319-24320 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24265 | tlinnet | 2014-06-24 10:43:06 +0200 (Tue, 24 Jun 2014) | 3 lines

Modified profiling script for NS R1rho 3site, to be functional.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24266 | tlinnet | 2014-06-24 10:46:17 +0200 (Tue, 24 Jun 2014) | 3 lines

Modified profiling script for ns r1rho 3site linear to be functional.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24270 | tlinnet | 2014-06-24 11:15:43 +0200 (Tue, 24 Jun 2014) | 3 lines

Removed un-used imports in profiling scripts for NS r1rho 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24271 | bugman | 2014-06-24 13:46:59 +0200 (Tue, 24 Jun 2014) | 6 lines

Added a relaxation dispersion model profiling log file for relax version 3.1.3 vs. 3.1.2 vs. 3.1.1.

This is the output from the dispersion model profiling master script. It shows that there are no
major speed differences between these relax versions.
........
r24272 | bugman | 2014-06-24 13:52:19 +0200 (Tue, 24 Jun 2014) | 5 lines

Added the system information printout to the dispersion model profiling master script output.

This is for the log files comparing one version of relax to the previous version.
........
r24273 | tlinnet | 2014-06-24 14:17:59 +0200 (Tue, 24 Jun 2014) | 3 lines

Added profiling script for model mmq cr72,

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24274 | tlinnet | 2014-06-24 14:18:03 +0200 (Tue, 24 Jun 2014) | 5 lines

Fix for the replacement value for invalid values in model MMQ CR72.

The value was set to use r20, but should instead be 1e100.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24275 | tlinnet | 2014-06-24 14:20:31 +0200 (Tue, 24 Jun 2014) | 3 lines

[...] Copied profiling script from mmq cr72, to ns mmq 2site and 3site.

[...]........

[...] r24276 | tlinnet | 2014-06-24 14:22:23 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Copied profiling script to ns mmq 3site linear.

[...]........

[...] r24277 | tlinnet | 2014-06-24 14:32:23 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for NS MMQ 2SITE.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24278 | tlinnet | 2014-06-24 14:46:29 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for ns mmq 3site and 3site linear.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24280 | tlinnet | 2014-06-24 14:58:07 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Speeded up model NS CPMG 2site star, by moving the forming of the propagator matrix out of the for loops, and preform it.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24281 | bugman | 2014-06-24 15:04:47 +0200 (Tue, 24 Jun 2014) | 6 lines

[...]

[...] Added a relaxation dispersion model profiling log file for relax version 3.1.4 vs. 3.1.3.

[...]

[...] This is the output from the dispersion model profiling master script. It shows that there are no

[...] speed differences.

[...]........

[...] r24282 | tlinnet | 2014-06-24 15:27:51 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Speeded up ns mmq 2site, by moving the forming of evolution matrix out of the for loops, and preform it.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24283 | tlinnet | 2014-06-24 15:36:01 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Speeded up ns mmq 3site, by moving the forming of evolution matrix out of the for loops, and preform it.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24285 | bugman | 2014-06-24 16:30:19 +0200 (Tue, 24 Jun 2014) | 6 lines

[...]

[...] Added a relaxation dispersion model profiling log file for relax version 3.1.5 vs. 3.1.4.

[...]

[...] This is the output from the dispersion model profiling master script. It shows that there are no

[...] speed differences.

[...]........

[...] r24286 | tlinnet | 2014-06-24 16:35:01 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Speeded up ns r1rho 2site, by preforming the evolution matrices, and the M0 matrix in the init part of the target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24287 | tlinnet | 2014-06-24 16:35:05 +0200 (Tue, 24 Jun 2014) | 3 lines

[...]

[...] Speeded up ns r1rho 3site, by preforming the evolution matrices, and the M0 matrix in the init part of the target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24288 | bugman | 2014-06-24 17:06:45 +0200 (Tue, 24 Jun 2014) | 6 lines

[...]

[...] Expanded the dispersion model profiling master script to cover all the new profiling scripts.

[...]

[...] This includes all 3-site and MMQ models. The list is now complete and covers all models. The only

[...] model not included in 'M61 skew' which has redundant parameters and is not optimisable anyway.

[...]........

[...] r24289 | bugman | 2014-06-24 17:47:53 +0200 (Tue, 24 Jun 2014) | 7 lines

[...]

[...] Added a relaxation dispersion model profiling log file for relax version 3.1.6 vs. 3.1.5.

[...]

[...] This is the output from the dispersion model profiling master script. It shows that there are

[...] almost no speed differences, except for a slight decrease in speed in the 'CR72 full' model for

[...] single spins.

[...]........

[...] r24290 | tlinnet | 2014-06-25 02:14:22 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Split systemtest test_tp02_data_to_ns_r1rho_2site into a setup and test part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24291 | tlinnet | 2014-06-25 02:14:29 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Implemented a clustered version of systemtest test_tp02_data_to_ns_r1rho_2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24292 | tlinnet | 2014-06-25 02:14:32 +0200 (Wed, 25 Jun 2014) | 6 lines

[...]

[...] Inserted an extremely interesting development in NS R1rho 2site.

[...]

[...] If one do a transpose of M0, one can calculate all the matrix evolutions in the start via numpy einsum.

[...] Since M0 is in higher a dimensions, one should not do a numpy transpose, but swap/roll the outer M0 6x1 axis.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24293 | tlinnet | 2014-06-25 02:14:34 +0200 (Wed, 25 Jun 2014) | 5 lines

[...]

[...] Shortened the code dramatically for NS R1rho 2site.

[...]

[...] It is possible to calculate all in "one" go, after having the trasposer/rolled-back M0 magnetization.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24294 | tlinnet | 2014-06-25 02:14:36 +0200 (Wed, 25 Jun 2014) | 7 lines

[...]

[...] Speeded up the code of NS r1rho 2site.

[...]

[...] This was essential done to numpy einsum, and doing the dot operations in multiple dimensions.

[...] It was though necessary to realize, that to do the proper dot product operations, the outer two

[...] axis if M0 should be swapped, by rolling the outer axis one back.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24295 | tlinnet | 2014-06-25 02:14:38 +0200 (Wed, 25 Jun 2014) | 7 lines

[...]

[...] Speeded up the code of NS r1rho 3site.

[...]

[...] This was essential done to numpy einsum, and doing the dot operations in multiple dimensions.

[...] It was though necessary to realize, that to do the proper dot product operations, the outer two

[...] axis if M0 should be swapped, by rolling the outer axis one back.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24296 | tlinnet | 2014-06-25 02:14:40 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Removed un-used import of rollaxis in ns r1rho 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24297 | tlinnet | 2014-06-25 02:14:42 +0200 (Wed, 25 Jun 2014) | 5 lines

[...]

[...] For model NS CPMG 2site 3d, the M0 matrix was preformed for higher dimensionality in init of target function.

[...]

[...] The transposes/rolled axis versions was also initiated.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24298 | tlinnet | 2014-06-25 02:14:43 +0200 (Wed, 25 Jun 2014) | 5 lines

[...]

[...] Swapped the dot product position, when propagating the magnetisation in model NS CPMG 2site 3D.

[...]

[...] This it to try to align to same method as in NS R1rho 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24299 | tlinnet | 2014-06-25 02:14:45 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Lowered the looping in NS CPMG 2site 3D, by preforming the inital dot product.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24300 | tlinnet | 2014-06-25 02:14:46 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Speeded up ns cpmg 2site 3d, by preforming the magnetisation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24301 | tlinnet | 2014-06-25 02:14:48 +0200 (Wed, 25 Jun 2014) | 23 lines

[...]

[...] Got rid of the inner evolution of the magnetization.

[...]

[...] If the looping over the number of CPMG elements is given by the index l, and the initial magnetization has

[...] been formed, then the number of times for propagation of magnetization is l = power_si_mi_di-1.

[...] If the magnetization matrix "Mint" has the index Mint_(i,k) and the evolution matrix has the index Evol_(k,j), i=1, k=7, j=7

[...] then the dot product is given by: Sum_{k=1}^{k} Mint_(1,k) * Evol_(k,j) = D_(1, j).

[...] The numpy einsum formula for this would be: einsum('ik,kj -> ij', Mint, Evol)

[...]

[...] Following evolution will be: Sum_{k=1}^{k} D_(1, j) * Evol_(k,j) = Mint_(1,k) * Evol_(k,j) * Evol_(k,j).

[...] We can then realize, that the evolution matrix can be raised to the power l. Evol_P = Evol**l.

[...] It will then be: einsum('ik,kj -> ij', Mint, Evol_P)

[...]

[...] - Get which power to raise the matrix to.

[...] l = power_si_mi_di-1

[...]

[...] - Raise the square evolution matrix to the power l.

[...] evolution_matrix_T_pwer_i = matrix_power(evolution_matrix_T_i, l)

[...]

[...] Mint_T_i = dot(Mint_T_i, evolution_matrix_T_pwer_i)

[...] or

[...] Mint_T_i = einsum('ik,kj -> ij', Mint_T_i, evolution_matrix_T_pwer_i)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24302 | tlinnet | 2014-06-25 02:14:50 +0200 (Wed, 25 Jun 2014) | 10 lines

[...]

[...] Tried to implement using lib.linear_algebra.matrix_power.square_matrix_power instead of matrix_power from numpy in NS CPMG 2site 3d.

[...]

[...] Strangely, then systemtest:

[...] test_hansen_cpmg_data_to_ns_cpmg_2site_3D_full

[...]

[...] starts to fail!

[...]

[...] This is very weird.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24303 | tlinnet | 2014-06-25 02:14:52 +0200 (Wed, 25 Jun 2014) | 5 lines

[...]

[...] Changes to unit test of NS CPMG 2site 3D.

[...]

[...] This is after the new initiated M0 matrix in init of target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24304 | tlinnet | 2014-06-25 03:41:00 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Double speed in NS CPMG 2site star, after using numpy.linalg.matrix_power instead of the lib version in relax.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24305 | tlinnet | 2014-06-25 03:41:02 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Triple speed in NS MMQ 2site, after using numpy.linalg.matrix_power instead of the lib version in relax.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24306 | tlinnet | 2014-06-25 03:41:04 +0200 (Wed, 25 Jun 2014) | 13 lines

[...]

[...] Small fix for making sure that power is a integer in ns mmq 2site.

[...]

[...] Following system tests was failing.

[...] - Relax_disp.test_korzhnev_2005_15n_dq_data

[...] - Relax_disp.test_korzhnev_2005_15n_sq_data

[...] - Relax_disp.test_korzhnev_2005_15n_zq_data

[...] - Relax_disp.test_korzhnev_2005_1h_sq_data

[...] - Relax_disp.test_korzhnev_2005_all_data

[...] - Relax_disp.test_korzhnev_2005_all_data_disp_speed_bug

[...]

[...] They should already be integers, but is now solved.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24307 | tlinnet | 2014-06-25 03:41:05 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Comment and spell fixing in NS CPMG 2site 3d.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24308 | tlinnet | 2014-06-25 03:41:07 +0200 (Wed, 25 Jun 2014) | 3 lines

[...]

[...] Triple speed in NS MMQ 3site, after using numpy.linalg.matrix_power instead of the lib version in relax.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24315 | bugman | 2014-06-25 13:23:16 +0200 (Wed, 25 Jun 2014) | 9 lines

[...]

[...] Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. relax-3.2.2.

[...]

[...] This is for the current revision r24314 and now includes all dispersion models. This shows the

[...] large speed increases in the numeric and MMQ models recently obtained.

[...]

[...] Note that something went wrong with the 'NS CPMG 2-site 3D full' model for the clustered analysis,

[...] most times were around 24 seconds except for the first which was strangely 292 seconds.

[...]........

[...] r24319 | bugman | 2014-06-25 17:04:00 +0200 (Wed, 25 Jun 2014) | 7 lines

[...]

[...] Updated the relaxation dispersion model profiling log file for relax version 3.2.2 vs. 3.2.1.

[...]

[...] This adds the MMQ and 3-site models to the log file. The new information shows that there was a 4.2

[...] times speed up for the 'MMQ CR72' model between these two relax versions, both for single spins and

[...] clustered spins, a much greater improvement than any other of the models.

[...]........

[...] r24320 | bugman | 2014-06-25 17:08:54 +0200 (Wed, 25 Jun 2014) | 7 lines

[...]

[...] Removed the now redundant disp_profile_all_3.2.2.table.txt dispersion model profiling table.

[...]

[...] As the dispersion model profiling master script now covers all dispersion models, the output from

[...] this script produces this table exactly. Therefore the end of the log files saved from running this

[...] script contains this table.

[...]........

[...]

[...]

(Browse SVN revision 24662)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:17:43 2014, SVN revision 24661:

Merged revisions 24091-24137,24140-24250,24252-24256,24258-24261 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24091 | tlinnet | 2014-06-18 15:44:58 +0200 (Wed, 18 Jun 2014) | 3 lines

Added DPL94 profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24092 | tlinnet | 2014-06-18 15:58:31 +0200 (Wed, 18 Jun 2014) | 5 lines

Modified profiling script for TSMK01, to use correct parameters k_AB and r20a.

Or else, the lib functions is just calculating with zero?

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24093 | tlinnet | 2014-06-18 16:03:46 +0200 (Wed, 18 Jun 2014) | 5 lines

Changes to profiling script of ns_cpmg_2site_expanded.

The model does not have r20a and r20b, but only r2.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24094 | tlinnet | 2014-06-18 16:07:10 +0200 (Wed, 18 Jun 2014) | 5 lines

Made changes to the profiling script of NS_CPMG_2SITE_3D.

Need to use the full model, when r2a and r2b is specified.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24095 | tlinnet | 2014-06-18 16:17:42 +0200 (Wed, 18 Jun 2014) | 5 lines

Changes to profiling script of ns expanded.

The unpacking can be removed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24096 | tlinnet | 2014-06-18 16:33:46 +0200 (Wed, 18 Jun 2014) | 5 lines

Fix for the profiling script of NS cpmg 3D.

The model should also be speciffied to full.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24097 | bugman | 2014-06-18 16:39:53 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] The disp_profile_all.py super script now prints out the current relax version information.

[...]

[...] This is so that the log files contain information about the repository revision and path.

[...]........

[...] r24098 | tlinnet | 2014-06-18 16:44:12 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling script of DPL94 to ns r1rho 2site.

[...]........

[...] r24099 | bugman | 2014-06-18 16:44:53 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Improved the final printout from the disp_profile_all.py dispersion model super profiling script.

[...]........

[...] r24100 | tlinnet | 2014-06-18 16:48:50 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Added profiling script for NS R1rho 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24101 | bugman | 2014-06-18 16:57:40 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] The disp_profile_all.py dispersion model super profiling script is now executable.

[...]........

[...] r24102 | bugman | 2014-06-18 17:02:56 +0200 (Wed, 18 Jun 2014) | 8 lines

[...]

[...] Decreased all nr_iter values by 10 and added more dispersion models to the super profiling script.

[...]

[...] This is for the dispersion model profiling scripts in test_suite/shared_data/dispersion/profiling/,

[...] all controlled by the disp_profile_all.py super profiling script for generating statistics using all

[...] of the other profiling scripts. The number of iterations needed to be decreased as otherwise it

[...] would now take almost 1 day to generate the statistics table.

[...]........

[...] r24103 | tlinnet | 2014-06-18 17:11:24 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Moved the ?\195?\131parter conversion in LM63 3site into the lib function.

[...]

[...] This cleans up the target api function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24104 | tlinnet | 2014-06-18 17:12:50 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling script for DPL94 to TAP03.

[...]........

[...] r24105 | tlinnet | 2014-06-18 17:13:47 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script for DPL94 to TP02.

[...]........

[...] r24106 | tlinnet | 2014-06-18 17:15:27 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script for DPL94 to MP05.

[...]........

[...] r24107 | tlinnet | 2014-06-18 17:16:24 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script for DPL94 to M61.

[...]........

[...] r24108 | tlinnet | 2014-06-18 17:21:39 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for TAP03 to be used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24109 | tlinnet | 2014-06-18 17:23:44 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for TP02, to be used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24110 | tlinnet | 2014-06-18 17:27:54 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for MP05.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24111 | tlinnet | 2014-06-18 17:31:55 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Modified profiling script for M61.

[...]

[...] This is the last one.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24112 | bugman | 2014-06-18 17:38:42 +0200 (Wed, 18 Jun 2014) | 8 lines

[...]

[...] Expansion of the disp_profile_all.py dispersion model super profiling scripts.

[...]

[...] The newly added profiling scripts for models 'M61', 'TP02', 'TAP03', and 'MP05' are now included in

[...] the super script to generate statistics for all of these as well. The nr_iter variable has also

[...] been changed to match the other analytic models, so that the standard deviations are lowered and the

[...] statistics are better.

[...]........

[...] r24113 | tlinnet | 2014-06-18 17:39:08 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the parameter conversion of MMQ CR72 into lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24114 | tlinnet | 2014-06-18 17:52:07 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the paramter conversions of k_AB, k_BA and pB into lib function of NS MMQ 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24115 | tlinnet | 2014-06-18 17:57:44 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the parameter conversion from target function to lib function for NS r1rho 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24116 | bugman | 2014-06-18 18:04:44 +0200 (Wed, 18 Jun 2014) | 10 lines

[...]

[...] Updated the dispersion model speed statistics for the disp_spin_speed branch vs. relax-3.2.2.

[...]

[...] This now includes the 'NS CPMG 2-site 3D', 'DPL94', and 'NS R1rho 2-site' dispersion models. The

[...] timings for the single spin analyses are now comparable to the clustered analysis, as the equivalent

[...] of 100 single spins is being used. The final printout is also in a better format to present for the

[...] relax release messages.

[...]

[...] These new results show the insane 160x speed up of the 'DPL94' model!

[...]........

[...] r24117 | bugman | 2014-06-18 18:22:56 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Alignment improvements for the final printout from the dispersion model super profiling script.

[...]

[...] The log file has been updated with what the new formatting will look like.

[...]........

[...] r24118 | bugman | 2014-06-18 18:34:54 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Updated the model names in the dispersion model super profiling script.

[...]

[...] The 'CR72', 'B14' and 'NS CPMG 2-site 3D' models are the full, slower versions rather than the

[...] faster models with R20 = R20A = R20B. The log file has been updated to match.

[...]........

[...] r24119 | tlinnet | 2014-06-18 18:52:37 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the parameter conversion for ns mmq 3site into lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24120 | bugman | 2014-06-18 18:54:41 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. relax-3.2.2.

[...]

[...] The 'M61', 'TP02', 'TAP03', and 'MP05' models are now included. The final printout has been

[...] manually updated to reflect the newest version of the disp_profile_all.py super profiling script.

[...]........

[...] r24121 | tlinnet | 2014-06-18 19:01:24 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the parameter conversion for r1rho 3site into lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24122 | tlinnet | 2014-06-18 19:03:08 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling script for CR72, so there is now a normal and a full version.

[...]........

[...] r24123 | tlinnet | 2014-06-18 19:04:01 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling for b14 to normal and full model.

[...]........

[...] r24124 | bugman | 2014-06-18 19:08:51 +0200 (Wed, 18 Jun 2014) | 9 lines

[...]

[...] Created a text file suitable for use as part of the relax release notes.

[...]

[...] This contains the statistically averaged profiling information of the speed of the dispersion models

[...] in the disp_spin_speed branch vs. relax-3.2.2. This file has been created so that it can be used as

[...] part of the release notes for the version of relax that contains the insane speed ups of this

[...] branch. This file will be updated as new models are profiled and if any more speed ups magically

[...] appear.

[...]........

[...] r24125 | tlinnet | 2014-06-18 19:10:13 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script for cpmg 3D.

[...]........

[...] r24126 | tlinnet | 2014-06-18 19:11:10 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script for ns cpmg star.

[...]........

[...] r24127 | tlinnet | 2014-06-18 19:12:12 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] copied profiling script for no rex.

[...]........

[...] r24128 | tlinnet | 2014-06-18 19:15:19 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for B14, to R20A=R20B.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24129 | tlinnet | 2014-06-18 19:20:19 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Removal of junk, and replacing func.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24130 | tlinnet | 2014-06-18 19:20:21 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Removal of junk from profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24131 | tlinnet | 2014-06-18 19:25:29 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Removal of junk for profiling script CR72 full.

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24132 | tlinnet | 2014-06-18 19:25:31 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Removal of junk from profiling script CR72 and making it work.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24133 | tlinnet | 2014-06-18 19:29:28 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Removal of junk, and implementing NO REX profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24134 | tlinnet | 2014-06-18 19:32:18 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for NS CPMG 2site 3D.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24135 | tlinnet | 2014-06-18 19:36:48 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for NS CPMG STAR and STAR FULL.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24136 | tlinnet | 2014-06-18 19:39:44 +0200 (Wed, 18 Jun 2014) | 2 lines

[...]

[...] Copied profiling script to be used for LM63.

[...]........

[...] r24137 | tlinnet | 2014-06-18 19:41:27 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling script to model IT99.

[...]........

[...] r24140 | tlinnet | 2014-06-18 20:17:26 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Added profiling script for IT99.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24141 | tlinnet | 2014-06-18 20:17:29 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for LM63.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24142 | tlinnet | 2014-06-18 20:22:02 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Moved the "eta_scale = 2.0**(-3.0/2.0)" out of lib function for mmq cr72, since this is only needs to be computed once.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24143 | tlinnet | 2014-06-18 20:23:51 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Spell fix in code for ns cpmg 2site expanded.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24144 | tlinnet | 2014-06-18 20:28:05 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Fix for missing comments.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24145 | tlinnet | 2014-06-18 20:32:40 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Fix for spaces aroung "=" outside functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24146 | tlinnet | 2014-06-18 20:41:35 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Critical fix for wrong space inserted in ns mmq 3site mq.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24147 | tlinnet | 2014-06-18 20:41:37 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Fixed the input for unit test of mmq cr72.

[...]

[...] The number of input parameters has been lowered.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24148 | tlinnet | 2014-06-18 20:50:32 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Added additional math domain checking in B14.

[...]

[...] This is when v1c is less than 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24149 | tlinnet | 2014-06-18 20:58:39 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Comment fixing, for explaining the masking and replacing when dw is zero?\195?\131.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24150 | tlinnet | 2014-06-18 21:02:57 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copied profiling script to be used for profiling the use of higher dimensional data for the numpy eig function.

[...]........

[...] r24151 | tlinnet | 2014-06-19 17:41:41 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Implemented the collection of the 3D exchange matrix, for rank [NE][NS][NM][NO][ND][7][7].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24152 | tlinnet | 2014-06-19 17:41:45 +0200 (Thu, 19 Jun 2014) | 5 lines

[...]

[...] Implemented test, to see if 3D exchange matrixes are the same.

[...]

[...] This can be tested while running systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24153 | tlinnet | 2014-06-19 17:41:49 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Shifted the computation of Rexpo two loops up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24154 | tlinnet | 2014-06-19 17:41:51 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Added intermediate step with for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24155 | tlinnet | 2014-06-19 17:41:55 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Added another intermediate step.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24156 | tlinnet | 2014-06-19 17:41:59 +0200 (Thu, 19 Jun 2014) | 5 lines

[...]

[...] Added function to compute the matrix exponential for higher dimensional data of shape [NE][NS][NM][NO][ND][7][7].

[...]

[...] This is done by using numpy.einsum, to make the dot product of the last two axis.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24157 | tlinnet | 2014-06-19 17:42:02 +0200 (Thu, 19 Jun 2014) | 7 lines

[...]

[...] Inserted intermediate step, to check if the matrix propagator to evolve the magnetization is equal

[...] when done for lower dimensional data of shape [7][7] and higher dimensional data of shape [NE][NS][NM][NO][ND][7][7].

[...]

[...] A short example is shown at the wiki:

[...] http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24158 | tlinnet | 2014-06-19 17:42:05 +0200 (Thu, 19 Jun 2014) | 35 lines

[...]

[...] Implemented double speed of model NS CPMG 2site 3D:

[...]

[...] This is done by moving the costly calculation of the matrix exponential out of the for loops.

[...] The trick was to find a method to do dot product of higher dimensions.

[...] Thiw was done with numpy.einsum:

[...] Example at:

[...] http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum

[...]

[...] Example:

[...] dot_V_W = einsum('...ij,...jk', V, W_exp_diag)

[...] Where V, and W_exp_diag has shape: [NE][NS][NM][NO][ND][7][7]

[...]

[...] The profiling script shows a 2X speed up.

[...]

[...] ----BEFORE:

[...] SINGLE

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 18.811 18.811 :1()

[...] 1 0.002 0.002 18.811 18.811 pf_3d:407(single)

[...] CLUSTER

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 18.315 18.315 :1()

[...] 1 0.001 0.001 18.315 18.315 pf_3d:431(cluster)

[...]

[...] -----AFTER:

[...] SINGLE

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 8.818 8.818 :1()

[...] 1 0.002 0.002 8.818 8.818 pf_3d:407(single)

[...] CLUSTER

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 9.082 9.082 :1()

[...] 1 0.001 0.001 9.082 9.082 pf_3d:431(cluster)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24159 | tlinnet | 2014-06-19 17:42:14 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Made notation consistent for variables, using "_i" to clarify extracted data from matrix.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24160 | tlinnet | 2014-06-19 17:42:16 +0200 (Thu, 19 Jun 2014) | 13 lines

[...]

[...] Moved the calculation the evolution matrix out of for loops.

[...]

[...] The trick is that numpy.einsum allows for dot product of higher dimension:

[...]

[...] - The the essential evolution matrix.

[...] - This is a dot product of the outer [7][7] matrix of the Rexpo_mat and r180x_mat matrixes, which

[...] - have the shape [NE][NS][NM][NO][ND][7][7].

[...] - This can be achieved by using numpy einsum, and where ellipsis notation will use the last axis.

[...] evolution_matrix_mat = einsum('...ij,...jk', Rexpo_mat, r180x_mat)

[...] evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, Rexpo_mat)

[...] evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, evolution_matrix_mat)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24161 | tlinnet | 2014-06-19 17:42:20 +0200 (Thu, 19 Jun 2014) | 5 lines

[...]

[...] Implemeted systemtest: test_cpmg_synthetic_b14_to_ns3d_cluster

[...]

[...] This is to cathc failures of the model, when data is clusted.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24162 | tlinnet | 2014-06-19 17:42:23 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Removed unused variables in NS CPMG 2site 3D, to clean up the code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24163 | tlinnet | 2014-06-19 17:42:25 +0200 (Thu, 19 Jun 2014) | 6 lines

[...]

[...] Replaced the inner dot product with numpy einsum.

[...]

[...] This though slows it down from 8.5 s to 13 s.

[...] This is only as an intermediate step, how to figure to dot product inner parts of the big matrix.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24164 | tlinnet | 2014-06-19 17:42:28 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Changed back from einsum to dot method, since dot method it faster for square matrixes.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24165 | tlinnet | 2014-06-19 20:17:47 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Added the ns matrice, rr1rho_3d_rankN, to collect the multi dimensional 3D exchange matrix, of rank [NE][NS][NM][NO][ND][6][6].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24166 | tlinnet | 2014-06-19 20:17:49 +0200 (Thu, 19 Jun 2014) | 6 lines

[...]

[...] Added a check in lib/dispersion/ns_r1hro_2site.py, to see if the newly created multidimensional

[...] ns matrix of rank NE][NS][NM][NO][ND][6][6], is equal to the previous [6][6] matrix.

[...]

[...] It is.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24167 | tlinnet | 2014-06-19 20:52:49 +0200 (Thu, 19 Jun 2014) | 5 lines

[...]

[...] Added the relax_time to collection of rr1rho_3d_rankN matrix collection.

[...]

[...] This is to pre-multiply all elements with the time.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24168 | tlinnet | 2014-06-19 20:52:51 +0200 (Thu, 19 Jun 2014) | 5 lines

[...]

[...] Added a check, that the pre- relax_time multiplied multidimensional array, equal the previous.

[...]

[...] It does, to the sum of 1.0e-13.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24169 | tlinnet | 2014-06-19 20:52:53 +0200 (Thu, 19 Jun 2014) | 6 lines

[...]

[...] Made the function use the new multidimensional R_mat matrix.

[...]

[...] Systemtest: test_tp02_data_to_ns_r1rho_2site

[...] still passes.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24170 | tlinnet | 2014-06-19 20:52:55 +0200 (Thu, 19 Jun 2014) | 6 lines

[...]

[...] Fix to the matrix_exponential_rankN, to return the exact exponential for any higher dimensional square matrix

[...] of shape [NE][NS][NM][NO][ND][X][X].

[...]

[...] The fix was to the eye(X), to make the shape the same as the input shape.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24171 | tlinnet | 2014-06-19 20:52:57 +0200 (Thu, 19 Jun 2014) | 26 lines

[...]

[...] Moved the costly calculation of the matrix exponential out of for loops.

[...]

[...] It was the numpy.eig and numpy.inv which was draining power.

[...]

[...] This speeds up model NS R1rho 2site, by a factor 4X:

[...] BEFORE:

[...] Single:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 32.552 32.552 :1()

[...] 1 0.002 0.002 32.552 32.552 pf_nsr1rho2site:530(single)

[...] Cluster:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 33.307 33.307 :1()

[...] 1 0.008 0.008 33.307 33.307 pf_nsr1rho2site:554(cluster)

[...]

[...] AFTER:

[...] Single:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 8.286 8.286 :1()

[...] 1 0.002 0.002 8.286 8.286 pf_nsr1rho2site:530(single)

[...] Cluster:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 8.223 8.223 :1()

[...] 1 0.007 0.007 8.223 8.223 pf_nsr1rho2site:554(cluster)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24172 | tlinnet | 2014-06-19 21:05:49 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Made the returned multidimensional rr1rho_3d_rankN, be of float64 type.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24173 | tlinnet | 2014-06-19 21:05:51 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Cleaned up the code of NS R1rho 2site, and removed the matrix argument to the function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24174 | tlinnet | 2014-06-19 21:05:53 +0200 (Thu, 19 Jun 2014) | 3 lines

[...]

[...] Removed the parsing of a matrix to the lib function of NS R1rho 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24175 | tlinnet | 2014-06-20 08:11:47 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Added the function "rcpmg_star_rankN" for the collection of the multidimensional relaxation matrix for model NS CPMG 2site star.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24176 | tlinnet | 2014-06-20 08:11:49 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Insert check, that the newly created multidimensional matrix is the same.

[...]

[...] They are, but only to the fifth digit.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24177 | tlinnet | 2014-06-20 08:11:51 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Started using the newly created multidimensional matrix.

[...]

[...] test_hansen_cpmg_data_to_ns_cpmg_2site_star

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24178 | tlinnet | 2014-06-20 08:11:53 +0200 (Fri, 20 Jun 2014) | 4 lines

[...]

[...] Added the systemtest: test_cpmg_synthetic_b14_to_ns_star_cluster, to check

[...] for the model is still working after change.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24179 | tlinnet | 2014-06-20 08:11:55 +0200 (Fri, 20 Jun 2014) | 59 lines

[...]

[...] Started using the newly cR2 variable, extracted from higher dimensional data.

[...]

[...] This should be okay, but systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_star, now fails:

[...]

[...] Optimised parameter values:

[...] r2 (SQ CPMG - 500.00000000 MHz) 4.998935658499767

[...] r2 (SQ CPMG - 800.00000000 MHz) 6.898256259440341

[...] dw 2.092924953509931

[...] pA 0.986716058519642

[...] kex 2438.044235414625746

[...]

[...] Optimised parameters:

[...]

[...] Parameter Value (:70) Value (:71)

[...] R2 (500 MHz) 6.95812598916492 4.99893565849977

[...] R2 (800 MHz) 9.39656319607375 6.89825625944034

[...] pA 0.989701272773474 0.986716058519642

[...] dw 5.67316761415756 2.09292495350993

[...] kex 1713.67781672744 2438.04423541463

[...] chi2 52.510693756237 15.1644902423334

[...]

[...] F

[...] ======================================================================

[...] FAIL: test_hansen_cpmg_data_to_ns_cpmg_2site_star (test_suite.system_tests.relax_disp.Relax_disp)

[...] Optimisation of Dr. Flemming Hansen's CPMG data to the 'NS CPMG 2-site star' dispersion model.

[...] ----------------------------------------------------------------------

[...] Traceback (most recent call last):

[...] File "/Users/tlinnet/software/disp_spin_speed/test_suite/system_tests/relax_disp.py", line 3211, in test_hansen_cpmg_data_to_ns_cpmg_2site_star

[...] self.assertAlmostEqual(spin71.pA, 0.992258541625787, 2)

[...] AssertionError: 0.98671605851964195 != 0.992258541625787 within 2 places

[...]

[...] ---------------

[...] Compared to systemtest:

[...] It seems that there has been "problems" with residue 71 before.

[...]

[...] # Checks for residue :70.

[...] self.assertAlmostEqual(spin70.r2[r20_key1], 6.95543947938561, 1)

[...] self.assertAlmostEqual(spin70.r2[r20_key2], 9.38991914134929, 1)

[...] self.assertAlmostEqual(spin70.pA, 0.989702750971153, 3)

[...] self.assertAlmostEqual(spin70.dw, 5.67527122494516, 1)

[...] self.assertAlmostEqual(spin70.kex/1000, 1715.72032391817/1000, 1)

[...] self.assertAlmostEqual(spin70.chi2, 52.5011991483842, 1)

[...]

[...] # Checks for residue :71.

[...] self.assertAlmostEqual(spin71.r2[r20_key1], 4.992594256544, 1)

[...] self.assertAlmostEqual(spin71.pA, 0.992258541625787, 2)

[...] self.assertAlmostEqual(spin71.dw/100, 2.75140650899058/100, 2)

[...] self.assertAlmostEqual(spin71.kex/100000, 2106.60885247431/100000, 2)

[...] self.assertAlmostEqual(spin71.chi2/100, 17.3293856656588/100, 1)

[...]

[...] # Test the conversion to k_AB from kex and pA.

[...] self.assertEqual(spin70.k_AB, spin70.kex * (1.0 - spin70.pA))

[...] self.assertEqual(spin71.k_AB, spin71.kex * (1.0 - spin71.pA))

[...]

[...] # Test the conversion to k_BA from kex and pA.

[...] self.assertEqual(spin70.k_BA, spin70.kex * spin70.pA)

[...] self.assertEqual(spin71.k_BA, spin71.kex * spin71.pA)

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24180 | tlinnet | 2014-06-20 08:11:57 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Changes of values to systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_star.

[...]

[...] The values are changed, since chi2 is lower than before.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24181 | tlinnet | 2014-06-20 08:19:17 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the costly finding of matrix exponential out of for loops for eR_tcp.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24182 | tlinnet | 2014-06-20 08:19:20 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Rearranged the code, to properly show the nested matrix exponentials in dot functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24183 | tlinnet | 2014-06-20 08:29:42 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the costly matrix_exponential of cR2 out of for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24184 | tlinnet | 2014-06-20 08:29:44 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Rearranged the dot code, for better view.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24185 | tlinnet | 2014-06-20 08:29:46 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Cleaned up the code in model NS CPMG 2site star.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24186 | tlinnet | 2014-06-20 08:37:29 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Simplified model CPMG 2site 3D.

[...]

[...] The expansion of matrixes to higher dimensionality is not neccessary.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24187 | tlinnet | 2014-06-20 08:48:56 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Further cleaned up the code in NS CPMG 2site start.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24188 | tlinnet | 2014-06-20 08:53:30 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Removed input of matrix, Rr, Rex, RCS and R to model NS CPMG 2site star.

[...]

[...] These matrixes is now extracted from ns matrix function rcpmg_star_rankN.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24189 | tlinnet | 2014-06-20 09:18:00 +0200 (Fri, 20 Jun 2014) | 6 lines

[...]

[...] Implemented the collection of the multidimensional matrix m1 and m2 in model ns mmq 2site.

[...]

[...] Inserted also a check, that the newly computed matrix is equal.

[...] They are, to the 6 digit.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24190 | tlinnet | 2014-06-20 09:38:26 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Started using the newly created multidimensional m1 and m2 matrixes.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24191 | tlinnet | 2014-06-20 09:38:30 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the costly calculation of matrix_exponential of M1 and M2 out of for loop, in model ns_mmq_2site_mq.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24192 | tlinnet | 2014-06-20 09:38:33 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Made the function matrix_exponential_rankN also find the exponential if the experiments indices are missing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24193 | tlinnet | 2014-06-20 09:52:13 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Fix for an extra axis inserted in eye function, when dimensionality is only [NS][NM][NO][ND].

[...]

[...] This also fixes the index in the lib function of ns_mmq_2site_mq.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24194 | tlinnet | 2014-06-20 10:54:01 +0200 (Fri, 20 Jun 2014) | 12 lines

[...]

[...] Implemented same functionality in mmq_2site_sq_dq_zq.

[...]

[...] Problem, following system test fails!

[...] test_korzhnev_2005_15n_dq_data

[...] test_korzhnev_2005_15n_mq_data

[...] test_korzhnev_2005_15n_sq_data

[...] test_korzhnev_2005_1h_mq_data

[...] test_korzhnev_2005_1h_sq_data

[...] test_korzhnev_2005_all_data

[...] test_korzhnev_2005_all_data_disp_speed_bug

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24195 | tlinnet | 2014-06-20 10:54:04 +0200 (Fri, 20 Jun 2014) | 7 lines

[...]

[...] Removed grid search, and lowered number of iterations for systemtest:

[...] test_cpmg_synthetic_b14_to_ns3d_cluster

[...] test_cpmg_synthetic_b14_to_ns_star_cluster

[...]

[...] This is to speed them up, since they before took 30 seks.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24196 | tlinnet | 2014-06-20 10:54:06 +0200 (Fri, 20 Jun 2014) | 34 lines

[...]

[...] Fix for ns_mmq_2site_mq.

[...]

[...] Variable was wrong called.

[...] There seems to be a serious problem more with mq.

[...]

[...] test_korzhnev_2005_15n_dq_data

[...] self.assertAlmostEqual(spin.r2[r20_key3], 13.6153887849344, 2)

[...] AssertionError: 13.624172993315323 != 13.6153887849344 within 2 places

[...]

[...] test_korzhnev_2005_15n_mq_data

[...] self.assertAlmostEqual(spin.r2[r20_key1], 6.02016436619016, 1)

[...] AssertionError: 0.00032836499986468263 != 6.02016436619016 within 1 places

[...]

[...] test_korzhnev_2005_15n_sq_data

[...] self.assertAlmostEqual(spin.kex/1000, 433.176323890829849/1000, 3)

[...] AssertionError: 0.42987451018414946 != 0.43317632389082983 within 3 places

[...]

[...] test_korzhnev_2005_1h_mq_data

[...] self.assertAlmostEqual(spin.r2[r20_key2], 0.039223196112941, 2)

[...] AssertionError: 0.033056489136372089 != 0.039223196112941 within 2 places

[...]

[...] test_korzhnev_2005_1h_sq_data

[...] self.assertAlmostEqual(spin.chi2, 50.3431330819767, 1)

[...] AssertionError: 50.400683622209989 != 50.3431330819767 within 1 places

[...]

[...] test_korzhnev_2005_all_data

[...] self.assertAlmostEqual(spin.r2[r20_key1], 6.67288025927458, 4)

[...] AssertionError: 6.7044178906652689 != 6.67288025927458 within 4 places

[...]

[...] test_korzhnev_2005_all_data_disp_speed_bug

[...] self.assertAlmostEqual(spin.chi2/1000, 162.511988511609/1000, 3)

[...] AssertionError: 0.49707952193522587 != 0.162511988511609 within 3 places

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24197 | tlinnet | 2014-06-20 10:54:07 +0200 (Fri, 20 Jun 2014) | 6 lines

[...]

[...] Reinserted old code.

[...]

[...] This fixes:

[...] test_korzhnev_2005_15n_mq_data

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24198 | tlinnet | 2014-06-20 11:39:04 +0200 (Fri, 20 Jun 2014) | 10 lines

[...]

[...] Forcing the dtype to be complex64, instead of complex128.

[...]

[...] This solves a range of systemtests.

[...] The one who fails now is:

[...]

[...] -test_korzhnev_2005_15n_zq_data

[...] -test_korzhnev_2005_1h_mq_data

[...] -test_korzhnev_2005_1h_sq_data

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24199 | tlinnet | 2014-06-20 12:00:12 +0200 (Fri, 20 Jun 2014) | 7 lines

[...]

[...] Forces complex64 in ns_mmq_2site_sq_dq_zq instead complex128.

[...]

[...] This fixes systemtests:

[...] - test_korzhnev_2005_15n_zq_data

[...] - test_korzhnev_2005_1h_sq_data

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24200 | tlinnet | 2014-06-20 12:00:15 +0200 (Fri, 20 Jun 2014) | 8 lines

[...]

[...] Force complex64 in ns_mmq_2site_mq.

[...]

[...] This solves all systemtests.

[...]

[...] Forcing to be complex64, does not seems like a long standing solution, since

[...] complex128 is possible.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24201 | tlinnet | 2014-06-20 12:00:18 +0200 (Fri, 20 Jun 2014) | 17 lines

[...]

[...] Fix for using the old matrix_exponential of m1.

[...]

[...] Onye:

[...] - test_korzhnev_2005_15n_sq_data

[...]

[...] Is still failing.

[...] That still uses the matrix_exponential_rankN.

[...]

[...] There seems to be a problem with matrix_exponential_rankN, when doing

[...] complex numbers.

[...]

[...] Maybe the dtype has to get fixed?

[...] Use it as a input argument?

[...]

[...] It must be the einsum

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24202 | tlinnet | 2014-06-20 15:22:16 +0200 (Fri, 20 Jun 2014) | 6 lines

[...]

[...] Added the "dtype" argument to function matrix_exponential_rankN.

[...]

[...] This is to force the conversion of dtype, if they are of other type.

[...] This can be conversion from complex128 to complex64.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24203 | tlinnet | 2014-06-20 15:22:18 +0200 (Fri, 20 Jun 2014) | 8 lines

[...]

[...] Fix the bug: "M2_i = M1_mat", which was causing the problems getting systemtests to pass.

[...]

[...] Removed the specifications of which dtype, the initial matrices are created.

[...] They can be converted later, with the specification of dtype to matrix_exponential_rankN().

[...]

[...] All systemtests now pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24204 | tlinnet | 2014-06-20 15:22:19 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Moved the Bloch-McConnell matrix for 2-site exchange into lib/dispersion/ns_matrices.py.

[...]

[...] This is for consistency with the other code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24205 | tlinnet | 2014-06-20 15:22:21 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the matrices for Bloch-McConnell from lib ns_mmq_2site, since they are now defined in ns_matrices.py

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24206 | tlinnet | 2014-06-20 15:48:33 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Code cleanup and copyright adding to lib/dispersion/ns_matrices.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24207 | tlinnet | 2014-06-20 15:48:35 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Moved the Bloch-McConnell matrix for 3-site exchange, into the lib/dispersion/ns_matrices.py.

[...]

[...] This is to standard the code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24208 | tlinnet | 2014-06-20 17:42:48 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed m1 and m2 to be sent to lib function of ns mmq 2site, since they are now populated inside the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24209 | tlinnet | 2014-06-20 17:42:51 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Implemented the Bloch-McConnell matrix for 3-site exchange, for multidimensional data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24210 | tlinnet | 2014-06-20 17:42:53 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Inserted a check, that the new higher dimensional m1 and m2 matrixes are equal to before.

[...]

[...] They are, to the 5 digit.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24211 | tlinnet | 2014-06-20 17:42:54 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Started using the newly created highher dimensional Bloch-McConnell matrix for 3-site exchange.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24212 | tlinnet | 2014-06-20 17:42:56 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the calculation of the matrix exponential out of for loops for ns mmq 3site mq.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24213 | tlinnet | 2014-06-20 17:42:58 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Converted ns mmq 3site/sq/dq/zq to calculte the matrix exponential out of the for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24214 | tlinnet | 2014-06-20 17:43:00 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed the complex64 to be used as dtype in matrix exponential. Fix for missing "_i" in variable.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24215 | tlinnet | 2014-06-20 17:54:32 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Removed m1 and m2 to be sent to target function of ns_mmq_3site_chi2.

[...]

[...] They are now populated inside the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24216 | tlinnet | 2014-06-20 17:54:33 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Documentation and input fix for ns mmq 2site. The m1 and m2 matrices are populated inside the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24217 | tlinnet | 2014-06-20 19:13:14 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Renamed some numerical matrices, to get consistency in naming.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24218 | tlinnet | 2014-06-20 19:13:16 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Implemented multidimensional r1rho 3d 3site 3D exchange matrix.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24219 | tlinnet | 2014-06-20 19:13:18 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Inserted check, that newly multi dimensional matrix is equal the old.

[...]

[...] It is, to the 13 digit.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24220 | tlinnet | 2014-06-20 19:44:00 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Started using the newly multidimensional 3D exchange matrix.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24221 | tlinnet | 2014-06-20 19:44:02 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved the calculation of the matrix exponential out of the for loops for ns r1rho 3site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24222 | tlinnet | 2014-06-20 19:44:03 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed the parameter "matrix" to be send to lib function of ns r1rho 3site, since it is now populated inside the lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24223 | tlinnet | 2014-06-20 19:44:05 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Moved parameter conversion for ns r1rho 3site inside lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24224 | tlinnet | 2014-06-20 20:03:25 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Cleaned up the Dispersion class target function, for creation of matrices, which is now populated inside the lib functions instead.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24225 | tlinnet | 2014-06-20 20:03:27 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed pA and pB from the matrice population function rcpmg_star_rankN, since they are not used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24226 | tlinnet | 2014-06-20 20:03:28 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed pA and pB from the matrice population function rr1rho_3d_2site_rankN, since they are not used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24227 | tlinnet | 2014-06-20 20:03:30 +0200 (Fri, 20 Jun 2014) | 5 lines

[...]

[...] Documentation fix for the dimensionality for model ns r1rho 2site.

[...]

[...] The data is lined up to be of form [NE][NS][NM][NO][ND].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24228 | tlinnet | 2014-06-20 20:07:16 +0200 (Fri, 20 Jun 2014) | 3 lines

[...]

[...] Removed pA, pB and pC from the matrice population function rr1rho_3d_3site_rankN, since they are not used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24229 | tlinnet | 2014-06-21 08:42:41 +0200 (Sat, 21 Jun 2014) | 5 lines

[...]

[...] Deleted the profiling of eig function profiling script.

[...]

[...] This was never implemented.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24230 | tlinnet | 2014-06-21 08:42:45 +0200 (Sat, 21 Jun 2014) | 6 lines

[...]

[...] For all profiling scripts, added conversion to numpy array for CPMG frqs and spin_lock, since some models complained in 3.2.2, that

[...] they were of list types.

[...]

[...] Also fixed IT99 to only have 1 spin, since clustering is broken in 3.2.2.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24231 | tlinnet | 2014-06-21 08:42:47 +0200 (Sat, 21 Jun 2014) | 6 lines

[...]

[...] Modified super profiling script, to allow input to script, where alternative version of relax is positioned.

[...] Collected the variables in a list of lists, for better overview.

[...]

[...] Added a print out comment to IT99, to remember the bug.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24232 | tlinnet | 2014-06-21 09:50:09 +0200 (Sat, 21 Jun 2014) | 3 lines

[...]

[...] Added comment field to super profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24233 | tlinnet | 2014-06-21 10:21:27 +0200 (Sat, 21 Jun 2014) | 8 lines

[...]

[...] Math domain fix for ns cpmg 2site expanded.

[...]

[...] This is when t108 or t112 is zero, in the multidimensional array, a division error occurs.

[...] The elements are first set to 1.0, to allow for computation.

[...] Then elements are later replaced with 1e100.

[...] Lastly, if the elements are not part of the "True" dispersion point structure, they are cleaned out.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24234 | tlinnet | 2014-06-21 10:21:29 +0200 (Sat, 21 Jun 2014) | 6 lines

[...]

[...] Precission lowering of systemtest, test_korzhnev_2005_15n_sq_data and test_korzhnev_2005_1h_sq_data.

[...]

[...] The systemtests does not fail on Linux 64 bit system, but only on Mac 32 bit system.

[...] This is due to floating error deviations.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24235 | tlinnet | 2014-06-22 22:11:57 +0200 (Sun, 22 Jun 2014) | 3 lines

[...]

[...] Added log files for super profiling against tags 3.2.1 and 3.2.2.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24236 | tlinnet | 2014-06-23 11:14:29 +0200 (Mon, 23 Jun 2014) | 5 lines

[...]

[...] Copied lib.linear_algebra.matrix_exponential to lib.dispersion.matrix_exponential.

[...]

[...] The matrix exponential of higher dimensional data is only used in the dispersion part of relax.

[...]........

[...] r24237 | tlinnet | 2014-06-23 13:04:16 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Added to _init_, the new lib.dispersion.matrix_exponential module.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24238 | tlinnet | 2014-06-23 13:04:18 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Added to unit_tests/_lib/_dispersion/__init__.py, the new unit test file: test_matrix_exponential.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24239 | tlinnet | 2014-06-23 13:04:20 +0200 (Mon, 23 Jun 2014) | 7 lines

[...]

[...] Added numpy array save files.

[...]

[...] They are the numpy array structures, which are send in from systemtest: Relax_disp.test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

[...]

[...] These numpy array structures, are used in unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24240 | tlinnet | 2014-06-23 13:04:22 +0200 (Mon, 23 Jun 2014) | 9 lines

[...]

[...] Added unit test unit_tests/_lib/_dispersion/test_matrix_exponential.py to test the matrix exponential from higher dimensional data.

[...]

[...] - lib.dispersion.matrix_exponential.matrix_exponential_rankN

[...] will match against

[...] - lib.linear_algebra.matrix_exponential.

[...]

[...] Data which is used for comparison, comes from system test: Relax_disp.test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24241 | tlinnet | 2014-06-23 14:09:24 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Renamed function to return data in unit test _lib/_dispersion/test_matrix_exponential.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24242 | tlinnet | 2014-06-23 14:09:26 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Fix to lib/dispersion/matrix_exponential.py, since the svn copy command was used on non-updated version of the file.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24243 | tlinnet | 2014-06-23 14:09:27 +0200 (Mon, 23 Jun 2014) | 5 lines

[...]

[...] Added unit test for doing the matrix exponential for complex data.

[...]

[...] This test shows, that the dtype=complex64, should be removed from lib/dispersion/ns_mmq_2site.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24244 | tlinnet | 2014-06-23 14:09:29 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Added data for unit test for the testing of the matrix_exponential_rankN.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24245 | bugman | 2014-06-23 14:14:15 +0200 (Mon, 23 Jun 2014) | 7 lines

[...]

[...] Expanded the dispersion profiling master script to handle any two relax versions.

[...]

[...] To compare two relax versions, for example 3.2.2 to 3.2.1, either the path1 and path2 variables or

[...] two command line arguments can be supplied. The first path should be for the newest version. This

[...] will allow for comparing the speed differences between multiple relax versions in the future.

[...]........

[...] r24246 | bugman | 2014-06-23 14:15:00 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Added Troels Linnet to the copyright notice of the dispersion model master profiling script.

[...]........

[...] r24247 | tlinnet | 2014-06-23 14:48:04 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Split matrix_exponential_rankN into matrix_exponential_rank_NE_NS_NM_NO_ND_x_x and matrix_exponential_rank_NS_NM_NO_ND_x_x.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24248 | tlinnet | 2014-06-23 15:45:27 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Moved numerical solution matrices into the corresponding lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24249 | tlinnet | 2014-06-23 15:58:59 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Copied profiling scripts, to be used for 3site models and mmq models.

[...]........

[...] r24250 | tlinnet | 2014-06-23 16:23:31 +0200 (Mon, 23 Jun 2014) | 3 lines

[...]

[...] Implemented profiling script for LM63, 3 site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24252 | bugman | 2014-06-23 16:42:48 +0200 (Mon, 23 Jun 2014) | 5 lines

[...]

[...] Improved the relax version printouts for the dispersion model master profiling script.

[...]

[...] This now reports both relax versions.

[...]........

[...] r24253 | bugman | 2014-06-23 16:55:06 +0200 (Mon, 23 Jun 2014) | 5 lines

[...]

[...] Fix for a mistake introduced in the previous commit (r24252).

[...]

[...] The printout of copied files was incorrect.

[...]........

[...] r24254 | bugman | 2014-06-23 17:37:54 +0200 (Mon, 23 Jun 2014) | 8 lines

[...]

[...] Removed a tonne of unused imports from the dispersion model profiling scripts.

[...]

[...] This is to allow most of the scripts to run on the relax 3.1.x versions, as well as to clean up the

[...] scripts. The unused imports were found using the command:

[...]

[...] pylint test_suite/shared_data/dispersion/profiling/*.py --disable=all --enable=unused-import

[...]........

[...] r24255 | bugman | 2014-06-23 19:41:29 +0200 (Mon, 23 Jun 2014) | 8 lines

[...]

[...] Added a relaxation dispersion model profiling log file for relax version 3.2.1 vs. 3.2.0.

[...]

[...] This is the output from the dispersion model profiling master script. It shows a 2.2 times increase

[...] in speed for the B14 and B14 full models, with all other models remaining at the same speed. This

[...] matches the changes for relax 3.2.1 (https://gna.org/forum/forum.php?forum_id=2462), the main

[...] feature of which is a major bugfix for the B14 models.

[...]........

[...] r24256 | bugman | 2014-06-23 19:55:20 +0200 (Mon, 23 Jun 2014) | 5 lines

[...]

[...] The 'relax -v' command is now used for the dispersion model profiling script initial printout.

[...]

[...] This is to show the two different relax versions being compared.

[...]........

[...] r24258 | bugman | 2014-06-24 09:28:02 +0200 (Tue, 24 Jun 2014) | 13 lines

[...]

[...] Modifications to the dispersion model profiling master script.

[...]

[...] The info.print_sys_info() function of the current relax version is being called at the start to show

[...] all information about the current system. This is useful to know the speed of the machine, the OS,

[...] the Python version and numpy version. The numpy version is important as future versions might

[...] optimise certain functions that are currently very slow, hence that could be a cause of model speed

[...] differences.

[...]

[...] In addition, the path variables path1 and path2 have been renamed to path_new and path_old to make

[...] it clearer which is which. And the individual profiling scripts are no longer copied to the base

[...] directory of the relax versions being compared, and are run in place.

[...]........

[...] r24259 | bugman | 2014-06-24 09:34:34 +0200 (Tue, 24 Jun 2014) | 9 lines

[...]

[...] Added a relaxation dispersion model profiling log file for relax version 3.2.2 vs. 3.2.1.

[...]

[...] This is the output from the dispersion model profiling master script. It shows that the relax 3.2.2

[...] release did not in fact feature "a large speed up of all analytic relaxation dispersion models" as

[...] described in the release notes at https://gna.org/forum/forum.php?forum_id=2465. For the CPMG

[...] models there is a 1 to 2 times increase in speed. But for the R1rho models, there is a 1 to 2 times

[...] decrease in speed.

[...]........

[...] r24260 | bugman | 2014-06-24 09:36:36 +0200 (Tue, 24 Jun 2014) | 6 lines

[...]

[...] Added a relaxation dispersion model profil

(Browse SVN revision 24661)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:13:10 2014, SVN revision 24660:

Merged revisions 24059-24082,24084-24089 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24059 | tlinnet | 2014-06-17 20:26:37 +0200 (Tue, 17 Jun 2014) | 3 lines

Implemented target function for LM63 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24060 | tlinnet | 2014-06-17 20:26:39 +0200 (Tue, 17 Jun 2014) | 3 lines

Implemented the lib function for LM63 3site, for higher dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24061 | tlinnet | 2014-06-17 20:26:41 +0200 (Tue, 17 Jun 2014) | 4 lines

Removed the number of disp points in target function for LM63 3site, since it is no ?\195?\131longer used,
but have been replaced with mask replacements.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24062 | tlinnet | 2014-06-18 09:25:45 +0200 (Wed, 18 Jun 2014) | 6 lines

Implemented class function in target class, to return back_calc values as list of lists.

This is the back and forth conversion between the data structures implemented when gathering the data,
and the data send to the library function of higher dimensionality.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24063 | tlinnet | 2014-06-18 09:25:48 +0200 (Wed, 18 Jun 2014) | 3 lines

Used the new class function: get_back_calc(), to get the data in the right structures when interpolating for graphs.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24064 | tlinnet | 2014-06-18 09:25:49 +0200 (Wed, 18 Jun 2014) | 3 lines

Removed superfluous check, after the returned data is now in right structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24065 | tlinnet | 2014-06-18 09:41:11 +0200 (Wed, 18 Jun 2014) | 9 lines

Made changes to the dir argument of systemtest Relax_disp.test_r1rho_kjaergaard.

This is to prepare for:
sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2_eff as function of Omega_eff
sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1]

[...]

[...] This is also to test an expected bug, if R1 is not loaded.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24066 | bugman | 2014-06-18 10:12:07 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] The relaxation dispersion target function can now be set up when the optional frqs_H argument is None.

[...]

[...] This allows the profiling scripts to run.

[...]........

[...] r24067 | bugman | 2014-06-18 10:12:35 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Typo fix from the previous commit.

[...]........

[...] r24068 | bugman | 2014-06-18 10:14:44 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] More stability fixes for the relaxation dispersion target function initialisation.

[...]

[...] The target function can now be initialised when the r1 and chemical_shift arguments are None.

[...]........

[...] r24069 | tlinnet | 2014-06-18 10:29:56 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Split the systemtest test_r1rho_kjaergaard into a setup function, and a test function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24070 | tlinnet | 2014-06-18 10:30:00 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Renamed systemtes test_r1rho_kjaergaard to test_r1rho_kjaergaard_auto.

[...]

[...] This corresponds to the use of the automatic analysis method.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24071 | tlinnet | 2014-06-18 10:30:02 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Split systemtest test_r1rho_kjaergaard into test_r1rho_kjaergaard_auto and test_r1rho_kjaergaard_man.

[...]

[...] This is to test use of the manual way to analyse.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24072 | bugman | 2014-06-18 10:34:26 +0200 (Wed, 18 Jun 2014) | 8 lines

[...]

[...] Modified all of Troels' dispersion profiling scripts to work with older relax versions.

[...]

[...] This is in preparation for obtaining some powerful timing statistics. The calls to the r2eff_*()

[...] functions are unnecessary and are the only failure point in the scripts between the current code in

[...] the disp_spin_speed branch and trunk or older versions of relax. So these function calls have been

[...] eliminated.

[...]........

[...] r24073 | tlinnet | 2014-06-18 10:35:42 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Implemented systemtest test_r1rho_kjaergaard_missing_r1, for safety check if R1 data is not loaded.

[...]

[...] The systemtest passes, so target function is safe.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24074 | bugman | 2014-06-18 10:38:16 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Python 3 support for the dispersion profiling scripts.

[...]

[...] The xrange() builtin function does not exist in Python 3, so this is now aliased to range() which is

[...] the same thing.

[...]........

[...] r24075 | tlinnet | 2014-06-18 10:44:04 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Replaced double or triple hash-tags "##" with single hash-tags "#".

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24076 | tlinnet | 2014-06-18 10:49:10 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Copyright fixes for all the models, where Troels E. Linnet have made changes to make them functional for higher dimensional data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24077 | tlinnet | 2014-06-18 10:50:36 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Copyright fix for model TSMFK01.

[...]

[...] Sebastien Morin did not take part of implementing the TSMK01 model?\195?\131.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24078 | bugman | 2014-06-18 11:31:35 +0200 (Wed, 18 Jun 2014) | 11 lines

[...]

[...] Created a super script for profiling the relaxation dispersion models.

[...]

[...] This script will execute all of the current profiling scripts in the directory

[...] test_suite/shared_data/dispersion/profiling for both the current version of relax and any other

[...] specified version (current set to the 3.2.2 relax tag). It will run the scripts and relax versions

[...] interleaved N=10 times and extract the func_*() target function call profile timings. This

[...] interleaving makes the numbers much more consistent. Averages and standard deviations are then

[...] calculated, as well as the speed up between the two relax versions. The results are printed out in

[...] a format suitable for the relax release messages.

[...]........

[...] r24079 | bugman | 2014-06-18 11:32:33 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Increased the number of iterations to 1000 in all of the profiling scripts.

[...]

[...] This is for better statistics in the disp_profile_all.py script, and makes the number consistent

[...] between the different models.

[...]........

[...] r24080 | bugman | 2014-06-18 11:34:03 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Added a log file for comparing the speed of the disp_speed_branch to relax 3.2.2.

[...]

[...] This is from the disp_profile_all.py statistics generating script.

[...]........

[...] r24081 | tlinnet | 2014-06-18 11:37:12 +0200 (Wed, 18 Jun 2014) | 3 lines

[...]

[...] Made the processor.return_object get the back_calc structure in the expected order.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24082 | bugman | 2014-06-18 11:39:47 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Fixed the ordering of the relax versions in the dispersion super profiling script disp_profile_all.py.

[...]

[...] This has also been fixed in the disp_spin_speed branch to relax 3.2.2 comparison log.

[...]........

[...] r24084 | bugman | 2014-06-18 12:06:56 +0200 (Wed, 18 Jun 2014) | 5 lines

[...]

[...] Added a log file for comparing the speed of the disp_speed_branch to relax 3.2.1.

[...]

[...] This is from the disp_profile_all.py statistics generating script.

[...]........

[...] r24085 | bugman | 2014-06-18 14:09:48 +0200 (Wed, 18 Jun 2014) | 7 lines

[...]

[...] Added a profiling script for the 'NS CPMG 2-site expanded' dispersion model.

[...]

[...] This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_expanded. The script was copied from

[...] that of the CR72 model, and it only needed to be changed in a few places. This is the first numeric

[...] model profiling script.

[...]........

[...] r24086 | bugman | 2014-06-18 14:48:01 +0200 (Wed, 18 Jun 2014) | 7 lines

[...]

[...] Updated the profiling super script and log for the 'NS CPMG 2-site expanded' model.

[...]

[...] This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_expanded. This shows that the single

[...] spin calculation is 1.8 times faster, and the cluster of 100 11.7 times faster, when compared to

[...] relax 3.2.2.

[...]........

[...] r24087 | bugman | 2014-06-18 15:18:50 +0200 (Wed, 18 Jun 2014) | 9 lines

[...]

[...] Modified all of the dispersion model profiling scripts.

[...]

[...] The single() function for timing the single spin target function speed has been modified to include

[...] a second outer loop over 100 'spins'. This means that the timing numbers are equivalent to the

[...] cluster timings, as both are then over 100 spins. This now allows not only relax version

[...] differences and model differences to be compared, but also the non-clustered and clustered analysis

[...] speeds.

[...]........

[...] r24088 | bugman | 2014-06-18 15:20:11 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Added a script for profiling the 'NS CPMG 2-site 3D' relaxation dispersion model.

[...]

[...] This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_3D. Again this only involved copying

[...] one of the other scripts and modifying a few variable and function names.

[...]........

[...] r24089 | bugman | 2014-06-18 15:22:21 +0200 (Wed, 18 Jun 2014) | 6 lines

[...]

[...] Added the 'NS CPMG 2-site 3D' model to the dispersion super profiling script.

[...]

[...] To handle the fact that this script has nr_iter set to 100 rather than 1000 (as otherwise it is too

[...] slow), a list of scaling factors has been created to scale all timing numbers to equivalent values.

[...]........

[...]

[...]

(Browse SVN revision 24660)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:11:18 2014, SVN revision 24659:

Merged revisions 24038-24039,24041-24042,24053-24057 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24038 | tlinnet | 2014-06-17 15:08:26 +0200 (Tue, 17 Jun 2014) | 5 lines

Documentation fix for the initial data structure of cpmg_frqs, spin_lock_nu1, r1.

They were incorrect.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24039 | tlinnet | 2014-06-17 15:49:54 +0200 (Tue, 17 Jun 2014) | 3 lines

Fix for shortening the variables names.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24041 | tlinnet | 2014-06-17 16:51:45 +0200 (Tue, 17 Jun 2014) | 5 lines

First attempt to implement target function for ns_r1rho_2site.

But it does not work yet.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24042 | tlinnet | 2014-06-17 16:51:47 +0200 (Tue, 17 Jun 2014) | 5 lines

First attempt to implement lib function for ns r1rho 2site.

But it does not work yet.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24053 | tlinnet | 2014-06-17 19:04:51 +0200 (Tue, 17 Jun 2014) | 3 lines

Fatal fix for calling inv_relax_time from relax_time variable.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24054 | tlinnet | 2014-06-17 19:08:19 +0200 (Tue, 17 Jun 2014) | 3 lines

Removal of the temporary offset argument.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24055 | tlinnet | 2014-06-17 19:11:07 +0200 (Tue, 17 Jun 2014) | 3 lines

Documentation fix for the dimensionality of the input arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24056 | tlinnet | 2014-06-17 19:27:10 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Implemented the target function for ns r1rho 3site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24057 | tlinnet | 2014-06-17 19:27:12 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Implemented the lib function for ns r1rho 3site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24659)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:08:41 2014, SVN revision 24658:

Merged revisions 24018-24019,24022-24023,24026-24027,24032-24036 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r24018 | tlinnet | 2014-06-17 11:56:43 +0200 (Tue, 17 Jun 2014) | 5 lines

Fix for systemtest: test_korzhnev_2005_all_data

The masking for replacing values was wrong.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24019 | tlinnet | 2014-06-17 11:56:45 +0200 (Tue, 17 Jun 2014) | 3 lines

Moved the cleaning of data points and replacing of values of out loop for model ns mmq 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24022 | tlinnet | 2014-06-17 12:20:12 +0200 (Tue, 17 Jun 2014) | 6 lines

Fix for structure cleaning and value replacing for model mmq CR72.

System test: test_korzhnev_2005_all_data
revealed how this should be done properly.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24023 | tlinnet | 2014-06-17 12:20:15 +0200 (Tue, 17 Jun 2014) | 5 lines

Fix for systemtest test_korzhnev_2005_all_data_disp_speed_bug.

The precision is lowered, and now matches the original systemtest.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24026 | tlinnet | 2014-06-17 13:07:40 +0200 (Tue, 17 Jun 2014) | 3 lines

Replaced index to numpy array from example [0][si][mi][oi] to [0, si, mi, oi].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24027 | tlinnet | 2014-06-17 13:07:42 +0200 (Tue, 17 Jun 2014) | 3 lines

More replacing of numpy index.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r24032 | tlinnet | 2014-06-17 14:53:47 +0200 (Tue, 17 Jun 2014) | 3 lines

Documentation fix, where a double bracket "[[" has been copied into all lib functions.

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24033 | tlinnet | 2014-06-17 14:53:49 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] More fixes for numpy index in lib functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24034 | tlinnet | 2014-06-17 14:53:50 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Restructured target function for ns mmq 3site to the new API structure of higher dimensional data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24035 | tlinnet | 2014-06-17 14:53:52 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Reorded the lib function for ns mmq 3site to use higher dimensional data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24036 | tlinnet | 2014-06-17 14:53:54 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Documentation fix for which dimensionality number of points have.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24658)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:06:26 2014, SVN revision 24657:

Merged revisions 23949-23968,23986-24007,24010-24011,24013-24014 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23949 | tlinnet | 2014-06-15 08:53:31 +0200 (Sun, 15 Jun 2014) | 8 lines

Methods to replace math domain errors in model ns_cpmg_2site_3d, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.
pB is now moved to be calculated inside. This makes the lib function simpler.
k_AB and k_BA is also now calculated here.
Magnetization vector is also now filled in lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23950 | tlinnet | 2014-06-15 08:53:34 +0200 (Sun, 15 Jun 2014) | 3 lines

Fix for unit tests of model ns cpmg 2site 3d to the reduced input to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23951 | tlinnet | 2014-06-15 08:53:36 +0200 (Sun, 15 Jun 2014) | 3 lines

Change to the target function to the model ns cpmg 2site 3d to use the reduced input to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23952 | tlinnet | 2014-06-15 08:53:38 +0200 (Sun, 15 Jun 2014) | 3 lines

Changed linked matrix/vector inner products into chained dot expressions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23953 | tlinnet | 2014-06-15 08:53:40 +0200 (Sun, 15 Jun 2014) | 3 lines

Wrote the essential dot matrix up to be initiated earlier.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23954 | tlinnet | 2014-06-15 08:53:42 +0200 (Sun, 15 Jun 2014) | 3 lines

Lowered the number of dot iterations, by pre-prepare the dot matrix another round.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23955 | tlinnet | 2014-06-15 08:53:44 +0200 (Sun, 15 Jun 2014) | 3 lines

Turned Mint vector into a 7,1 matrix, so dimensions fit with evolution matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........

[...] r23956 | tlinnet | 2014-06-15 08:53:45 +0200 (Sun, 15 Jun 2014) | 7 lines

[...]

[...] Lowered the number of dot operations, by pre-preparing the evolution matrix another round.

[...]

[...] The power is in system tests always even.

[...]

[...] The trick to removing this for loop, would be to make a general multi dot function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23957 | tlinnet | 2014-06-15 15:15:11 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Moved the bulk operation of model CPMG 2site 3d into the lib file.

[...]

[...] This is to keep the API clean.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23958 | tlinnet | 2014-06-15 15:15:14 +0200 (Sun, 15 Jun 2014) | 3 lines

[...]

[...] Changed the unit test of NS CPMG 2site 3D, after the input to the function has changed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23959 | tlinnet | 2014-06-15 15:15:16 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Changed the taget function for NS CPMG 2site 3D.

[...]

[...] This reflects the new API layout.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23960 | tlinnet | 2014-06-15 15:15:18 +0200 (Sun, 15 Jun 2014) | 6 lines

[...]

[...] Changed the lib function of NS CPMG 2site start, to get input of dw and r20a+r20b of higher dimensional type.

[...]

[...] This is to move the main operations from the target function to the lib function, and

[...] make the API code clean and consistent.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23961 | tlinnet | 2014-06-15 15:15:19 +0200 (Sun, 15 Jun 2014) | 3 lines

[...]

[...] Changed the target function of NS CPMG 2site STAR, to reflect the input to the function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23962 | tlinnet | 2014-06-15 15:15:21 +0200 (Sun, 15 Jun 2014) | 3 lines

[...]

[...] Removal of temporary printout.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23963 | tlinnet | 2014-06-15 15:15:23 +0200 (Sun, 15 Jun 2014) | 3 lines

[...]

[...] Made the dot evolution structure faster for NS CPMG 2site 3D.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23964 | tlinnet | 2014-06-15 15:57:33 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Implemented the BLAS method of dot product, which should be faster.

[...]

[...] I cannot get the "out" argument to work.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23965 | tlinnet | 2014-06-15 16:22:42 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Small fix for the dot method.

[...]

[...] But the out argument does not work.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23966 | tlinnet | 2014-06-15 16:27:07 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Implemented the dot method via blas.

[...]

[...] This needs a array with one more axis.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23967 | tlinnet | 2014-06-15 16:41:00 +0200 (Sun, 15 Jun 2014) | 5 lines

[...]

[...] Last try to use the out argument.

[...]

[...] In the last dotting loop, the out argument wont work, no matter what I do.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23968 | tlinnet | 2014-06-15 22:59:15 +0200 (Sun, 15 Jun 2014) | 10 lines

[...]

[...] Inner product fix in model NS CPMG 2site 3D.

[...]

[...] Fix for system tests:

[...] F 1.34 s for Relax_disp.test_cpmg_synthetic_ns3d_to_b14

[...] F 0.78 s for Relax_disp.test_cpmg_synthetic_ns3d_to_cr72

[...] F 3.74 s for Relax_disp.test_cpmg_synthetic_ns3d_to_cr72_noise_cluster

[...]

[...] The number of dotting with Mint, should corespond to the power.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23986 | tlinnet | 2014-06-16 19:01:30 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Replaced the temporary structure self.frqs_a to self.frqs, which works for all target functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23987 | tlinnet | 2014-06-16 19:01:32 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Replaced the temporary structure self.cpmg_frqs_a to self.cpmg_frqs, which works for all target functions

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23988 | tlinnet | 2014-06-16 19:01:34 +0200 (Mon, 16 Jun 2014) | 6 lines

[...]

[...] Restructered all data structures into higher dimension in target function.

[...]

[...] Fix for the input to the different models.

[...] Restructured how to detect the number of offset and dispersion points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23989 | tlinnet | 2014-06-16 19:01:36 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Various index fixes, after the data structures have been reordered.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23990 | tlinnet | 2014-06-16 19:01:39 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Fix for unit test, where the dimension of points has to be one lower.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23991 | tlinnet | 2014-06-16 19:01:41 +0200 (Mon, 16 Jun 2014) | 5 lines

[...]

[...] Fix for plotting, since the back_calc now can hold more datapoints that cpmg frequencies.

[...]

[...] This is because the numpy array has been expanded to the maximum number of points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23992 | tlinnet | 2014-06-16 19:05:38 +0200 (Mon, 16 Jun 2014) | 5 lines

[...]

[...] Implemented a frqs_squared calculation in the init of target function.

[...]

[...] This is to speed up the calculations.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23993 | tlinnet | 2014-06-16 19:58:10 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Restructured frqs_H to higher dimension in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23994 | tlinnet | 2014-06-16 19:58:12 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Removed fatal print for python 3 in unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23995 | tlinnet | 2014-06-16 19:58:14 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Moved the calculation of dw and dwH out of for loops for model MMQ CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23996 | tlinnet | 2014-06-16 19:58:17 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Removed looping over spin and frequencies for model MMD CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23997 | tlinnet | 2014-06-16 19:58:19 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Temporary removed check for dw = 0.0 in MMQ CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23998 | tlinnet | 2014-06-16 20:23:34 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Removed number of points to be parsed to model MMQ CR72.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23999 | tlinnet | 2014-06-16 20:23:36 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Removed power to be parsed to MMQ CR72, since it is not used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24000 | tlinnet | 2014-06-16 20:23:38 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Changed MMQ CR72 to use multi dimensional data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24001 | tlinnet | 2014-06-16 22:11:33 +0200 (Mon, 16 Jun 2014) | 5 lines

[...]

[...] Changed unit test of MMQ CR72 to pass.

[...]

[...] dw needs to be of numpy structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24002 | tlinnet | 2014-06-16 22:11:36 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Moved the calculation of dw out of for loops for model ns mmq 2site.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24003 | tlinnet | 2014-06-16 22:11:38 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Modified lib function for NS MMQ 2site, to have looping over spins and frequencies inside lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24004 | tlinnet | 2014-06-16 22:11:40 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Fixed the use of higher dimensional data in mmq 2site sq dq zq.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24005 | tlinnet | 2014-06-16 22:11:41 +0200 (Mon, 16 Jun 2014) | 5 lines

[...]

[...] Fix for documentation in ns mmq 2site/sq/dq/zq/mq.

[...]

[...] Now explains which dimension data should be in.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24006 | tlinnet | 2014-06-16 22:11:49 +0200 (Mon, 16 Jun 2014) | 3 lines

[...]

[...] Changed the reshaping of dw and dwH, since it is not dependent on experiment.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24007 | tlinnet | 2014-06-16 22:11:56 +0200 (Mon, 16 Jun 2014) | 5 lines

[...]

[...] Changed the calculation of inner product in model ns cpmg 2site 3d.

[...]

[...] The out argument of numpy.dot is buggy, and should not be used.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24010 | tlinnet | 2014-06-17 09:18:39 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Added missing instances of cleaning the data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24011 | tlinnet | 2014-06-17 09:18:41 +0200 (Tue, 17 Jun 2014) | 3 lines

[...]

[...] Bug fix for model LM63 3site. The index si has to be used to extract data to lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24013 | tlinnet | 2014-06-17 09:33:32 +0200 (Tue, 17 Jun 2014) | 8 lines

[...]

[...] Temporary added systemtest: test_korzhnev_2005_all_data_disp_speed_bug.

[...]

[...] This makes a minimisation with 1 iteration, and so will give the chi2 value at the preset

[...] parameter values.

[...]

[...] This is chi2 value should give 162.5, but gives 74.7104.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r24014 | tlinnet | 2014-06-17 09:47:09 +0200 (Tue, 17 Jun 2014) | 6 lines

[...]

[...] Updated documentation on dimensionality of numpy array num_points.

[...]

[...] They are in dimension [NE][NS][[NM][NO], where oi gives the number of

[...] dispersion points at that offset.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24657)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 17:04:11 2014, SVN revision 24656:

Merged revisions 23864-23877,23880,23888-23934,23937-23942,23946 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23864 | tlinnet | 2014-06-12 12:12:58 +0200 (Thu, 12 Jun 2014) | 14 lines

Changed target function for model CR72.

To CR72 is now also the input of the parameters of R20A, R20B and dw.
dw is tested for zero, to return flat lines.
It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

This is for speed-up.

R20A and R20B is also subtracted, to see if the full model should be used.
In the same way, it is faster to subtract the smaller array.

These small tricks are expected to give 5-10 pct. speeed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23865 | tlinnet | 2014-06-12 12:12:59 +0200 (Thu, 12 Jun 2014) | 5 lines

Made the lib function of CR72 accept the R20A, R20B and dw of the original array.

This is for speed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23866 | tlinnet | 2014-06-12 12:13:01 +0200 (Thu, 12 Jun 2014) | 3 lines

Changed unit-tests, to send in the original R20A, R20B and dw_orig to the testing of the lib function CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23867 | tlinnet | 2014-06-12 12:13:03 +0200 (Thu, 12 Jun 2014) | 3 lines

Changed profiling script to send R20A, R20B and dw, as original parameters to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23868 | tlinnet | 2014-06-12 12:23:18 +0200 (Thu, 12 Jun 2014) | 11 lines

Changed target function for model B14.

To B14 now also send the input of the original parameters dw.
dw is tested for zero, to return flat lines.
It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

This is for speed-up.

[...] These small tricks are expected to give 5-10 pct. speeed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23869 | tlinnet | 2014-06-12 12:23:20 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Made the lib function of B14 accept dw of the original array.

[...]

[...] This is for speed-up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23870 | tlinnet | 2014-06-12 12:23:21 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed unit-tests, to send in the original dw_orig to the testing of the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23871 | tlinnet | 2014-06-12 12:23:23 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Changed profiling script to send dw as original parameters to the lib function B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23872 | tlinnet | 2014-06-12 12:31:42 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 model to TSMFK01 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23873 | tlinnet | 2014-06-12 13:18:56 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Indention fix in cr72.py and b14.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23874 | tlinnet | 2014-06-12 13:18:58 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified profiling script to be used for model TSMFK01.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23875 | tlinnet | 2014-06-12 13:19:00 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified target function for model TSMFK01, to send in dw as original parameter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23876 | tlinnet | 2014-06-12 13:19:02 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Modified lib function for model TSMFK01 to accept dw_orig as input and replaced functions to find math domain errors into maske replacements.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23877 | tlinnet | 2014-06-12 13:19:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Made unit tests for model TSMFK01 send in R20A and dw as a numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23880 | tlinnet | 2014-06-12 13:56:12 +0200 (Thu, 12 Jun 2014) | 32 lines

[...]

[...] Large increase in speed for model TSMFK01 by changing target functions to use multidimensional numpy arrays in calculation.

[...]

[...] This is done by restructuring data into multidimensional arrays of dimension [NE][NS][NM][NO][ND], which are

[...] number of spins, number of magnetic field strength, number of offsets, maximum number of dispersion point.

[...]

[...] The speed comes from using numpy ufunc operations.

[...]

[...] The new version is 2.4X as fast per spin calculation, and 54X as fast for clustered analysis.

[...]

[...] The different in timings for 3 spectrometer frequencies, calculated for 1 spin or 100 clustered spins with 1000 iterations are:

[...]

[...] ----

[...] VERSION 3.2.2

[...] ----

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.262 0.262 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 25.391 25.391 :1()

[...] ----

[...] New version

[...] ---

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.111 0.111 :1()

[...] 100 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.468 0.468 :1()

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23888 | tlinnet | 2014-06-12 20:07:59 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Replacing math domain checking in model DPL94, with masked array replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23889 | tlinnet | 2014-06-12 20:08:01 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Fix for import missing error in lib function dpl94.

[...]

[...] Needed to import numpy any() function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23890 | tlinnet | 2014-06-12 20:08:03 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] First try to speed up model DPL94.

[...]

[...] This has not succeded, since systemtest: Relax_disp.test_dpl94_data_to_dpl94 sti?\195?\131ll fails.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23891 | tlinnet | 2014-06-12 20:08:06 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Trying to move some of the structures into its own part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23892 | tlinnet | 2014-06-12 20:08:08 +0200 (Thu, 12 Jun 2014) | 7 lines

[...]

[...] Fix for forgetting to multiply frqs to power 2.

[...]

[...] This was found by inspecting all print out before and after implementation.

[...]

[...] New implementation of DPL94 now passes all system and unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23893 | tlinnet | 2014-06-12 20:08:10 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the expansion of the R1 structure out of the for loops.

[...]

[...] This is to speed-up the _init_ of the class of the target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23894 | tlinnet | 2014-06-12 20:35:04 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the packing of errors and values out of for loop in the _init_ class of target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23895 | tlinnet | 2014-06-12 20:35:06 +0200 (Thu, 12 Jun 2014) | 5 lines

[...]

[...] Moved the multi dimensional expansion of inv_relax_times out of for loop.

[...]

[...] This can be done for all structures, which does not have missing points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23896 | tlinnet | 2014-06-12 20:35:08 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] For inv_relax_times, expanded one axis, and tiled up to NR spins, before reshaping and blowing up to full structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23897 | tlinnet | 2014-06-12 20:35:10 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Moved the expansion of frqs out of for loops.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23898 | tlinnet | 2014-06-12 23:11:38 +0200 (Thu, 12 Jun 2014) | 3 lines

[...]

[...] Documentation fix for description of input arrays to lib functions.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23899 | tlinnet | 2014-06-13 07:20:57 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Converted TAP03 model to use multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23900 | tlinnet | 2014-06-13 07:21:00 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Made dw in unit tests of TAP03 be of numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23901 | tlinnet | 2014-06-13 07:21:02 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced the loop structure in target function of TAP03 with numpy arrays.

[...]

[...] This makes the model faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23902 | tlinnet | 2014-06-13 07:21:04 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Reordered the initialization structure of the special numpy arrays.

[...]

[...] This was done in the init part of the target function of relaxation dispersion.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23903 | tlinnet | 2014-06-13 07:26:14 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Added model MODEL_TSMFK01 also get self.tau_cpmg calculated in init part.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23904 | tlinnet | 2014-06-13 08:18:23 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Methods to replace math domain errors in model TP02, has been replaced with numpy masks.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23905 | tlinnet | 2014-06-13 08:18:25 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Fix for sending in dw as numpy array in unit tests of model TP02.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23906 | tlinnet | 2014-06-13 08:18:27 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model TP02, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23907 | tlinnet | 2014-06-13 08:21:48 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Fix for adding model TP02 to part of init class to initialize preparation of higher dimension numpy structures.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23908 | tlinnet | 2014-06-13 10:10:04 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Made the NOREX model af faster numpy array calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23909 | tlinnet | 2014-06-13 10:10:07 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Removed an unnecessary frq_struct in init of target function.

[...]

[...] frqs can just be expanded, and back_calc is cleaned afterwards with disp_struct.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23910 | tlinnet | 2014-06-13 10:33:43 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Methods to replace math domain errors in model M61, has been replaced with numpy masks.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23911 | tlinnet | 2014-06-13 10:33:44 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Fix for sending in r1rho_prime and phi_ex_scaled as numpy array in unit tests of model M61.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23912 | tlinnet | 2014-06-13 10:33:46 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model M61, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23913 | tlinnet | 2014-06-13 11:06:15 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Methods to replace math domain errors in model M61b, has been replaced with numpy masks.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23914 | tlinnet | 2014-06-13 11:06:17 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Fix for sending in r1rho_prime and dw as numpy array in unit tests of model M61b.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23915 | tlinnet | 2014-06-13 11:06:18 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model M61b, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23916 | tlinnet | 2014-06-13 11:17:52 +0200 (Fri, 13 Jun 2014) | 6 lines

[...]

[...] Removed number of points to be send to lib function of model TTSMFK01.

[...]

[...] These are not used anymore.

[...] Also removed in corresponding unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23917 | tlinnet | 2014-06-13 11:17:53 +0200 (Fri, 13 Jun 2014) | 8 lines

[...]

[...] Removed number of points and pB to be send to lib function of model TP02.

[...]

[...] Number of points are not used anymore.

[...] pB is calculated in lib function insted.

[...]

[...] Also removed in corresponding unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23918 | tlinnet | 2014-06-13 11:21:16 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Removed number of points and pB to send to lib function of model TP02.

[...]

[...] pB is calculated in lib function insted.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23919 | tlinnet | 2014-06-13 11:47:38 +0200 (Fri, 13 Jun 2014) | 11 lines

[...]

[...] Removed number of points, pB, k_AB, k_BA to be send to lib function of model B14.

[...]

[...] Number of points are not used anymore.

[...] pB is calculated in lib function insted.

[...] k_AB, and k_BA are calculated in lib functions instead.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23920 | tlinnet | 2014-06-13 11:47:40 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Fix for sending number of points in target function of TSMK01.

[...]

[...] This was removed in lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23921 | tlinnet | 2014-06-13 11:47:42 +0200 (Fri, 13 Jun 2014) | 10 lines

[...]

[...] Removed number of points, pB, to be send to lib function of model TAP03.

[...]

[...] Number of points are not used anymore.

[...] pB is calculated in lib function insted.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23922 | tlinnet | 2014-06-13 11:47:45 +0200 (Fri, 13 Jun 2014) | 9 lines

[...]

[...] Removed number of points, to be send to lib function of model CR72.

[...]

[...] Number of points are not used anymore.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23923 | tlinnet | 2014-06-13 11:55:44 +0200 (Fri, 13 Jun 2014) | 9 lines

[...]

[...] Removed number of points, to be send to lib function of model DPL94.

[...]

[...] Number of points are not used anymore.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23924 | tlinnet | 2014-06-13 11:55:46 +0200 (Fri, 13 Jun 2014) | 9 lines

[...]

[...] Removed number of points, to be send to lib function of model M61.

[...]

[...] Number of points are not used anymore.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23925 | tlinnet | 2014-06-13 11:55:48 +0200 (Fri, 13 Jun 2014) | 9 lines

[...]

[...] Removed number of points, to be send to lib function of model M61b.

[...]

[...] Number of points are not used anymore.

[...]

[...] Fixed in target function.

[...] Fixed in lib function.

[...] Fixed in corresponding unit tests

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23926 | tlinnet | 2014-06-13 12:16:49 +0200 (Fri, 13 Jun 2014) | 8 lines

[...]

[...] Methods to replace math domain errors in model MP05, has been replaced with numpy masks.

[...]

[...] number of points has been removed, as the masks utility replaces this.

[...] Calculataion of pB, has been moved to lib function for simplicity.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23927 | tlinnet | 2014-06-13 12:16:51 +0200 (Fri, 13 Jun 2014) | 3 lines

[...]

[...] Fix for sending in dw as numpy array in unit tests of model MP05.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23928 | tlinnet | 2014-06-13 12:16:52 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model MP05, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23929 | tlinnet | 2014-06-13 13:03:16 +0200 (Fri, 13 Jun 2014) | 7 lines

[...]

[...] Methods to replace math domain errors in model LM63, has been replaced with numpy masks.

[...]

[...] number of points has been removed, as the masks utility replaces this.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23930 | tlinnet | 2014-06-13 13:03:17 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Fix for sending in number of points in unit tests of model LM63.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23931 | tlinnet | 2014-06-13 13:03:19 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model LM63, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23932 | tlinnet | 2014-06-13 13:03:20 +0200 (Fri, 13 Jun 2014) | 6 lines

[...]

[...] Fix for replacement of values with mask, when phi_ex is zero.

[...]

[...] This can be spin specific.

[...] Systemtest: Relax_disp.test_hansen_cpmg_data_to_lm63 starts to fail:

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23933 | tlinnet | 2014-06-13 13:03:22 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Fix for sending in r20 and phi_ex as numpy array in unit tests of LM63.

[...]

[...] This is after using masks as replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23934 | tlinnet | 2014-06-13 13:08:29 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] 1 digit decrease in parameter check in systemtest: Relax_disp.test_hansen_cpmg_data_to_lm63.

[...]

[...] It is unknown, why this has occured.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23937 | tlinnet | 2014-06-13 17:31:31 +0200 (Fri, 13 Jun 2014) | 8 lines

[...]

[...] Methods to replace math domain errors in model IT99, has been replaced with numpy masks.

[...]

[...] number of points has been removed, as the masks utility replaces this.

[...] pB is now moved to be calculated inside. This makes the lib function simpler.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23938 | tlinnet | 2014-06-13 17:31:33 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Fix for sending in r20 and dw as numpy array in unit tests of IT99.

[...]

[...] This is after using masks as replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23939 | tlinnet | 2014-06-13 17:31:35 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Replaced target function for model IT99, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23940 | tlinnet | 2014-06-13 17:31:36 +0200 (Fri, 13 Jun 2014) | 9 lines

[...]

[...] Methods to replace math domain errors in model ns_cpmg_2site_expanded, has been replaced with numpy masks.

[...]

[...] number of points has been removed, as the masks utility replaces this.

[...] pB is now moved to be calculated inside. This makes the lib function simpler.

[...] k_AB and k_BA is also now calculated here.

[...]

[...] Documentation is also fixed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23941 | tlinnet | 2014-06-13 17:31:38 +0200 (Fri, 13 Jun 2014) | 5 lines

[...]

[...] Fix for sending in r20 and dw as numpy array in unit tests of ns_cpmg_2site_expanded.

[...]

[...] This is after using masks as replacement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23942 | tlinnet | 2014-06-13 17:31:40 +0200 (Fri, 13 Jun 2014) | 14 lines

[...]

[...] Replaced target function for model ns_cpmg_2site_expanded, to use higher dimensional numpy array structures.

[...]

[...] That makes the model much faster.

[...]

[...] I cannot get system test: Relax_disp.test_cpmg_synthetic_dx_map_points

[...] to pass.

[...]

[...] -------

[...] File "/Users/tlinnet/software/disp_spin_speed/test_suite/system_tests/relax_disp.py", line 1671, in test_cpmg_synthetic_dx_map_points

[...] self.assertEqual(res_file[i], lines[i])

[...] AssertionError: '0.76981 3.9169 0.41353 1\n' != '0.0098838 1.4654 18.661 1\n'

[...] -------

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23946 | tlinnet | 2014-06-13 18:45:23 +0200 (Fri, 13 Jun 2014) | 16 lines

[...]

[...] Fix for system test Relax_disp.test_cpmg_synthetic_dx_map_points.

[...]

[...] By just copying self.back_calc_a to self.back_calc, problem was solved.

[...]

[...] In specific_analysis.relax_disp.optimisation in function back_calc_r2eff(), the

[...] function gets the last values stores in the class function.

[...]

[...] This is in:

[...] class Disp_result_command(Result_command):

[...] """Class for processing the dispersion optimisation results.

[...] With:

[...] self.back_calc = back_calc

[...]

[...] And back_calc_r2eff() have return model.back_calc

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24656)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 16:56:51 2014, SVN revision 24655:

Merged revisions 23760-23770,23787-23789,23791-23806,23813-23855 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

................
r23760 | tlinnet | 2014-06-10 01:01:49 +0200 (Tue, 10 Jun 2014) | 5 lines

Moved the calculation of pA and kex out off all loopes.

This was done by having two special 1/0 spin structure arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23761 | tlinnet | 2014-06-10 01:01:51 +0200 (Tue, 10 Jun 2014) | 3 lines

Removed dw_frq_a numpy array, as it was not necessary.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23762 | tlinnet | 2014-06-10 01:01:53 +0200 (Tue, 10 Jun 2014) | 6 lines

Removed all looping over spin and spectrometer frequency.

This is the last loop!
Wuhu.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23763 | tlinnet | 2014-06-10 01:01:55 +0200 (Tue, 10 Jun 2014) | 3 lines

Reordered arrays for beauty of code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23764 | tlinnet | 2014-06-10 01:01:57 +0200 (Tue, 10 Jun 2014) | 3 lines

Made the back_calc array be initiated as copy of the values array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23765 | tlinnet | 2014-06-10 01:01:59 +0200 (Tue, 10 Jun 2014) | 3 lines

Small edit to profiling script, to help bug finding.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................
r23766 | tlinnet | 2014-06-10 01:02:00 +0200 (Tue, 10 Jun 2014) | 3 lines

Fixed that arrays are correctly initiated with one or zero values.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
................

[...] r23767 | tlinnet | 2014-06-10 01:02:02 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Very important fix, for only replacing part of data array which have Nan values.

[...]

[...] Before, all values were replaced, which was wrong.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23768 | tlinnet | 2014-06-10 01:02:04 +0200 (Tue, 10 Jun 2014) | 8 lines

[...]

[...] Needed to increase the relative tolerance when testing if pA array is 1.

[...]

[...] Now system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis passes.

[...]

[...] Also added some comments lines, to prepare for mask replace of values.

[...] For example if only some of etapos values should be replaced.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23769 | tlinnet | 2014-06-10 01:02:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Restored profiling script to normal.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23770 | tlinnet | 2014-06-10 01:21:14 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Made the logic and comments much clearer about how to reshape, expand axis, and tile numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23787 | tlinnet | 2014-06-10 16:51:30 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed line "# -*- coding: utf-8 -*-" which was automatically inserted by new python code editor.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23788 | tlinnet | 2014-06-10 16:51:33 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Implemented a masked array search for where "missing" array is equal 1.

[...]

[...] This makes it possible to replace all values with this mask, from the value array.

[...]

[...] This eliminates the last loops over the missing values.

[...]

[...] It took over 4 hours to figure out, that the mask should be called with mask.mask,

[...] to return the same fulls structure,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23789 | tlinnet | 2014-06-10 16:51:35 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Yet another small improvement for the profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23791 | tlinnet | 2014-06-10 18:40:55 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of pA.

[...]

[...] pA is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23792 | tlinnet | 2014-06-10 18:40:59 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of pA in lib function, when pA is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23793 | tlinnet | 2014-06-10 18:41:01 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so pA is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23794 | tlinnet | 2014-06-10 18:41:03 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Removed the multi dimensional structure of kex.

[...]

[...] kex is not multi-dimensional, and can just be multiplied with numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23795 | tlinnet | 2014-06-10 18:41:05 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Fix for testing of kex in lib function, when kex is just float.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23796 | tlinnet | 2014-06-10 18:41:06 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Modified unit tests, so kex is sent to target function as float instead of array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23797 | tlinnet | 2014-06-10 18:41:08 +0200 (Tue, 10 Jun 2014) | 10 lines

[...]

[...] Important fix for replacing values if eta_pos > 700 is violated.

[...]

[...] This fixes systemtest: Relax_disp.test_sod1wt_t25_to_cr72, which failed after making kex to a numpy float.

[...]

[...] The trick is to make a numpy mask which stores the position where to replace the values.

[...] Then replace the values just before last return.

[...]

[...] This makes sure, that not all values are changed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23798 | tlinnet | 2014-06-10 18:41:10 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Increased the kex speed to 1e7 in clustered unit tests cases.

[...]

[...] This is to demonstrate where there will be no excange.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23799 | tlinnet | 2014-06-10 18:54:28 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Added a multi-dimensional numpy array chi2 value calculation function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23800 | tlinnet | 2014-06-10 18:54:31 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Called the newly created chi2 function to calculate for multi dimensional numpy arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23801 | tlinnet | 2014-06-10 19:11:07 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Renamed chi2_ND to chi2_rankN.

[...]

[...] This is a better name for representing multiple axis calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23802 | tlinnet | 2014-06-10 20:58:15 +0200 (Tue, 10 Jun 2014) | 5 lines

[...]

[...] Made special ei, si, mi, and oi numpy structure array.

[...]

[...] This is for rapid speed-up of numpy array creation in target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23803 | tlinnet | 2014-06-10 20:58:19 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Code clean-up in lib function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23804 | tlinnet | 2014-06-10 20:58:22 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replace np.tile with tile.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23805 | tlinnet | 2014-06-10 20:58:24 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Replaced self.spins_a with self.disp_struct.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23806 | tlinnet | 2014-06-10 21:06:12 +0200 (Tue, 10 Jun 2014) | 3 lines

[...]

[...] Removed un-used self structures in __init__of class.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23813 | tlinnet | 2014-06-11 08:28:25 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made iinitialisation structures for dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23814 | tlinnet | 2014-06-11 08:28:27 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Initial try to reshape dw faster.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23815 | tlinnet | 2014-06-11 08:40:38 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Switched to use self.ei, self.si, self.mi, self.oi, self.di.

[...]

[...] This is for better reading of code.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23816 | tlinnet | 2014-06-11 08:40:40 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment out the sys.exit(), which would make the code fail for wrong calculation of dw.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23817 | tlinnet | 2014-06-11 08:46:00 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Copied profiling script for CPMG model CR72 to R1rho DPL94 model.

[...]

[...] The framework of the script will be the same, but the data a little different.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23818 | tlinnet | 2014-06-11 10:08:02 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Started converting profiling script to DPL94.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23819 | tlinnet | 2014-06-11 10:08:05 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND).

[...]

[...] These numbers represents the maximum number of dimensions, instead of index.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23820 | tlinnet | 2014-06-11 10:08:06 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Added the ei index, when creating the first dw_mask.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23821 | tlinnet | 2014-06-11 10:08:08 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Reordered how the structures dw init structures are created.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23822 | tlinnet | 2014-06-11 10:08:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clearing the dw_struct before calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23823 | tlinnet | 2014-06-11 10:16:27 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Started using the new way of constructing dw.

[...]

[...] This is for running system tests.

[...]

[...] Note, somewhere in the dw array, the frequencies will be different between the two implementations.

[...] But apparently, this does not matter.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23824 | tlinnet | 2014-06-11 10:46:42 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Inserted temporary method to switch for profiling.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23825 | tlinnet | 2014-06-11 10:46:44 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] First try to speed-up the old dw structure calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23826 | tlinnet | 2014-06-11 13:12:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Simplified calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23827 | tlinnet | 2014-06-11 13:12:14 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Yet another try to implement a fast dw structure method.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23828 | tlinnet | 2014-06-11 13:12:16 +0200 (Wed, 11 Jun 2014) | 6 lines

[...]

[...] Implemented the fastest way to calculate the dw structure.

[...]

[...] This uses the numpy ufunc multiply.outer function to create the outer array, and then multiply

[...] with the frqs_structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23829 | tlinnet | 2014-06-11 13:12:18 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Renamed dw temporary structure to generic structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23830 | tlinnet | 2014-06-11 13:12:20 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Restructured the calculation of R20A and R20B to the most efficient way.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23831 | tlinnet | 2014-06-11 13:12:21 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Made the lib/cr72.py to a numpy multi dimensional numpy array calculation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23832 | tlinnet | 2014-06-11 14:05:35 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Changed the catching when dw is zero, to use masked array.

[...]

[...] Implemented backwards compability with unit tests.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23833 | tlinnet | 2014-06-11 14:05:37 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Bugfix for testing if kex is zero.

[...]

[...] It was tested if kex was equal 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23834 | tlinnet | 2014-06-11 14:54:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Implemented masked replacement if fact is less that 1.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23835 | tlinnet | 2014-06-11 14:55:31 +0200 (Wed, 11 Jun 2014) | 1 line

[...]

[...] Replaced isnan mask with function that catches all invalid values.

[...]................

[...] r23836 | tlinnet | 2014-06-11 14:55:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Clean up of comment lines.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23837 | tlinnet | 2014-06-11 14:55:34 +0200 (Wed, 11 Jun 2014) | 8 lines

[...]

[...] Removed the masked replacement if fact is less than 1.0.

[...]

[...] This is very strange, but otherwise system test:

[...] Relax_disp.test_hansen_cpmg_data_missing_auto_analysis

[...]

[...] would fail.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23838 | tlinnet | 2014-06-11 15:09:01 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Removed the slow allclose() function to test if R20A and R20B is equal.

[...]

[...] It is MUCH faster to just subtract and check sum is not 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23839 | tlinnet | 2014-06-11 15:25:32 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Replaced the temporary variable R2eff with back_calc, and used numpy subtract to speed up.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23840 | tlinnet | 2014-06-11 15:25:34 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Made the lib function into a pure numpy array calculation.

[...]

[...] This requires, that r20a, r20b and dw has same dimension as the dispersion points.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23841 | tlinnet | 2014-06-11 15:25:36 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changes too unit tests, so data is sent to target function in numpy array format.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23842 | tlinnet | 2014-06-11 16:19:10 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed an the creation of a unnessary structure bu using numpy multiply.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23843 | tlinnet | 2014-06-11 16:19:12 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Moved the mask which finds where to replace values into the _init_ function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23844 | tlinnet | 2014-06-11 16:43:17 +0200 (Wed, 11 Jun 2014) | 7 lines

[...]

[...] Replaced the multiplcation with the disp structure, to a replacement with a mask.

[...]

[...] My timings are varying at my computer, so results are within the very same timing.

[...]

[...] But for reading the code, having two masks, is essential better.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...]................

[...] r23846 | tlinnet | 2014-06-11 17:14:09 +0200 (Wed, 11 Jun 2014) | 25 lines

[...]

[...] Reverted r23845-r23844 as this was using a wrong commit message.

[...]

[...] The command used was:

[...] svn merge -r23845:23844 .

[...]

[...] ........

[...] r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

[...]

[...] Merged revisions 23743 via svnmerge from

[...] svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

[...]

[...] ........

[...] r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Updated profiling text for CR72 model.

[...]

[...] Now it is tested for 3 fields.

[...]

[...] This is related to:

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...] ........

[...] ........

[...]................

[...] r23847 | tlinnet | 2014-06-11 17:15:03 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Copied profiling script for CR72 to B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23848 | tlinnet | 2014-06-11 19:37:37 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Modified profiling script for the B14 model.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23849 | tlinnet | 2014-06-11 19:37:40 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Modified model B14 lib file to faster numpy multidimensional mode.

[...]

[...] The implementations comes almost directly from the CR72 model file.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23850 | tlinnet | 2014-06-11 19:37:42 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Reverted the use of the mask "mask_set_blank".

[...]

[...] It did not work, and many system tests started failing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23851 | tlinnet | 2014-06-11 19:37:43 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed the target function to handle the B14 model for faster numpy computation.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23852 | tlinnet | 2014-06-11 19:37:45 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Changed unit test for B14 to match numpy input requirement.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23853 | tlinnet | 2014-06-11 20:43:45 +0200 (Wed, 11 Jun 2014) | 5 lines

[...]

[...] Added additional tests in b14, when math errors can occur.

[...]

[...] This is very easy with a conditional masked search in arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23854 | tlinnet | 2014-06-11 20:43:47 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Comment fix for finding when E0 is above 700 in lib function of B14.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...] r23855 | tlinnet | 2014-06-11 20:47:29 +0200 (Wed, 11 Jun 2014) | 3 lines

[...]

[...] Removed use of "asarray", since the variables are already arrays.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]................

[...]

[...]

(Browse SVN revision 24655)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 16:52:58 2014, SVN revision 24654:

Merged revisions 23745-23752,23754-23758 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23745 | tlinnet | 2014-06-08 23:44:44 +0200 (Sun, 08 Jun 2014) | 8 lines

Swith the looping from spin->frq to frq->spin.

Since the number of dispersion points are the same for all spins, this
allows to move the calculation of pA and kex array one level up.

This saves alot of computation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23746 | tlinnet | 2014-06-08 23:44:45 +0200 (Sun, 08 Jun 2014) | 3 lines

Changed all the creation of special numpy arrays to be of float64 type.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23747 | tlinnet | 2014-06-08 23:54:41 +0200 (Sun, 08 Jun 2014) | 5 lines

Moved the data filling of special numpy array errors and values, to initialization of Dispersion class.

These values does not change, and can safely be stored outside.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23748 | tlinnet | 2014-06-08 23:56:36 +0200 (Sun, 08 Jun 2014) | 3 lines

Just a tiny little more speed, by removing temporary storage of chi2 calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23749 | tlinnet | 2014-06-09 00:09:59 +0200 (Mon, 09 Jun 2014) | 25 lines

Changed all calls to numpy np.X functions to just the numpy function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

Timing is now showing, 17% loss per single spin, but but 277 % gain on 100 spin.
3 fields, 1000 iterations.
1 spin
1 0.000 0.000 0.677 0.677 :1()
1 0.001 0.001 0.677 0.677 pf:419(single)
1000 0.002 0.000 0.671 0.001 pf:405(calc)
1000 0.009 0.000 0.669 0.001 relax_disp.py:979(func_CR72_full)
1000 0.102 0.000 0.655 0.001 relax_disp.py:507(calc_CR72_chi2)
1003 0.160 0.000 0.365 0.000 cr72.py:101(r2eff_CR72)
23029 0.188 0.000 0.188 0.000 {numpy.core.multiarray.array}

[...] 4003 0.119 0.000 0.182 0.000 numeric.py:1862(allclose)

[...]

[...] 100 spin

[...] 1 0.000 0.000 19.783 19.783 :1()

[...] 1 0.002 0.002 19.783 19.783 pf:441(cluster)

[...] 1000 0.004 0.000 19.665 0.020 pf:405(calc)

[...] 1000 0.013 0.000 19.661 0.020 relax_disp.py:979(func_CR72_full)

[...] 1000 6.541 0.007 19.634 0.020 relax_disp.py:507(calc_CR72_chi2)

[...] 916108 11.127 0.000 11.127 0.000 {numpy.core.multiarray.array}

[...] 1300 1.325 0.001 2.026 0.002 cr72.py:101(r2eff_CR72)

[...] 4300 0.495 0.000 0.634 0.000 numeric.py:1862(allclose)

[...]........

[...] r23750 | tlinnet | 2014-06-09 00:49:14 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23751 | tlinnet | 2014-06-09 00:49:15 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Changed all calls to numpy np.X functions to just the numpy function in lib/dispersion/cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23752 | tlinnet | 2014-06-09 00:49:18 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Removed unused import of numpy.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23754 | tlinnet | 2014-06-09 19:46:17 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Made copies of numpy arrays instead of creating from new.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23755 | tlinnet | 2014-06-09 19:46:19 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Added a self.frqs_a as a multidimensional numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23756 | tlinnet | 2014-06-09 19:46:20 +0200 (Mon, 09 Jun 2014) | 3 lines

[...]

[...] Small fix for the indicies to the errors and values numpy array.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23757 | tlinnet | 2014-06-09 19:46:22 +0200 (Mon, 09 Jun 2014) | 5 lines

[...]

[...] Lowered the number of iterations to the profiling scripts.

[...]

[...] This is to use the profiling script as bug finder.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23758 | tlinnet | 2014-06-09 19:46:25 +0200 (Mon, 09 Jun 2014) | 7 lines

[...]

[...] Moved the calculation of dw_frq out of spin and spectrometer loop.

[...]

[...] This is done by having a special 1/0 spin numpy array, which turns on or off the values in the numpy array multiplication.

[...]

[...] The multiplication needs to first axis expand dw, and then tile the arrays according to the numpy structure.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24654)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 16:50:50 2014, SVN revision 24653:

Merged revisions 23722-23742 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/branches/disp_spin_speed

........
r23722 | tlinnet | 2014-06-07 21:43:16 +0200 (Sat, 07 Jun 2014) | 6 lines

Modified profiling script to have different number of NCYC points per frequency.

This is to complicate the data, so any errournous reshaping of data is discovered.
It is expected, that experiments can have different number of NCYC points per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
r23723 | tlinnet | 2014-06-07 21:43:19 +0200 (Sat, 07 Jun 2014) | 55 lines

Initial try to alter the target function calc_CR72_chi2.

This is the first test to restructure the arrays, to allow for higher dimensional computation.
All numpy arrays have to have same shape to allow to multiply together.
The dimensions should be [ei][si][mi][oi][di]. [Experiment][spins][spec. frq][offset][disp points].
This is complicated with number of disp point can change per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

This implementation brings a high overhead.
The first test shows no winning of time.
The creation of arrays takes all the time.

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]
('sfrq: ', 600000000.0, 'number of cpmg frq', 15)
('sfrq: ', 800000000.0, 'number of cpmg frq', 20)
('sfrq: ', 900000000.0, 'number of cpmg frq', 22)
iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

For TRUNK

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
3000 0.267 0.000 0.313 0.000 cr72.py:100(r2eff_CR72)
1000 0.056 0.000 0.434 0.000 relax_disp.py:456(calc_CR72_chi2)
3000 0.045 0.000 0.061 0.000 chi2.py:32(chi2)

100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 300000 26.315 0.000 30.771 0.000 cr72.py:100(r2eff_CR72)

[...] 1000 5.498 0.005 42.660 0.043 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 4.438 0.000 6.021 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 19013 0.278 0.000 0.278 0.000 {numpy.core.multiarray.array}

[...] 1000 0.191 0.000 0.777 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 1000 0.147 0.000 0.197 0.000 cr72.py:101(r2eff_CR72)

[...] 3000 0.044 0.000 0.061 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1504904 25.215 0.000 25.215 0.000 {numpy.core.multiarray.array}

[...] 1000 17.261 0.017 51.180 0.051 relax_disp.py:457(calc_CR72_chi2)

[...] 300000 4.637 0.000 6.310 0.000 chi2.py:32(chi2)

[...]........

[...] r23724 | tlinnet | 2014-06-07 21:43:21 +0200 (Sat, 07 Jun 2014) | 4 lines

[...]

[...] Temporary changed the lib/dispersion/cr72.py function to unsafe state.

[...]

[...] This change turns-off all the safety measures, since they have to be re-implemented

[...] for higher dimensional structures.

[...]........

[...] r23725 | tlinnet | 2014-06-07 22:36:00 +0200 (Sat, 07 Jun 2014) | 71 lines

[...]

[...] Altered profiling script to report cumulative timings and save to temporary files.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] This indeed shows that the efficiency has gone down:

[...]

[...] -----

[...]

[...] Checked on MacBook Pro

[...] 2.4 GHz Intel Core i5

[...] 8 GB 1067 Mhz DDR3 RAM.

[...] Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

[...]

[...] Timing for:

[...] 3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15)

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20)

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22)

[...] iterations of function call: 1000

[...]

[...] Timed for simulating 1 or 100 clustered spins.

[...]

[...] For TRUNK

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.434 0.434 :1()

[...] 1 0.001 0.001 0.434 0.434 pf:354(single)

[...] 1000 0.002 0.000 0.432 0.000 pf:340(calc)

[...] 1000 0.007 0.000 0.429 0.000 relax_disp.py:908(func_CR72_full)

[...] 1000 0.054 0.000 0.416 0.000 relax_disp.py:456(calc_CR72_chi2)

[...] 3000 0.256 0.000 0.300 0.000 cr72.py:100(r2eff_CR

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 42.035 42.035 :1()

[...] 1 0.002 0.002 42.035 42.035 pf:378(cluster)

[...] 1000 0.004 0.000 41.957 0.042 pf:340(calc)

[...] 1000 0.011 0.000 41.953 0.042 relax_disp.py:908(func_CR72_full)

[...] 1000 5.378 0.005 41.928 0.042 relax_disp.py:456(calc_CR72_chi2)

[...] 300000 25.942 0.000 30.276 0.000 cr72.py:100(r2eff_CR72)

[...] 300000 4.362 0.000 5.903 0.000 chi2.py:32(chi2)

[...]

[...] TESTING

[...]

[...] 1 spin:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 0.792 0.792 :1()

[...] 1 0.001 0.001 0.792 0.792 pf:354(single)

[...] 1000 0.002 0.000 0.789 0.001 pf:340(calc)

[...] 1000 0.011 0.000 0.787 0.001 relax_disp.py:966(func_CR72_full)

[...] 1000 0.187 0.000 0.769 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 26013 0.290 0.000 0.290 0.000 {numpy.core.multiarray.array}

[...] 1000 0.147 0.000 0.198 0.000 cr72.py:101(r2eff_CR72)

[...] 2001 0.002 0.000 0.086 0.000 numeric.py:167(asarray)

[...] 3000 0.045 0.000 0.062 0.000 chi2.py:32(chi2)

[...]

[...] 100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 46.821 46.821 :1()

[...] 1 0.002 0.002 46.821 46.821 pf:378(cluster)

[...] 1000 0.004 0.000 46.744 0.047 pf:340(calc)

[...] 1000 0.017 0.000 46.740 0.047 relax_disp.py:966(func_CR72_full)

[...] 1000 15.422 0.015 46.708 0.047 relax_disp.py:457(calc_CR72_chi2)

[...] 1511904 23.475 0.000 23.475 0.000 {numpy.core.multiarray.array}

[...] 300000 4.175 0.000 5.668 0.000 chi2.py:32(chi2)

[...] 2001 0.004 0.000 4.804 0.002 numeric.py:167(asarray)

[...] 1000 0.010 0.000 2.438 0.002 fromnumeric.py:1774(amax)

[...] 1000 0.006 0.000 2.428 0.002 fromnumeric.py:32(_wrapit)

[...] 300000 0.353 0.000 1.493 0.000 fromnumeric.py:1379(sum)

[...] 1000 1.281 0.001 1.444 0.001 cr72.py:101(r2eff_CR72)

[...]........

[...] r23726 | tlinnet | 2014-06-07 23:18:15 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Added print out of chi2 to profile script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23727 | tlinnet | 2014-06-07 23:18:18 +0200 (Sat, 07 Jun 2014) | 3 lines

[...]

[...] Moved the creation of special numpy structures outside target function.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23728 | tlinnet | 2014-06-08 13:14:34 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Modified profiling script to calculate correct values when setting up R2eff values.

[...]

[...] This is to test, that the return of chi2 gets zero.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23729 | tlinnet | 2014-06-08 13:14:36 +0200 (Sun, 08 Jun 2014) | 31 lines

[...]

[...] Removing looping over exp and offset indicies in calc_chi2. They are always 0 anyway.

[...]

[...] This brings a little speed.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

[...] ----

[...] Profiling.

[...]

[...] 1000 iterations

[...] 100 spins

[...] 3 sfrq

[...] ('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58.]))

[...] ('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78.]))

[...] ('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,

[...] 46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))

[...] ('chi2 cluster:', 0.0)

[...]

[...] TRUNK

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 5.221 0.005 53.578 0.054 relax_disp.py:456(calc_CR72_chi2)

[...]

[...] BEFORE

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 14.871 0.015 43.084 0.043 relax_disp.py:494(calc_CR72_chi2)

[...]

[...] AFTER removing looping over exp and offset indicies. They are always 0.

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1000 12.831 0.013 38.248 0.038 relax_disp.py:494(calc_CR72_chi2)

[...]........

[...] r23730 | tlinnet | 2014-06-08 13:14:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] In profiling script, moved up the calculation of values one level.

[...]

[...] This is to better see the output of the profiling iterations for cr72.py.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23731 | tlinnet | 2014-06-08 19:48:23 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Fix for calculation of the larmor frequency per spin in profiling script.

[...]

[...] The frq loop should also be up-shifted.

[...] It was now extracted as 0.0.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23732 | tlinnet | 2014-06-08 19:48:25 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-inserted safety checks in lin/dispersion/cr72.py file.

[...]

[...] This is re-inserted for the rank_1 cases.

[...]

[...] This makes the unit-tests pass again.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23733 | tlinnet | 2014-06-08 19:48:27 +0200 (Sun, 08 Jun 2014) | 8 lines

[...]

[...] Important fix for extracting the correct shape to create new arrays.

[...]

[...] If using just one field, or having the same number of dispersion points, the shape would extend to the dispersion number.

[...] It would report [ei][si][mi][oi][di] when calling ndarray.shape.

[...]

[...] Shape always has to be reported as: [ei][si][mi][oi].

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23734 | tlinnet | 2014-06-08 19:48:29 +0200 (Sun, 08 Jun 2014) | 3 lines

[...]

[...] Made it easier to switch between single and cluster reporting in profiling script.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23735 | tlinnet | 2014-06-08 19:48:31 +0200 (Sun, 08 Jun 2014) | 9 lines

[...]

[...] Important fix for the creation of the multi dimensional pA numpy array.

[...]

[...] It should be created as numpy.zeros([ei][si][mi][oi]) instead of numpy.ones([ei][si][mi][oi]).

[...]

[...] This allows for rapid testing of all dimensions with np.allclose(pA, numpy.ones(dw.shape)).

[...] pA can have missing filled out values, when the number of dispersion points are different

[...] per spectrometer frequency.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23736 | tlinnet | 2014-06-08 19:48:33 +0200 (Sun, 08 Jun 2014) | 18 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for one field.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23737 | tlinnet | 2014-06-08 19:48:35 +0200 (Sun, 08 Jun 2014) | 7 lines

[...]

[...] Re-implemented safety checks in lib/dispersion/cr72.py.

[...]

[...] This is now implemented for both rank-1 float array and of higher dimensions.

[...]

[...] This makes the unit tests pass for multi dimensional computing.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23738 | tlinnet | 2014-06-08 19:48:37 +0200 (Sun, 08 Jun 2014) | 17 lines

[...]

[...] Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

[...]

[...] This is implemented for three fields.

[...]

[...] This is to implement catching of math domain errors, before they occur.

[...]

[...] These tests cover all parameter value combinations which result in no exchange:

[...]

[...] - dw = 0.0,

[...] - pA = 1.0,

[...] - kex = 0.0,

[...] - dw = 0.0 and pA = 1.0,

[...] - dw = 0.0 and kex = 0.0,

[...] - pA = 1.0 and kex = 0.0,

[...] - dw = 0.0, pA = 1.0, and kex = 0.0.

[...] - kex = 1e5,

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23739 | tlinnet | 2014-06-08 19:48:38 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Changed that special numpy structure is also created for "CR72".

[...]

[...] This makes most system tests pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23740 | tlinnet | 2014-06-08 22:22:22 +0200 (Sun, 08 Jun 2014) | 5 lines

[...]

[...] Critical fix for the slicing of values in target function.

[...]

[...] This makes system test: Relax_disp.test_sod1wt_t25_to_cr72 pass.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23741 | tlinnet | 2014-06-08 22:22:24 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Added self.has_missing keyword in initialization of the Dispersion class.

[...]

[...] This is to test once, per spin or cluster.

[...] This saves a looping over the dipsersion points, when collection the data.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...] r23742 | tlinnet | 2014-06-08 22:22:26 +0200 (Sun, 08 Jun 2014) | 6 lines

[...]

[...] Created multi dimensional error and value numpy arrays.

[...]

[...] This is to calculate the chi2 sum much faster.

[...] Reordered the loop over missing data points, so it is only iniatiated if missing points is detected.

[...]

[...] Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]........

[...]

[...]

(Browse SVN revision 24653)

Edward d Auvergne <bugman>
Project Administrator
Tue Jul 22 16:21:20 2014, SVN revision 24650:

Comment space fixing in target_functions/relax_disp.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24650)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 16:09:15 2014, comment #486:

This development branch is now complete, and I ask for merge to trunk.

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 16:08:22 2014, SVN revision 24648:

API documentation fixes, where a "\" is the last character on the line. There should be a space " ", ending this characater.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24648)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:56:23 2014, SVN revision 24647:

Removed unnecessary repetitive calculation of kex**2 in model DPL94.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24647)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:47 2014, SVN revision 24646:

Documentation fix for the get_back_calc() function in target_function/relax_disp.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24646)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:45 2014, SVN revision 24645:

Removed chi sum initialisation in func_ns_mmq_2site() as this is not used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24645)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:44 2014, SVN revision 24644:

For model ns mmq 3site, moved the parameter conversion of dw_AB from target function to lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24644)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:42 2014, SVN revision 24643:

More removal of space after for loop in target_functions/relax_disp.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24643)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:40 2014, SVN revision 24642:

Copyright time extension for lib/dispersion/tsmfk01.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24642)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 15:53:38 2014, SVN revision 24641:

Removal of space after for loop in target_functions/relax_disp.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24641)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:59 2014, SVN revision 24637:

Code validation of target_functions/relax_disp.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24637)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:57 2014, SVN revision 24636:

Code validation of lib/dispersion/two_point.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24636)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:56 2014, SVN revision 24635:

Code validation of lib/dispersion/tp02.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24635)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:54 2014, SVN revision 24634:

Code validation of lib/dispersion/tap03.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24634)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:52 2014, SVN revision 24633:

Code validation of lib/dispersion/ns_r1rho_3site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24633)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:50 2014, SVN revision 24632:

Code validation of lib/dispersion/ns_r1rho_2site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24632)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:48 2014, SVN revision 24631:

Code validation of lib/dispersion/ns_mmq_3site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24631)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:46 2014, SVN revision 24630:

Code validation of lib/dispersion/ns_mmq_2site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24630)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:45 2014, SVN revision 24629:

Code validation of lib/dispersion/ns_cpmg_2site_star.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24629)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:42 2014, SVN revision 24628:

Code validation of lib/dispersion/ns_cpmg_2site_expanded.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24628)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:41 2014, SVN revision 24627:

Code validation of lib/dispersion/mp05.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24627)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:39 2014, SVN revision 24626:

Code validation of lib/dispersion/matrix_exponential.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24626)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:37 2014, SVN revision 24625:

Code validation of lib/dispersion/m61.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24625)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:35 2014, SVN revision 24624:

Code validation of lib/dispersion/m61b.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24624)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:34 2014, SVN revision 24623:

Code validation of lib/dispersion/lm63.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24623)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:32 2014, SVN revision 24622:

Code validation of lib/dispersion/lm63_3site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24622)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:30 2014, SVN revision 24621:

Code validation of lib/dispersion/dpl94.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24621)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:28 2014, SVN revision 24620:

Code validation of lib/dispersion/cr72.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24620)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 14:51:26 2014, SVN revision 24619:

Code validation of lib/dispersion/b14.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24619)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 13:35:17 2014, SVN revision 24615:

Reverted r24323 as relax dependency of numpy is now 1.6 where "einsum" function is available.

The command used was:
svn merge -r24323:r24322 .

.....
r24323 | tlinnet | 2014-06-25 19:31:40 +0200 (Wed, 25 Jun 2014) | 3 lines

Implemented a dependency check for numpy einsum, so relax can still start.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
.....

(Browse SVN revision 24615)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 13:27:44 2014, SVN revision 24614:

Reverted r24337 as relax dependency of numpy is now 1.6 where the "out" argument is available.

The command used was:
svn merge -r24337:r24336 .

.....
r24337 | tlinnet | 2014-06-27 12:58:24 +0200 (Fri, 27 Jun 2014) | 8 lines

Added a numpy "out" argument check to dep_check.py.

This is for checking the out argument of:
numpy.multiply
numpy.add
numpy.subtract

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
.....

(Browse SVN revision 24614)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 13:23:47 2014, SVN revision 24613:

Reverted r24336 as relax dependency of numpy is now 1.6 where the "einsum" function is available.

The command used was:
svn merge -r24336:r24335 .

.....
r24336 | tlinnet | 2014-06-27 12:58:22 +0200 (Fri, 27 Jun 2014) | 3 lines

Added to target function that experiment_type_setup() should not be initiated, if numpy.einsum is missing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
.....

(Browse SVN revision 24613)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jul 22 13:16:47 2014, SVN revision 24612:

Reverted r24339 as relax dependency of numpy is now 1.6 where the "out" argument is available.

The command used was:
svn merge -r24339:r24338 .

.....
r24339 | tlinnet | 2014-06-27 12:58:29 +0200 (Fri, 27 Jun 2014) | 3 lines

Added a list of systemtests to skip, if numpy "out" argument is not available.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
.....

(Browse SVN revision 24612)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 30 09:48:48 2014, SVN revision 24363:

Critical fix for the recalculation of tau cpmg, when plotting for numerical models.

The interpolated dispersion points with tau_cpgm was calculated with frq, instead of cmpg_frq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24363)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 15:16:16 2014, SVN revision 24351:

Replaced all self.num_frq with self.NM in target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24351)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 15:14:34 2014, SVN revision 24350:

Replaced all self.num_exp with self.NE in target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24350)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 15:12:25 2014, SVN revision 24349:

Replaced all self.spins with self.NS in target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24349)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 15:09:46 2014, SVN revision 24348:

Made the validation check in profiling of marix_power check all values.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24348)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 15:09:42 2014, SVN revision 24347:

Initial try to write up a 2x2 matrix by closed form.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24347)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 11:35:32 2014, SVN revision 24340:

Fix for unit test passing on old numpy systems.

The error was:
ValueError: setting an array element with a sequence.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24340)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 10:58:30 2014, SVN revision 24339:

Added a list of systemtests to skip, if numpy "out" argument is not available.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24339)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 10:58:26 2014, SVN revision 24338:

Added the missing "self.num_exp" to target function.

Testing on older system, this was failing the systemtest.
It is a wonder how these lines in _init_ could be performed without this?

self.end_index.append(self.num_exp * self.num_spins * self.num_frq)
if model in [MODEL_B14_FULL, MODEL_CR72_FULL, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR_FULL]:
self.end_index.append(2 * self.num_exp * self.num_spins * self.num_frq)

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24338)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 10:58:25 2014, SVN revision 24337:

Added a numpy "out" argument check to dep_check.py.

This is for checking the out argument of:
numpy.multiply
numpy.add
numpy.subtract

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24337)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 10:58:22 2014, SVN revision 24336:

Added to target function that experiment_type_setup() should not be initiated, if numpy.einsum is missing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24336)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 27 10:58:20 2014, SVN revision 24335:

Deleted the printout in dep_check. The printouts are only used for the essential packages before calling sys.exit()

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24335)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 18:41:50 2014, SVN revision 24326:

Added matrix_power to the init file in lib/dispersion.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24326)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 18:41:47 2014, SVN revision 24325:

First try to implement function that will calculate the matrix exponential by striding through data.

Interestingly, it does not work. Theses systemtests will fail.
test_hansen_cpmg_data_to_ns_cpmg_2site_3D
test_hansen_cpmg_data_to_ns_cpmg_2site_3D_full

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24325)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 17:31:45 2014, SVN revision 24324:

Initiated lengthy profiling script, that shows that doing square numpy matrix_power on strided data, can speed up the calculation by factor 1.5.

The profiling script can quicly be turned into a unit test, and includes small helper functions to calculate how to stride through the data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24324)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 17:31:41 2014, SVN revision 24323:

Implemented a dependency check for numpy einsum, so relax can still start.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24323)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 01:41:08 2014, SVN revision 24308:

Triple speed in NS MMQ 3site, after using numpy.linalg.matrix_power instead of the lib version in relax.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24308)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 01:41:06 2014, SVN revision 24307:

Comment and spell fixing in NS CPMG 2site 3d.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24307)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 01:41:04 2014, SVN revision 24306:

Small fix for making sure that power is a integer in ns mmq 2site.

Following system tests was failing.
- Relax_disp.test_korzhnev_2005_15n_dq_data
- Relax_disp.test_korzhnev_2005_15n_sq_data
- Relax_disp.test_korzhnev_2005_15n_zq_data
- Relax_disp.test_korzhnev_2005_1h_sq_data
- Relax_disp.test_korzhnev_2005_all_data
- Relax_disp.test_korzhnev_2005_all_data_disp_speed_bug

They should already be integers, but is now solved.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24306)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 01:41:03 2014, SVN revision 24305:

Triple speed in NS MMQ 2site, after using numpy.linalg.matrix_power instead of the lib version in relax.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24305)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 01:41:00 2014, SVN revision 24304:

Double speed in NS CPMG 2site star, after using numpy.linalg.matrix_power instead of the lib version in relax.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24304)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:52 2014, SVN revision 24303:

Changes to unit test of NS CPMG 2site 3D.

This is after the new initiated M0 matrix in init of target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24303)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:50 2014, SVN revision 24302:

Tried to implement using lib.linear_algebra.matrix_power.square_matrix_power instead of matrix_power from numpy in NS CPMG 2site 3d.

Strangely, then systemtest:
test_hansen_cpmg_data_to_ns_cpmg_2site_3D_full

starts to fail!

This is very weird.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24302)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:49 2014, SVN revision 24301:

Got rid of the inner evolution of the magnetization.

If the looping over the number of CPMG elements is given by the index l, and the initial magnetization has
been formed, then the number of times for propagation of magnetization is l = power_si_mi_di-1.
If the magnetization matrix "Mint" has the index Mint_(i,k) and the evolution matrix has the index Evol_(k,j), i=1, k=7, j=7
then the dot product is given by: Sum_{k=1}^{k} Mint_(1,k) * Evol_(k,j) = D_(1, j).
The numpy einsum formula for this would be: einsum('ik,kj -> ij', Mint, Evol)

Following evolution will be: Sum_{k=1}^{k} D_(1, j) * Evol_(k,j) = Mint_(1,k) * Evol_(k,j) * Evol_(k,j).
We can then realize, that the evolution matrix can be raised to the power l. Evol_P = Evol**l.
It will then be: einsum('ik,kj -> ij', Mint, Evol_P)

- Get which power to raise the matrix to.
l = power_si_mi_di-1

- Raise the square evolution matrix to the power l.
evolution_matrix_T_pwer_i = matrix_power(evolution_matrix_T_i, l)

Mint_T_i = dot(Mint_T_i, evolution_matrix_T_pwer_i)
or
Mint_T_i = einsum('ik,kj -> ij', Mint_T_i, evolution_matrix_T_pwer_i)

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24301)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:47 2014, SVN revision 24300:

Speeded up ns cpmg 2site 3d, by preforming the magnetisation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24300)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:45 2014, SVN revision 24299:

Lowered the looping in NS CPMG 2site 3D, by preforming the inital dot product.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24299)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:44 2014, SVN revision 24298:

Swapped the dot product position, when propagating the magnetisation in model NS CPMG 2site 3D.

This it to try to align to same method as in NS R1rho 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24298)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:42 2014, SVN revision 24297:

For model NS CPMG 2site 3d, the M0 matrix was preformed for higher dimensionality in init of target function.

The transposes/rolled axis versions was also initiated.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24297)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:40 2014, SVN revision 24296:

Removed un-used import of rollaxis in ns r1rho 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24296)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:39 2014, SVN revision 24295:

Speeded up the code of NS r1rho 3site.

This was essential done to numpy einsum, and doing the dot operations in multiple dimensions.
It was though necessary to realize, that to do the proper dot product operations, the outer two
axis if M0 should be swapped, by rolling the outer axis one back.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24295)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:36 2014, SVN revision 24294:

Speeded up the code of NS r1rho 2site.

This was essential done to numpy einsum, and doing the dot operations in multiple dimensions.
It was though necessary to realize, that to do the proper dot product operations, the outer two
axis if M0 should be swapped, by rolling the outer axis one back.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24294)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:34 2014, SVN revision 24293:

Shortened the code dramatically for NS R1rho 2site.

It is possible to calculate all in "one" go, after having the trasposer/rolled-back M0 magnetization.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24293)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:33 2014, SVN revision 24292:

Inserted an extremely interesting development in NS R1rho 2site.

If one do a transpose of M0, one can calculate all the matrix evolutions in the start via numpy einsum.
Since M0 is in higher a dimensions, one should not do a numpy transpose, but swap/roll the outer M0 6x1 axis.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24292)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:30 2014, SVN revision 24291:

Implemented a clustered version of systemtest test_tp02_data_to_ns_r1rho_2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24291)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 25 00:14:22 2014, SVN revision 24290:

Split systemtest test_tp02_data_to_ns_r1rho_2site into a setup and test part.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24290)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 14:35:05 2014, SVN revision 24287:

Speeded up ns r1rho 3site, by preforming the evolution matrices, and the M0 matrix in the init part of the target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24287)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 14:35:02 2014, SVN revision 24286:

Speeded up ns r1rho 2site, by preforming the evolution matrices, and the M0 matrix in the init part of the target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24286)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 13:36:01 2014, SVN revision 24283:

Speeded up ns mmq 3site, by moving the forming of evolution matrix out of the for loops, and preform it.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24283)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 13:27:51 2014, SVN revision 24282:

Speeded up ns mmq 2site, by moving the forming of evolution matrix out of the for loops, and preform it.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24282)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 12:58:08 2014, SVN revision 24280:

Speeded up model NS CPMG 2site star, by moving the forming of the propagator matrix out of the for loops, and preform it.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24280)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 12:46:29 2014, SVN revision 24278:

Implemented profiling script for ns mmq 3site and 3site linear.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24278)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 12:32:23 2014, SVN revision 24277:

Implemented profiling script for NS MMQ 2SITE.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24277)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 12:18:03 2014, SVN revision 24274:

Fix for the replacement value for invalid values in model MMQ CR72.

The value was set to use r20, but should instead be 1e100.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24274)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 12:17:59 2014, SVN revision 24273:

Added profiling script for model mmq cr72,

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24273)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 09:15:43 2014, SVN revision 24270:

Removed un-used imports in profiling scripts for NS r1rho 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24270)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 08:46:17 2014, SVN revision 24266:

Modified profiling script for ns r1rho 3site linear to be functional.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24266)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 24 08:43:06 2014, SVN revision 24265:

Modified profiling script for NS R1rho 3site, to be functional.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24265)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 14:23:31 2014, SVN revision 24250:

Implemented profiling script for LM63, 3 site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24250)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 13:45:28 2014, SVN revision 24248:

Moved numerical solution matrices into the corresponding lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24248)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 12:48:04 2014, SVN revision 24247:

Split matrix_exponential_rankN into matrix_exponential_rank_NE_NS_NM_NO_ND_x_x and matrix_exponential_rank_NS_NM_NO_ND_x_x.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24247)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 12:09:29 2014, SVN revision 24244:

Added data for unit test for the testing of the matrix_exponential_rankN.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24244)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 12:09:28 2014, SVN revision 24243:

Added unit test for doing the matrix exponential for complex data.

This test shows, that the dtype=complex64, should be removed from lib/dispersion/ns_mmq_2site.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24243)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 12:09:26 2014, SVN revision 24242:

Fix to lib/dispersion/matrix_exponential.py, since the svn copy command was used on non-updated version of the file.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24242)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 12:09:24 2014, SVN revision 24241:

Renamed function to return data in unit test _lib/_dispersion/test_matrix_exponential.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24241)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 11:04:22 2014, SVN revision 24240:

Added unit test unit_tests/_lib/_dispersion/test_matrix_exponential.py to test the matrix exponential from higher dimensional data.

- lib.dispersion.matrix_exponential.matrix_exponential_rankN
will match against
- lib.linear_algebra.matrix_exponential.

Data which is used for comparison, comes from system test: Relax_disp.test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24240)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 11:04:20 2014, SVN revision 24239:

Added numpy array save files.

They are the numpy array structures, which are send in from systemtest: Relax_disp.test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

These numpy array structures, are used in unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24239)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 11:04:18 2014, SVN revision 24238:

Added to unit_tests/_lib/_dispersion/__init__.py, the new unit test file: test_matrix_exponential.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24238)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 23 11:04:16 2014, SVN revision 24237:

Added to _init_, the new lib.dispersion.matrix_exponential module.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24237)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 22 20:11:57 2014, SVN revision 24235:

Added log files for super profiling against tags 3.2.1 and 3.2.2.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24235)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 08:21:29 2014, SVN revision 24234:

Precission lowering of systemtest, test_korzhnev_2005_15n_sq_data and test_korzhnev_2005_1h_sq_data.

The systemtests does not fail on Linux 64 bit system, but only on Mac 32 bit system.
This is due to floating error deviations.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24234)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 08:21:27 2014, SVN revision 24233:

Math domain fix for ns cpmg 2site expanded.

This is when t108 or t112 is zero, in the multidimensional array, a division error occurs.
The elements are first set to 1.0, to allow for computation.
Then elements are later replaced with 1e100.
Lastly, if the elements are not part of the "True" dispersion point structure, they are cleaned out.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24233)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 07:50:10 2014, SVN revision 24232:

Added comment field to super profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24232)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 06:42:47 2014, SVN revision 24231:

Modified super profiling script, to allow input to script, where alternative version of relax is positioned.
Collected the variables in a list of lists, for better overview.

Added a print out comment to IT99, to remember the bug.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24231)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 06:42:45 2014, SVN revision 24230:

For all profiling scripts, added conversion to numpy array for CPMG frqs and spin_lock, since some models complained in 3.2.2, that
they were of list types.

Also fixed IT99 to only have 1 spin, since clustering is broken in 3.2.2.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24230)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 21 06:42:42 2014, SVN revision 24229:

Deleted the profiling of eig function profiling script.

This was never implemented.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24229)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 18:07:16 2014, SVN revision 24228:

Removed pA, pB and pC from the matrice population function rr1rho_3d_3site_rankN, since they are not used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24228)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 18:03:31 2014, SVN revision 24227:

Documentation fix for the dimensionality for model ns r1rho 2site.

The data is lined up to be of form [NE][NS][NM][NO][ND].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24227)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 18:03:29 2014, SVN revision 24226:

Removed pA and pB from the matrice population function rr1rho_3d_2site_rankN, since they are not used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24226)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 18:03:27 2014, SVN revision 24225:

Removed pA and pB from the matrice population function rcpmg_star_rankN, since they are not used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24225)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 18:03:25 2014, SVN revision 24224:

Cleaned up the Dispersion class target function, for creation of matrices, which is now populated inside the lib functions instead.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24224)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:44:05 2014, SVN revision 24223:

Moved parameter conversion for ns r1rho 3site inside lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24223)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:44:03 2014, SVN revision 24222:

Removed the parameter "matrix" to be send to lib function of ns r1rho 3site, since it is now populated inside the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24222)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:44:02 2014, SVN revision 24221:

Moved the calculation of the matrix exponential out of the for loops for ns r1rho 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24221)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:44:00 2014, SVN revision 24220:

Started using the newly multidimensional 3D exchange matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24220)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:13:18 2014, SVN revision 24219:

Inserted check, that newly multi dimensional matrix is equal the old.

It is, to the 13 digit.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24219)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:13:16 2014, SVN revision 24218:

Implemented multidimensional r1rho 3d 3site 3D exchange matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24218)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 17:13:15 2014, SVN revision 24217:

Renamed some numerical matrices, to get consistency in naming.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24217)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:54:34 2014, SVN revision 24216:

Documentation and input fix for ns mmq 2site. The m1 and m2 matrices are populated inside the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24216)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:54:32 2014, SVN revision 24215:

Removed m1 and m2 to be sent to target function of ns_mmq_3site_chi2.

They are now populated inside the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24215)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:43:00 2014, SVN revision 24214:

Removed the complex64 to be used as dtype in matrix exponential. Fix for missing "_i" in variable.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24214)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:59 2014, SVN revision 24213:

Converted ns mmq 3site/sq/dq/zq to calculte the matrix exponential out of the for loops.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24213)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:57 2014, SVN revision 24212:

Moved the calculation of the matrix exponential out of for loops for ns mmq 3site mq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24212)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:55 2014, SVN revision 24211:

Started using the newly created highher dimensional Bloch-McConnell matrix for 3-site exchange.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24211)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:53 2014, SVN revision 24210:

Inserted a check, that the new higher dimensional m1 and m2 matrixes are equal to before.

They are, to the 5 digit.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24210)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:51 2014, SVN revision 24209:

Implemented the Bloch-McConnell matrix for 3-site exchange, for multidimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24209)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 15:42:49 2014, SVN revision 24208:

Removed m1 and m2 to be sent to lib function of ns mmq 2site, since they are now populated inside the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24208)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:48:35 2014, SVN revision 24207:

Moved the Bloch-McConnell matrix for 3-site exchange, into the lib/dispersion/ns_matrices.py.

This is to standard the code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24207)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:48:33 2014, SVN revision 24206:

Code cleanup and copyright adding to lib/dispersion/ns_matrices.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24206)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:22:21 2014, SVN revision 24205:

Moved the matrices for Bloch-McConnell from lib ns_mmq_2site, since they are now defined in ns_matrices.py

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24205)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:22:20 2014, SVN revision 24204:

Moved the Bloch-McConnell matrix for 2-site exchange into lib/dispersion/ns_matrices.py.

This is for consistency with the other code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24204)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:22:18 2014, SVN revision 24203:

Fix the bug: "M2_i = M1_mat", which was causing the problems getting systemtests to pass.

Removed the specifications of which dtype, the initial matrices are created.
They can be converted later, with the specification of dtype to matrix_exponential_rankN().

All systemtests now pass.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24203)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 13:22:16 2014, SVN revision 24202:

Added the "dtype" argument to function matrix_exponential_rankN.

This is to force the conversion of dtype, if they are of other type.
This can be conversion from complex128 to complex64.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24202)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 10:00:18 2014, SVN revision 24201:

Fix for using the old matrix_exponential of m1.

Onye:
- test_korzhnev_2005_15n_sq_data

Is still failing.
That still uses the matrix_exponential_rankN.

There seems to be a problem with matrix_exponential_rankN, when doing
complex numbers.

Maybe the dtype has to get fixed?
Use it as a input argument?

It must be the einsum

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24201)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 10:00:16 2014, SVN revision 24200:

Force complex64 in ns_mmq_2site_mq.

This solves all systemtests.

Forcing to be complex64, does not seems like a long standing solution, since
complex128 is possible.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24200)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 10:00:13 2014, SVN revision 24199:

Forces complex64 in ns_mmq_2site_sq_dq_zq instead complex128.

This fixes systemtests:
- test_korzhnev_2005_15n_zq_data
- test_korzhnev_2005_1h_sq_data

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24199)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 09:39:04 2014, SVN revision 24198:

Forcing the dtype to be complex64, instead of complex128.

This solves a range of systemtests.
The one who fails now is:

-test_korzhnev_2005_15n_zq_data
-test_korzhnev_2005_1h_mq_data
-test_korzhnev_2005_1h_sq_data

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24198)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 08:54:08 2014, SVN revision 24197:

Reinserted old code.

This fixes:
test_korzhnev_2005_15n_mq_data

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24197)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 08:54:06 2014, SVN revision 24196:

Fix for ns_mmq_2site_mq.

Variable was wrong called.
There seems to be a serious problem more with mq.

test_korzhnev_2005_15n_dq_data
self.assertAlmostEqual(spin.r2[r20_key3], 13.6153887849344, 2)
AssertionError: 13.624172993315323 != 13.6153887849344 within 2 places

test_korzhnev_2005_15n_mq_data
self.assertAlmostEqual(spin.r2[r20_key1], 6.02016436619016, 1)
AssertionError: 0.00032836499986468263 != 6.02016436619016 within 1 places

test_korzhnev_2005_15n_sq_data
self.assertAlmostEqual(spin.kex/1000, 433.176323890829849/1000, 3)
AssertionError: 0.42987451018414946 != 0.43317632389082983 within 3 places

test_korzhnev_2005_1h_mq_data
self.assertAlmostEqual(spin.r2[r20_key2], 0.039223196112941, 2)
AssertionError: 0.033056489136372089 != 0.039223196112941 within 2 places

test_korzhnev_2005_1h_sq_data
self.assertAlmostEqual(spin.chi2, 50.3431330819767, 1)
AssertionError: 50.400683622209989 != 50.3431330819767 within 1 places

test_korzhnev_2005_all_data
self.assertAlmostEqual(spin.r2[r20_key1], 6.67288025927458, 4)
AssertionError: 6.7044178906652689 != 6.67288025927458 within 4 places

test_korzhnev_2005_all_data_disp_speed_bug
self.assertAlmostEqual(spin.chi2/1000, 162.511988511609/1000, 3)
AssertionError: 0.49707952193522587 != 0.162511988511609 within 3 places

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24196)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 08:54:04 2014, SVN revision 24195:

Removed grid search, and lowered number of iterations for systemtest:
test_cpmg_synthetic_b14_to_ns3d_cluster
test_cpmg_synthetic_b14_to_ns_star_cluster

This is to speed them up, since they before took 30 seks.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24195)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 08:54:02 2014, SVN revision 24194:

Implemented same functionality in mmq_2site_sq_dq_zq.

Problem, following system test fails!
test_korzhnev_2005_15n_dq_data
test_korzhnev_2005_15n_mq_data
test_korzhnev_2005_15n_sq_data
test_korzhnev_2005_1h_mq_data
test_korzhnev_2005_1h_sq_data
test_korzhnev_2005_all_data
test_korzhnev_2005_all_data_disp_speed_bug

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24194)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 07:52:14 2014, SVN revision 24193:

Fix for an extra axis inserted in eye function, when dimensionality is only [NS][NM][NO][ND].

This also fixes the index in the lib function of ns_mmq_2site_mq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24193)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 07:38:34 2014, SVN revision 24192:

Made the function matrix_exponential_rankN also find the exponential if the experiments indices are missing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24192)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 07:38:31 2014, SVN revision 24191:

Moved the costly calculation of matrix_exponential of M1 and M2 out of for loop, in model ns_mmq_2site_mq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24191)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 07:38:27 2014, SVN revision 24190:

Started using the newly created multidimensional m1 and m2 matrixes.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24190)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 07:18:01 2014, SVN revision 24189:

Implemented the collection of the multidimensional matrix m1 and m2 in model ns mmq 2site.

Inserted also a check, that the newly computed matrix is equal.
They are, to the 6 digit.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24189)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:53:31 2014, SVN revision 24188:

Removed input of matrix, Rr, Rex, RCS and R to model NS CPMG 2site star.

These matrixes is now extracted from ns matrix function rcpmg_star_rankN.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24188)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:48:57 2014, SVN revision 24187:

Further cleaned up the code in NS CPMG 2site start.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24187)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:37:30 2014, SVN revision 24186:

Simplified model CPMG 2site 3D.

The expansion of matrixes to higher dimensionality is not neccessary.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24186)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:29:46 2014, SVN revision 24185:

Cleaned up the code in model NS CPMG 2site star.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24185)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:29:45 2014, SVN revision 24184:

Rearranged the dot code, for better view.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24184)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:29:42 2014, SVN revision 24183:

Moved the costly matrix_exponential of cR2 out of for loops.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24183)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:19:20 2014, SVN revision 24182:

Rearranged the code, to properly show the nested matrix exponentials in dot functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24182)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:19:18 2014, SVN revision 24181:

Moved the costly finding of matrix exponential out of for loops for eR_tcp.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24181)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:57 2014, SVN revision 24180:

Changes of values to systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_star.

The values are changed, since chi2 is lower than before.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24180)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:56 2014, SVN revision 24179:

Started using the newly cR2 variable, extracted from higher dimensional data.

This should be okay, but systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_star, now fails:

Optimised parameter values:
r2 (SQ CPMG - 500.00000000 MHz) 4.998935658499767
r2 (SQ CPMG - 800.00000000 MHz) 6.898256259440341
dw 2.092924953509931
pA 0.986716058519642
kex 2438.044235414625746

Optimised parameters:

Parameter Value (:70) Value (:71)
R2 (500 MHz) 6.95812598916492 4.99893565849977
R2 (800 MHz) 9.39656319607375 6.89825625944034
pA 0.989701272773474 0.986716058519642
dw 5.67316761415756 2.09292495350993
kex 1713.67781672744 2438.04423541463
chi2 52.510693756237 15.1644902423334

F
======================================================================
FAIL: test_hansen_cpmg_data_to_ns_cpmg_2site_star (test_suite.system_tests.relax_disp.Relax_disp)
Optimisation of Dr. Flemming Hansen's CPMG data to the 'NS CPMG 2-site star' dispersion model.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/tlinnet/software/disp_spin_speed/test_suite/system_tests/relax_disp.py", line 3211, in test_hansen_cpmg_data_to_ns_cpmg_2site_star
self.assertAlmostEqual(spin71.pA, 0.992258541625787, 2)
AssertionError: 0.98671605851964195 != 0.992258541625787 within 2 places

---------------
Compared to systemtest:
It seems that there has been "problems" with residue 71 before.

# Checks for residue :70.
self.assertAlmostEqual(spin70.r2[r20_key1], 6.95543947938561, 1)
self.assertAlmostEqual(spin70.r2[r20_key2], 9.38991914134929, 1)
self.assertAlmostEqual(spin70.pA, 0.989702750971153, 3)
self.assertAlmostEqual(spin70.dw, 5.67527122494516, 1)
self.assertAlmostEqual(spin70.kex/1000, 1715.72032391817/1000, 1)
self.assertAlmostEqual(spin70.chi2, 52.5011991483842, 1)

# Checks for residue :71.
self.assertAlmostEqual(spin71.r2[r20_key1], 4.992594256544, 1)
self.assertAlmostEqual(spin71.pA, 0.992258541625787, 2)
self.assertAlmostEqual(spin71.dw/100, 2.75140650899058/100, 2)
self.assertAlmostEqual(spin71.kex/100000, 2106.60885247431/100000, 2)
self.assertAlmostEqual(spin71.chi2/100, 17.3293856656588/100, 1)

# Test the conversion to k_AB from kex and pA.

[...] self.assertEqual(spin70.k_AB, spin70.kex * (1.0 - spin70.pA))

[...] self.assertEqual(spin71.k_AB, spin71.kex * (1.0 - spin71.pA))

[...]

[...] # Test the conversion to k_BA from kex and pA.

[...] self.assertEqual(spin70.k_BA, spin70.kex * spin70.pA)

[...] self.assertEqual(spin71.k_BA, spin71.kex * spin71.pA)

[...]

[...]Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

[...]

(Browse SVN revision 24179)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:54 2014, SVN revision 24178:

Added the systemtest: test_cpmg_synthetic_b14_to_ns_star_cluster, to check
for the model is still working after change.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24178)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:51 2014, SVN revision 24177:

Started using the newly created multidimensional matrix.

test_hansen_cpmg_data_to_ns_cpmg_2site_star

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24177)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:49 2014, SVN revision 24176:

Insert check, that the newly created multidimensional matrix is the same.

They are, but only to the fifth digit.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24176)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 20 06:11:47 2014, SVN revision 24175:

Added the function "rcpmg_star_rankN" for the collection of the multidimensional relaxation matrix for model NS CPMG 2site star.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24175)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 19:05:53 2014, SVN revision 24174:

Removed the parsing of a matrix to the lib function of NS R1rho 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24174)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 19:05:51 2014, SVN revision 24173:

Cleaned up the code of NS R1rho 2site, and removed the matrix argument to the function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24173)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 19:05:50 2014, SVN revision 24172:

Made the returned multidimensional rr1rho_3d_rankN, be of float64 type.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24172)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:52:58 2014, SVN revision 24171:

Moved the costly calculation of the matrix exponential out of for loops.

It was the numpy.eig and numpy.inv which was draining power.

This speeds up model NS R1rho 2site, by a factor 4X:
BEFORE:
Single:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 32.552 32.552 :1()
1 0.002 0.002 32.552 32.552 pf_nsr1rho2site:530(single)
Cluster:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 33.307 33.307 :1()
1 0.008 0.008 33.307 33.307 pf_nsr1rho2site:554(cluster)

AFTER:
Single:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 8.286 8.286 :1()
1 0.002 0.002 8.286 8.286 pf_nsr1rho2site:530(single)
Cluster:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 8.223 8.223 :1()
1 0.007 0.007 8.223 8.223 pf_nsr1rho2site:554(cluster)

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24171)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:52:55 2014, SVN revision 24170:

Fix to the matrix_exponential_rankN, to return the exact exponential for any higher dimensional square matrix
of shape [NE][NS][NM][NO][ND][X][X].

The fix was to the eye(X), to make the shape the same as the input shape.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24170)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:52:54 2014, SVN revision 24169:

Made the function use the new multidimensional R_mat matrix.

Systemtest: test_tp02_data_to_ns_r1rho_2site
still passes.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24169)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:52:52 2014, SVN revision 24168:

Added a check, that the pre- relax_time multiplied multidimensional array, equal the previous.

It does, to the sum of 1.0e-13.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24168)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:52:50 2014, SVN revision 24167:

Added the relax_time to collection of rr1rho_3d_rankN matrix collection.

This is to pre-multiply all elements with the time.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24167)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:17:49 2014, SVN revision 24166:

Added a check in lib/dispersion/ns_r1hro_2site.py, to see if the newly created multidimensional
ns matrix of rank NE][NS][NM][NO][ND][6][6], is equal to the previous [6][6] matrix.

It is.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24166)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 18:17:48 2014, SVN revision 24165:

Added the ns matrice, rr1rho_3d_rankN, to collect the multi dimensional 3D exchange matrix, of rank [NE][NS][NM][NO][ND][6][6].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24165)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 17:18:15 2014, comment #325:

Storage of idea: NS CPMG 2site 3d

Skipping of the spin lloop

# Loop over the spins
#for si in range(NS):
# # Loop over the spectrometer frequencies.
for mi in range(NM):
# Extract number of points.
num_points_si_mi = int(num_points[0, 0, mi, 0])

# Loop over the time points, back calculating the R2eff values.
for di in range(num_points_si_mi):
# Extract the values from the higher dimensional arrays.
inv_tcpmg_si_mi_di = inv_tcpmg[0, 0, mi, 0, di]
power_si_mi_di = int(power[0, 0, mi, 0, di])
#r20a_si_mi_di = r20a[0, 0, mi, 0, di]

# Initial magnetisation.
Mint_i = Mint_mat[:, :, mi, Ellipsis]

# This matrix is a propagator that will evolve the magnetization with the matrix R for a delay tcp.
evolution_matrix_i = evolution_matrix_mat[:, :, mi, Ellipsis]

# Loop over the CPMG elements, propagating the magnetisation.
for j in range(power_si_mi_di):
Mint_i = einsum('...ij,...jk', evolution_matrix_i, Mint_i)

# Store the result.
Mint_mat[:, :, mi, Ellipsis] = Mint_i

print Mint_mat[:, :, :, :, :, 1, 0]
print asd

# The next lines calculate the R2eff using a two-point approximation, i.e. assuming that the decay is mono-exponential.
#Mx = Mint_i[1][0] / pA
# Extract data from ei, si, mi, oi, di, the [1][0]
Mx = Mint_mat[:, :, :, :, :, 1, 0] / pA

mask_inv = masked_invalid(Mx)
if any(mask_inv.mask):
Mx[mask_inv.mask] = r20a[mask_inv.mask]

back_calc[:] = Mx

#if Mx <= 0.0 or isNaN(Mx):
# back_calc[0, si, mi, 0, di] = r20a_si_mi_di
#else:
# back_calc[0, si, mi, 0, di] = - inv_tcpmg_si_mi_di * log(Mx)

# Replace data in array.
# If dw is zero.
if t_dw_zero:
back_calc[mask_dw_zero.mask] = r20a[mask_dw_zero.mask]

# Catch errors, taking a sum over array is the fastest way to check for
# +/- inf (infinity) and nan (not a number).
if not isfinite(sum(back_calc)):
# Replaces nan, inf, etc. with fill value.
fix_invalid(back_calc, copy=False, fill_value=1e100)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:28 2014, SVN revision 24164:

Changed back from einsum to dot method, since dot method it faster for square matrixes.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24164)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:25 2014, SVN revision 24163:

Replaced the inner dot product with numpy einsum.

This though slows it down from 8.5 s to 13 s.
This is only as an intermediate step, how to figure to dot product inner parts of the big matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24163)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:23 2014, SVN revision 24162:

Removed unused variables in NS CPMG 2site 3D, to clean up the code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24162)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:20 2014, SVN revision 24161:

Implemeted systemtest: test_cpmg_synthetic_b14_to_ns3d_cluster

This is to cathc failures of the model, when data is clusted.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24161)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:17 2014, SVN revision 24160:

Moved the calculation the evolution matrix out of for loops.

The trick is that numpy.einsum allows for dot product of higher dimension:

- The the essential evolution matrix.
- This is a dot product of the outer [7][7] matrix of the Rexpo_mat and r180x_mat matrixes, which
- have the shape [NE][NS][NM][NO][ND][7][7].
- This can be achieved by using numpy einsum, and where ellipsis notation will use the last axis.
evolution_matrix_mat = einsum('...ij,...jk', Rexpo_mat, r180x_mat)
evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, Rexpo_mat)
evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, evolution_matrix_mat)

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24160)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:14 2014, SVN revision 24159:

Made notation consistent for variables, using "_i" to clarify extracted data from matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24159)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:05 2014, SVN revision 24158:

Implemented double speed of model NS CPMG 2site 3D:

This is done by moving the costly calculation of the matrix exponential out of the for loops.
The trick was to find a method to do dot product of higher dimensions.
Thiw was done with numpy.einsum:
Example at:
http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum

Example:
dot_V_W = einsum('...ij,...jk', V, W_exp_diag)
Where V, and W_exp_diag has shape: [NE][NS][NM][NO][ND][7][7]

The profiling script shows a 2X speed up.

----BEFORE:
SINGLE
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 18.811 18.811 :1()
1 0.002 0.002 18.811 18.811 pf_3d:407(single)
CLUSTER
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 18.315 18.315 :1()
1 0.001 0.001 18.315 18.315 pf_3d:431(cluster)

-----AFTER:
SINGLE
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 8.818 8.818 :1()
1 0.002 0.002 8.818 8.818 pf_3d:407(single)
CLUSTER
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 9.082 9.082 :1()
1 0.001 0.001 9.082 9.082 pf_3d:431(cluster)

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24158)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:42:02 2014, SVN revision 24157:

Inserted intermediate step, to check if the matrix propagator to evolve the magnetization is equal
when done for lower dimensional data of shape [7][7] and higher dimensional data of shape [NE][NS][NM][NO][ND][7][7].

A short example is shown at the wiki:
http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24157)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:59 2014, SVN revision 24156:

Added function to compute the matrix exponential for higher dimensional data of shape [NE][NS][NM][NO][ND][7][7].

This is done by using numpy.einsum, to make the dot product of the last two axis.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24156)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:55 2014, SVN revision 24155:

Added another intermediate step.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24155)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:52 2014, SVN revision 24154:

Added intermediate step with for loops.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24154)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:49 2014, SVN revision 24153:

Shifted the computation of Rexpo two loops up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24153)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:45 2014, SVN revision 24152:

Implemented test, to see if 3D exchange matrixes are the same.

This can be tested while running systemtest test_hansen_cpmg_data_to_ns_cpmg_2site_3D.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24152)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 19 15:41:42 2014, SVN revision 24151:

Implemented the collection of the 3D exchange matrix, for rank [NE][NS][NM][NO][ND][7][7].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24151)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:58:39 2014, SVN revision 24149:

Comment fixing, for explaining the masking and replacing when dw is zero?\195?\131.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24149)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:50:33 2014, SVN revision 24148:

Added additional math domain checking in B14.

This is when v1c is less than 1.0.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24148)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:41:37 2014, SVN revision 24147:

Fixed the input for unit test of mmq cr72.

The number of input parameters has been lowered.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24147)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:41:36 2014, SVN revision 24146:

Critical fix for wrong space inserted in ns mmq 3site mq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24146)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:32:40 2014, SVN revision 24145:

Fix for spaces aroung "=" outside functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24145)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:28:05 2014, SVN revision 24144:

Fix for missing comments.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24144)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:23:51 2014, SVN revision 24143:

Spell fix in code for ns cpmg 2site expanded.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24143)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:22:03 2014, SVN revision 24142:

Moved the "eta_scale = 2.0**(-3.0/2.0)" out of lib function for mmq cr72, since this is only needs to be computed once.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24142)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:17:29 2014, SVN revision 24141:

Implemented profiling script for LM63.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24141)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 18:17:27 2014, SVN revision 24140:

Added profiling script for IT99.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24140)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:36:48 2014, SVN revision 24135:

Implemented profiling script for NS CPMG STAR and STAR FULL.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24135)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:32:19 2014, SVN revision 24134:

Implemented profiling script for NS CPMG 2site 3D.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24134)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:29:29 2014, SVN revision 24133:

Removal of junk, and implementing NO REX profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24133)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:25:32 2014, SVN revision 24132:

Removal of junk from profiling script CR72 and making it work.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24132)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:25:30 2014, SVN revision 24131:

Removal of junk for profiling script CR72 full.
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24131)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:20:22 2014, SVN revision 24130:

Removal of junk from profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24130)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:20:19 2014, SVN revision 24129:

Removal of junk, and replacing func.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24129)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:15:19 2014, SVN revision 24128:

Modified profiling script for B14, to R20A=R20B.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24128)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 17:01:24 2014, SVN revision 24121:

Moved the parameter conversion for r1rho 3site into lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24121)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 16:52:37 2014, SVN revision 24119:

Moved the parameter conversion for ns mmq 3site into lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24119)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:57:44 2014, SVN revision 24115:

Moved the parameter conversion from target function to lib function for NS r1rho 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24115)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:52:07 2014, SVN revision 24114:

Moved the paramter conversions of k_AB, k_BA and pB into lib function of NS MMQ 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24114)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:39:08 2014, SVN revision 24113:

Moved the parameter conversion of MMQ CR72 into lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24113)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:31:55 2014, SVN revision 24111:

Modified profiling script for M61.

This is the last one.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24111)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:27:54 2014, SVN revision 24110:

Modified profiling script for MP05.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24110)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:23:44 2014, SVN revision 24109:

Modified profiling script for TP02, to be used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24109)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:21:39 2014, SVN revision 24108:

Modified profiling script for TAP03 to be used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24108)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 15:11:25 2014, SVN revision 24103:

Moved the ?\195?\131parter conversion in LM63 3site into the lib function.

This cleans up the target api function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24103)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 14:48:50 2014, SVN revision 24100:

Added profiling script for NS R1rho 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24100)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 14:33:46 2014, SVN revision 24096:

Fix for the profiling script of NS cpmg 3D.

The model should also be speciffied to full.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24096)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 14:17:42 2014, SVN revision 24095:

Changes to profiling script of ns expanded.

The unpacking can be removed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24095)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 14:07:10 2014, SVN revision 24094:

Made changes to the profiling script of NS_CPMG_2SITE_3D.

Need to use the full model, when r2a and r2b is specified.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24094)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 14:03:46 2014, SVN revision 24093:

Changes to profiling script of ns_cpmg_2site_expanded.

The model does not have r20a and r20b, but only r2.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24093)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 13:58:31 2014, SVN revision 24092:

Modified profiling script for TSMK01, to use correct parameters k_AB and r20a.

Or else, the lib functions is just calculating with zero?

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24092)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 13:44:58 2014, SVN revision 24091:

Added DPL94 profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24091)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 09:37:13 2014, SVN revision 24081:

Made the processor.return_object get the back_calc structure in the expected order.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24081)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:50:36 2014, SVN revision 24077:

Copyright fix for model TSMFK01.

Sebastien Morin did not take part of implementing the TSMK01 model?\195?\131.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24077)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:49:10 2014, SVN revision 24076:

Copyright fixes for all the models, where Troels E. Linnet have made changes to make them functional for higher dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24076)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:44:05 2014, SVN revision 24075:

Replaced double or triple hash-tags "##" with single hash-tags "#".

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24075)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:35:42 2014, SVN revision 24073:

Implemented systemtest test_r1rho_kjaergaard_missing_r1, for safety check if R1 data is not loaded.

The systemtest passes, so target function is safe.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24073)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:30:03 2014, SVN revision 24071:

Split systemtest test_r1rho_kjaergaard into test_r1rho_kjaergaard_auto and test_r1rho_kjaergaard_man.

This is to test use of the manual way to analyse.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24071)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:30:00 2014, SVN revision 24070:

Renamed systemtes test_r1rho_kjaergaard to test_r1rho_kjaergaard_auto.

This corresponds to the use of the automatic analysis method.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24070)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 08:29:57 2014, SVN revision 24069:

Split the systemtest test_r1rho_kjaergaard into a setup function, and a test function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24069)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 07:41:11 2014, SVN revision 24065:

Made changes to the dir argument of systemtest Relax_disp.test_r1rho_kjaergaard.

This is to prepare for:
sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2_eff as function of Omega_eff
sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1]

This is also to test an expected bug, if R1 is not loaded.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24065)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 07:25:50 2014, SVN revision 24064:

Removed superfluous check, after the returned data is now in right structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24064)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 07:25:48 2014, SVN revision 24063:

Used the new class function: get_back_calc(), to get the data in the right structures when interpolating for graphs.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24063)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 18 07:25:46 2014, SVN revision 24062:

Implemented class function in target class, to return back_calc values as list of lists.

This is the back and forth conversion between the data structures implemented when gathering the data,
and the data send to the library function of higher dimensionality.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24062)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 18:31:15 2014, comment #263:

This now complete.

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 18:26:42 2014, SVN revision 24061:

Removed the number of disp points in target function for LM63 3site, since it is no ?\195?\131longer used,
but have been replaced with mask replacements.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24061)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 18:26:39 2014, SVN revision 24060:

Implemented the lib function for LM63 3site, for higher dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24060)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 18:26:37 2014, SVN revision 24059:

Implemented target function for LM63 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24059)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 17:27:12 2014, SVN revision 24057:

Implemented the lib function for ns r1rho 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24057)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 17:27:11 2014, SVN revision 24056:

Implemented the target function for ns r1rho 3site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24056)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 17:11:08 2014, SVN revision 24055:

Documentation fix for the dimensionality of the input arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24055)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 17:08:20 2014, SVN revision 24054:

Removal of the temporary offset argument.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24054)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 17:04:51 2014, SVN revision 24053:

Fatal fix for calling inv_relax_time from relax_time variable.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24053)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 14:51:47 2014, SVN revision 24042:

First attempt to implement lib function for ns r1rho 2site.

But it does not work yet.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24042)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 14:51:45 2014, SVN revision 24041:

First attempt to implement target function for ns_r1rho_2site.

But it does not work yet.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24041)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 13:49:55 2014, SVN revision 24039:

Fix for shortening the variables names.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24039)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 13:08:27 2014, SVN revision 24038:

Documentation fix for the initial data structure of cpmg_frqs, spin_lock_nu1, r1.

They were incorrect.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24038)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 12:53:54 2014, SVN revision 24036:

Documentation fix for which dimensionality number of points have.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24036)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 12:53:53 2014, SVN revision 24035:

Reorded the lib function for ns mmq 3site to use higher dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24035)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 12:53:51 2014, SVN revision 24034:

Restructured target function for ns mmq 3site to the new API structure of higher dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24034)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 12:53:49 2014, SVN revision 24033:

More fixes for numpy index in lib functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24033)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 12:53:47 2014, SVN revision 24032:

Documentation fix, where a double bracket "[[" has been copied into all lib functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24032)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 11:07:42 2014, SVN revision 24027:

More replacing of numpy index.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24027)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 11:07:40 2014, SVN revision 24026:

Replaced index to numpy array from example [0][si][mi][oi] to [0, si, mi, oi].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24026)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 10:20:15 2014, SVN revision 24023:

Fix for systemtest test_korzhnev_2005_all_data_disp_speed_bug.

The precision is lowered, and now matches the original systemtest.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24023)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 10:20:12 2014, SVN revision 24022:

Fix for structure cleaning and value replacing for model mmq CR72.

System test: test_korzhnev_2005_all_data
revealed how this should be done properly.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24022)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 09:56:45 2014, SVN revision 24019:

Moved the cleaning of data points and replacing of values of out loop for model ns mmq 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24019)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 09:56:43 2014, SVN revision 24018:

Fix for systemtest: test_korzhnev_2005_all_data

The masking for replacing values was wrong.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24018)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 07:47:10 2014, SVN revision 24014:

Updated documentation on dimensionality of numpy array num_points.

They are in dimension [NE][NS][[NM][NO], where oi gives the number of
dispersion points at that offset.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24014)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 07:33:33 2014, SVN revision 24013:

Temporary added systemtest: test_korzhnev_2005_all_data_disp_speed_bug.

This makes a minimisation with 1 iteration, and so will give the chi2 value at the preset
parameter values.

This is chi2 value should give 162.5, but gives 74.7104.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24013)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 07:18:41 2014, SVN revision 24011:

Bug fix for model LM63 3site. The index si has to be used to extract data to lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24011)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 17 07:18:39 2014, SVN revision 24010:

Added missing instances of cleaning the data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24010)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:56 2014, SVN revision 24007:

Changed the calculation of inner product in model ns cpmg 2site 3d.

The out argument of numpy.dot is buggy, and should not be used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24007)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:49 2014, SVN revision 24006:

Changed the reshaping of dw and dwH, since it is not dependent on experiment.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24006)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:41 2014, SVN revision 24005:

Fix for documentation in ns mmq 2site/sq/dq/zq/mq.

Now explains which dimension data should be in.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24005)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:40 2014, SVN revision 24004:

Fixed the use of higher dimensional data in mmq 2site sq dq zq.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24004)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:38 2014, SVN revision 24003:

Modified lib function for NS MMQ 2site, to have looping over spins and frequencies inside lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24003)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:36 2014, SVN revision 24002:

Moved the calculation of dw out of for loops for model ns mmq 2site.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24002)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 20:11:34 2014, SVN revision 24001:

Changed unit test of MMQ CR72 to pass.

dw needs to be of numpy structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24001)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 18:23:38 2014, SVN revision 24000:

Changed MMQ CR72 to use multi dimensional data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 24000)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 18:23:36 2014, SVN revision 23999:

Removed power to be parsed to MMQ CR72, since it is not used.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23999)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 18:23:35 2014, SVN revision 23998:

Removed number of points to be parsed to model MMQ CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23998)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:58:20 2014, SVN revision 23997:

Temporary removed check for dw = 0.0 in MMQ CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23997)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:58:17 2014, SVN revision 23996:

Removed looping over spin and frequencies for model MMD CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23996)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:58:15 2014, SVN revision 23995:

Moved the calculation of dw and dwH out of for loops for model MMQ CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23995)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:58:13 2014, SVN revision 23994:

Removed fatal print for python 3 in unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23994)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:58:11 2014, SVN revision 23993:

Restructured frqs_H to higher dimension in target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23993)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:05:38 2014, SVN revision 23992:

Implemented a frqs_squared calculation in the init of target function.

This is to speed up the calculations.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23992)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:42 2014, SVN revision 23991:

Fix for plotting, since the back_calc now can hold more datapoints that cpmg frequencies.

This is because the numpy array has been expanded to the maximum number of points.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23991)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:39 2014, SVN revision 23990:

Fix for unit test, where the dimension of points has to be one lower.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23990)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:37 2014, SVN revision 23989:

Various index fixes, after the data structures have been reordered.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23989)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:34 2014, SVN revision 23988:

Restructered all data structures into higher dimension in target function.

Fix for the input to the different models.
Restructured how to detect the number of offset and dispersion points.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23988)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:32 2014, SVN revision 23987:

Replaced the temporary structure self.cpmg_frqs_a to self.cpmg_frqs, which works for all target functions

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23987)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 17:01:30 2014, SVN revision 23986:

Replaced the temporary structure self.frqs_a to self.frqs, which works for all target functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23986)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 16 07:37:36 2014, comment #213:

The attached modified 'dot_speed2.py' script shows how the current lib.dispersion.ns_cpmg_2site_3d module at r23968 in the disp_spin_speed branch is ~3.5 times slower than what is possible. As with previous scripts, place this in the base relax directory (or change sys.path) and run it as 'python dot_speed2.py'.

The script shows that current way of calculating the dot products "dot(a*1, a*1, a)" is much slower than the first code with "a = dot(a, a)" (15.8 seconds verses 4.6 seconds).

It also shows, just as the previous script, that the "dot(a, a, a)" notation does not perform the inplace operation correctly and hence the printed out matrix is incorrect, despite being the fastest of all operations (3.8 seconds). And it also shows that the "dot(a, b, c)" notation is slower than the "c = dot(a, b)" notation?!? Numpy is clearly doing something very wrong there!

(file #21051, file #21052)

Edward d Auvergne <bugman>
Project Administrator
Sun Jun 15 20:59:16 2014, SVN revision 23968:

Inner product fix in model NS CPMG 2site 3D.

Fix for system tests:
F 1.34 s for Relax_disp.test_cpmg_synthetic_ns3d_to_b14
F 0.78 s for Relax_disp.test_cpmg_synthetic_ns3d_to_cr72
F 3.74 s for Relax_disp.test_cpmg_synthetic_ns3d_to_cr72_noise_cluster

The number of dotting with Mint, should corespond to the power.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23968)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 19:30:16 2014, comment #211:

The following timing script and log file demonstrate that the numpy.dot() out argument is not operating as it should be. Using the out argument should be faster, but this example shows at least for numpy 1.6.2 and 1.8.0 that it is slower! Therefore the only conclusion that I can make is that the numpy people have not implemented this efficiently and they do not use the fast BLAS/LAPACK inplace operations.

(file #21039, file #21040)

Edward d Auvergne <bugman>
Project Administrator
Sun Jun 15 14:41:00 2014, SVN revision 23967:

Last try to use the out argument.

In the last dotting loop, the out argument wont work, no matter what I do.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23967)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 14:27:07 2014, SVN revision 23966:

Implemented the dot method via blas.

This needs a array with one more axis.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23966)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 14:22:43 2014, SVN revision 23965:

Small fix for the dot method.

But the out argument does not work.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23965)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:57:33 2014, SVN revision 23964:

Implemented the BLAS method of dot product, which should be faster.

I cannot get the "out" argument to work.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23964)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:24 2014, SVN revision 23963:

Made the dot evolution structure faster for NS CPMG 2site 3D.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23963)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:22 2014, SVN revision 23962:

Removal of temporary printout.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23962)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:20 2014, SVN revision 23961:

Changed the target function of NS CPMG 2site STAR, to reflect the input to the function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23961)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:18 2014, SVN revision 23960:

Changed the lib function of NS CPMG 2site start, to get input of dw and r20a+r20b of higher dimensional type.

This is to move the main operations from the target function to the lib function, and
make the API code clean and consistent.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23960)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:16 2014, SVN revision 23959:

Changed the taget function for NS CPMG 2site 3D.

This reflects the new API layout.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23959)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:14 2014, SVN revision 23958:

Changed the unit test of NS CPMG 2site 3D, after the input to the function has changed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23958)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 13:15:11 2014, SVN revision 23957:

Moved the bulk operation of model CPMG 2site 3d into the lib file.

This is to keep the API clean.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23957)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 08:30:21 2014, comment #199:

The following python script, to be placed in the base relax directory, and the corresponding log file, demonstrate the speed differences of various dot product operations. This is to help make the numeric dispersion models faster.

The script tests 3 different operations:

1) Sequential dot products (a = dot(b, c); a = dot(a, d)).
2) Chained dot products (a = b.dot(c).dot(d)).
3) Using the out argument to avoid memory allocation and garbage collection (dot(b, c, a); dot(a, d, a)).

The timings are:

1) 3.71 s.
2) 4.05 s.
3) 1.99 s.

As option 1) is the implementation used in the relax trunk, clearly option 3 has the potential to significantly speed up the models.

(file #21021, file #21022)

Edward d Auvergne <bugman>
Project Administrator
Sun Jun 15 06:53:46 2014, SVN revision 23956:

Lowered the number of dot operations, by pre-preparing the evolution matrix another round.

The power is in system tests always even.

The trick to removing this for loop, would be to make a general multi dot function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23956)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:44 2014, SVN revision 23955:

Turned Mint vector into a 7,1 matrix, so dimensions fit with evolution matrix.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23955)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:42 2014, SVN revision 23954:

Lowered the number of dot iterations, by pre-prepare the dot matrix another round.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23954)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:40 2014, SVN revision 23953:

Wrote the essential dot matrix up to be initiated earlier.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23953)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:39 2014, SVN revision 23952:

Changed linked matrix/vector inner products into chained dot expressions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23952)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:36 2014, SVN revision 23951:

Change to the target function to the model ns cpmg 2site 3d to use the reduced input to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23951)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:35 2014, SVN revision 23950:

Fix for unit tests of model ns cpmg 2site 3d to the reduced input to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23950)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 15 06:53:32 2014, SVN revision 23949:

Methods to replace math domain errors in model ns_cpmg_2site_3d, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.
pB is now moved to be calculated inside. This makes the lib function simpler.
k_AB and k_BA is also now calculated here.
Magnetization vector is also now filled in lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23949)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 16:45:23 2014, SVN revision 23946:

Fix for system test Relax_disp.test_cpmg_synthetic_dx_map_points.

By just copying self.back_calc_a to self.back_calc, problem was solved.

In specific_analysis.relax_disp.optimisation in function back_calc_r2eff(), the
function gets the last values stores in the class function.

This is in:
class Disp_result_command(Result_command):
"""Class for processing the dispersion optimisation results.
With:
self.back_calc = back_calc

And back_calc_r2eff() have return model.back_calc

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23946)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:40 2014, SVN revision 23942:

Replaced target function for model ns_cpmg_2site_expanded, to use higher dimensional numpy array structures.

That makes the model much faster.

I cannot get system test: Relax_disp.test_cpmg_synthetic_dx_map_points
to pass.

-------
File "/Users/tlinnet/software/disp_spin_speed/test_suite/system_tests/relax_disp.py", line 1671, in test_cpmg_synthetic_dx_map_points
self.assertEqual(res_file[i], lines[i])
AssertionError: '0.76981 3.9169 0.41353 1\n' != '0.0098838 1.4654 18.661 1\n'
-------

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23942)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:38 2014, SVN revision 23941:

Fix for sending in r20 and dw as numpy array in unit tests of ns_cpmg_2site_expanded.

This is after using masks as replacement.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23941)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:37 2014, SVN revision 23940:

Methods to replace math domain errors in model ns_cpmg_2site_expanded, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.
pB is now moved to be calculated inside. This makes the lib function simpler.
k_AB and k_BA is also now calculated here.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23940)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:35 2014, SVN revision 23939:

Replaced target function for model IT99, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23939)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:34 2014, SVN revision 23938:

Fix for sending in r20 and dw as numpy array in unit tests of IT99.

This is after using masks as replacement.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23938)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 15:31:31 2014, SVN revision 23937:

Methods to replace math domain errors in model IT99, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.
pB is now moved to be calculated inside. This makes the lib function simpler.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23937)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:08:29 2014, SVN revision 23934:

1 digit decrease in parameter check in systemtest: Relax_disp.test_hansen_cpmg_data_to_lm63.

It is unknown, why this has occured.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23934)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:03:22 2014, SVN revision 23933:

Fix for sending in r20 and phi_ex as numpy array in unit tests of LM63.

This is after using masks as replacement.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23933)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:03:21 2014, SVN revision 23932:

Fix for replacement of values with mask, when phi_ex is zero.

This can be spin specific.
Systemtest: Relax_disp.test_hansen_cpmg_data_to_lm63 starts to fail:

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23932)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:03:19 2014, SVN revision 23931:

Replaced target function for model LM63, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23931)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:03:18 2014, SVN revision 23930:

Fix for sending in number of points in unit tests of model LM63.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23930)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 11:03:16 2014, SVN revision 23929:

Methods to replace math domain errors in model LM63, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23929)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 10:16:53 2014, SVN revision 23928:

Replaced target function for model MP05, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23928)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 10:16:51 2014, SVN revision 23927:

Fix for sending in dw as numpy array in unit tests of model MP05.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23927)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 10:16:50 2014, SVN revision 23926:

Methods to replace math domain errors in model MP05, has been replaced with numpy masks.

number of points has been removed, as the masks utility replaces this.
Calculataion of pB, has been moved to lib function for simplicity.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23926)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:55:48 2014, SVN revision 23925:

Removed number of points, to be send to lib function of model M61b.

Number of points are not used anymore.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23925)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:55:46 2014, SVN revision 23924:

Removed number of points, to be send to lib function of model M61.

Number of points are not used anymore.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23924)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:55:44 2014, SVN revision 23923:

Removed number of points, to be send to lib function of model DPL94.

Number of points are not used anymore.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23923)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:47:45 2014, SVN revision 23922:

Removed number of points, to be send to lib function of model CR72.

Number of points are not used anymore.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23922)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:47:42 2014, SVN revision 23921:

Removed number of points, pB, to be send to lib function of model TAP03.

Number of points are not used anymore.
pB is calculated in lib function insted.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23921)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:47:40 2014, SVN revision 23920:

Fix for sending number of points in target function of TSMK01.

This was removed in lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23920)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:47:39 2014, SVN revision 23919:

Removed number of points, pB, k_AB, k_BA to be send to lib function of model B14.

Number of points are not used anymore.
pB is calculated in lib function insted.
k_AB, and k_BA are calculated in lib functions instead.

Fixed in target function.
Fixed in lib function.
Fixed in corresponding unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23919)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:21:16 2014, SVN revision 23918:

Removed number of points and pB to send to lib function of model TP02.

pB is calculated in lib function insted.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23918)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:17:54 2014, SVN revision 23917:

Removed number of points and pB to be send to lib function of model TP02.

Number of points are not used anymore.
pB is calculated in lib function insted.

Also removed in corresponding unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23917)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:17:52 2014, SVN revision 23916:

Removed number of points to be send to lib function of model TTSMFK01.

These are not used anymore.
Also removed in corresponding unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23916)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:06:19 2014, SVN revision 23915:

Replaced target function for model M61b, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23915)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:06:17 2014, SVN revision 23914:

Fix for sending in r1rho_prime and dw as numpy array in unit tests of model M61b.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23914)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 09:06:16 2014, SVN revision 23913:

Methods to replace math domain errors in model M61b, has been replaced with numpy masks.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23913)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 08:33:47 2014, SVN revision 23912:

Replaced target function for model M61, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23912)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 08:33:45 2014, SVN revision 23911:

Fix for sending in r1rho_prime and phi_ex_scaled as numpy array in unit tests of model M61.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23911)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 08:33:43 2014, SVN revision 23910:

Methods to replace math domain errors in model M61, has been replaced with numpy masks.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23910)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 08:10:07 2014, SVN revision 23909:

Removed an unnecessary frq_struct in init of target function.

frqs can just be expanded, and back_calc is cleaned afterwards with disp_struct.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23909)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 08:10:05 2014, SVN revision 23908:

Made the NOREX model af faster numpy array calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23908)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 06:21:49 2014, SVN revision 23907:

Fix for adding model TP02 to part of init class to initialize preparation of higher dimension numpy structures.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23907)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 06:18:28 2014, SVN revision 23906:

Replaced target function for model TP02, to use higher dimensional numpy array structures.

That makes the model much faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23906)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 06:18:26 2014, SVN revision 23905:

Fix for sending in dw as numpy array in unit tests of model TP02.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23905)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 06:18:24 2014, SVN revision 23904:

Methods to replace math domain errors in model TP02, has been replaced with numpy masks.

Documentation is also fixed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23904)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 05:26:14 2014, SVN revision 23903:

Added model MODEL_TSMFK01 also get self.tau_cpmg calculated in init part.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23903)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 05:21:05 2014, SVN revision 23902:

Reordered the initialization structure of the special numpy arrays.

This was done in the init part of the target function of relaxation dispersion.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23902)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 05:21:03 2014, SVN revision 23901:

Replaced the loop structure in target function of TAP03 with numpy arrays.

This makes the model faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23901)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 05:21:00 2014, SVN revision 23900:

Made dw in unit tests of TAP03 be of numpy array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23900)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 13 05:20:58 2014, SVN revision 23899:

Converted TAP03 model to use multi dimensional numpy arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23899)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 21:11:38 2014, SVN revision 23898:

Documentation fix for description of input arrays to lib functions.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23898)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:35:10 2014, SVN revision 23897:

Moved the expansion of frqs out of for loops.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23897)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:35:08 2014, SVN revision 23896:

For inv_relax_times, expanded one axis, and tiled up to NR spins, before reshaping and blowing up to full structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23896)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:35:07 2014, SVN revision 23895:

Moved the multi dimensional expansion of inv_relax_times out of for loop.

This can be done for all structures, which does not have missing points.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23895)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:35:05 2014, SVN revision 23894:

Moved the packing of errors and values out of for loop in the _init_ class of target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23894)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:08:10 2014, SVN revision 23893:

Moved the expansion of the R1 structure out of the for loops.

This is to speed-up the _init_ of the class of the target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23893)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:08:08 2014, SVN revision 23892:

Fix for forgetting to multiply frqs to power 2.

This was found by inspecting all print out before and after implementation.

New implementation of DPL94 now passes all system and unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23892)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:08:06 2014, SVN revision 23891:

Trying to move some of the structures into its own part.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23891)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:08:04 2014, SVN revision 23890:

First try to speed up model DPL94.

This has not succeded, since systemtest: Relax_disp.test_dpl94_data_to_dpl94 sti?\195?\131ll fails.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23890)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:08:01 2014, SVN revision 23889:

Fix for import missing error in lib function dpl94.

Needed to import numpy any() function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23889)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 18:07:59 2014, SVN revision 23888:

Replacing math domain checking in model DPL94, with masked array replacement.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23888)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:56:12 2014, SVN revision 23880:

Large increase in speed for model TSMFK01 by changing target functions to use multidimensional numpy arrays in calculation.

This is done by restructuring data into multidimensional arrays of dimension [NE][NS][NM][NO][ND], which are
number of spins, number of magnetic field strength, number of offsets, maximum number of dispersion point.

The speed comes from using numpy ufunc operations.

The new version is 2.4X as fast per spin calculation, and 54X as fast for clustered analysis.

The different in timings for 3 spectrometer frequencies, calculated for 1 spin or 100 clustered spins with 1000 iterations are:


VERSION 3.2.2


1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.262 0.262 :1()
100 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 25.391 25.391 :1()


New version
---

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.111 0.111 :1()
100 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.468 0.468 :1()

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23880)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:19:04 2014, SVN revision 23877:

Made unit tests for model TSMFK01 send in R20A and dw as a numpy array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23877)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:19:02 2014, SVN revision 23876:

Modified lib function for model TSMFK01 to accept dw_orig as input and replaced functions to find math domain errors into maske replacements.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23876)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:19:00 2014, SVN revision 23875:

Modified target function for model TSMFK01, to send in dw as original parameter.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23875)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:18:59 2014, SVN revision 23874:

Modified profiling script to be used for model TSMFK01.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23874)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 11:18:57 2014, SVN revision 23873:

Indention fix in cr72.py and b14.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23873)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:31:42 2014, SVN revision 23872:

Copied profiling script for CR72 model to TSMFK01 model.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23872)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:23:23 2014, SVN revision 23871:

Changed profiling script to send dw as original parameters to the lib function B14.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23871)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:23:22 2014, SVN revision 23870:

Changed unit-tests, to send in the original dw_orig to the testing of the lib function B14.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23870)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:23:20 2014, SVN revision 23869:

Made the lib function of B14 accept dw of the original array.

This is for speed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23869)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:23:19 2014, SVN revision 23868:

Changed target function for model B14.

To B14 now also send the input of the original parameters dw.
dw is tested for zero, to return flat lines.
It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

This is for speed-up.

These small tricks are expected to give 5-10 pct. speeed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23868)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:13:03 2014, SVN revision 23867:

Changed profiling script to send R20A, R20B and dw, as original parameters to the lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23867)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:13:02 2014, SVN revision 23866:

Changed unit-tests, to send in the original R20A, R20B and dw_orig to the testing of the lib function CR72.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23866)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:13:00 2014, SVN revision 23865:

Made the lib function of CR72 accept the R20A, R20B and dw of the original array.

This is for speed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23865)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Thu Jun 12 10:12:58 2014, SVN revision 23864:

Changed target function for model CR72.

To CR72 is now also the input of the parameters of R20A, R20B and dw.
dw is tested for zero, to return flat lines.
It is faster to search in the smaller numpy array, than the 5 dimensional dw array.

This is for speed-up.

R20A and R20B is also subtracted, to see if the full model should be used.
In the same way, it is faster to subtract the smaller array.

These small tricks are expected to give 5-10 pct. speeed-up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23864)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 18:47:29 2014, SVN revision 23855:

Removed use of "asarray", since the variables are already arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23855)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 18:43:48 2014, SVN revision 23854:

Comment fix for finding when E0 is above 700 in lib function of B14.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23854)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 18:43:45 2014, SVN revision 23853:

Added additional tests in b14, when math errors can occur.

This is very easy with a conditional masked search in arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23853)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 17:37:46 2014, SVN revision 23852:

Changed unit test for B14 to match numpy input requirement.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23852)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 17:37:44 2014, SVN revision 23851:

Changed the target function to handle the B14 model for faster numpy computation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23851)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 17:37:42 2014, SVN revision 23850:

Reverted the use of the mask "mask_set_blank".

It did not work, and many system tests started failing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23850)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 17:37:40 2014, SVN revision 23849:

Modified model B14 lib file to faster numpy multidimensional mode.

The implementations comes almost directly from the CR72 model file.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23849)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 17:37:38 2014, SVN revision 23848:

Modified profiling script for the B14 model.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23848)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 15:40:47 2014, comment #113:

This is a clean up and faster version of the patch at http://thread.gmane.org/gmane.science.nmr.relax.devel/6183/focus=6194.

(file #20984)

Edward d Auvergne <bugman>
Project Administrator
Wed Jun 11 15:15:04 2014, SVN revision 23847:

Copied profiling script for CR72 to B14 model.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23847)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 15:14:10 2014, SVN revision 23846:

Reverted r23845-r23844 as this was using a wrong commit message.

The command used was:
svn merge -r23845:23844 .

........
r23845 | tlinnet | 2014-06-11 17:09:23 +0200 (Wed, 11 Jun 2014) | 14 lines

Merged revisions 23743 via svnmerge from
svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

........
r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

Updated profiling text for CR72 model.

Now it is tested for 3 fields.

This is related to:
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........
........

(Browse SVN revision 23846)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 15:09:23 2014, SVN revision 23845:

Merged revisions 23743 via svnmerge from
svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

........
r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

Updated profiling text for CR72 model.

Now it is tested for 3 fields.

This is related to:
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........

(Browse SVN revision 23845)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 14:43:17 2014, SVN revision 23844:

Replaced the multiplcation with the disp structure, to a replacement with a mask.

My timings are varying at my computer, so results are within the very same timing.

But for reading the code, having two masks, is essential better.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23844)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 14:19:12 2014, SVN revision 23843:

Moved the mask which finds where to replace values into the _init_ function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23843)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 14:19:10 2014, SVN revision 23842:

Removed an the creation of a unnessary structure bu using numpy multiply.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23842)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 13:25:37 2014, SVN revision 23841:

Changes too unit tests, so data is sent to target function in numpy array format.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23841)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 13:25:34 2014, SVN revision 23840:

Made the lib function into a pure numpy array calculation.

This requires, that r20a, r20b and dw has same dimension as the dispersion points.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23840)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 13:25:33 2014, SVN revision 23839:

Replaced the temporary variable R2eff with back_calc, and used numpy subtract to speed up.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23839)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 13:09:01 2014, SVN revision 23838:

Removed the slow allclose() function to test if R20A and R20B is equal.

It is MUCH faster to just subtract and check sum is not 0.0.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23838)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 12:55:34 2014, SVN revision 23837:

Removed the masked replacement if fact is less than 1.0.

This is very strange, but otherwise system test:
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis

would fail.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23837)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 12:55:33 2014, SVN revision 23836:

Clean up of comment lines.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23836)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 12:54:38 2014, SVN revision 23834:

Implemented masked replacement if fact is less that 1.0.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23834)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 12:05:37 2014, SVN revision 23833:

Bugfix for testing if kex is zero.

It was tested if kex was equal 1.0.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23833)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 12:05:35 2014, SVN revision 23832:

Changed the catching when dw is zero, to use masked array.

Implemented backwards compability with unit tests.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23832)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:22 2014, SVN revision 23831:

Made the lib/cr72.py to a numpy multi dimensional numpy array calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23831)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:20 2014, SVN revision 23830:

Restructured the calculation of R20A and R20B to the most efficient way.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23830)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:18 2014, SVN revision 23829:

Renamed dw temporary structure to generic structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23829)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:16 2014, SVN revision 23828:

Implemented the fastest way to calculate the dw structure.

This uses the numpy ufunc multiply.outer function to create the outer array, and then multiply
with the frqs_structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23828)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:15 2014, SVN revision 23827:

Yet another try to implement a fast dw structure method.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23827)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 11:12:12 2014, SVN revision 23826:

Simplified calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23826)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:46:44 2014, SVN revision 23825:

First try to speed-up the old dw structure calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23825)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:46:42 2014, SVN revision 23824:

Inserted temporary method to switch for profiling.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23824)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:16:27 2014, SVN revision 23823:

Started using the new way of constructing dw.

This is for running system tests.

Note, somewhere in the dw array, the frequencies will be different between the two implementations.
But apparently, this does not matter.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23823)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:08:11 2014, SVN revision 23822:

Clearing the dw_struct before calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23822)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:08:08 2014, SVN revision 23821:

Reordered how the structures dw init structures are created.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23821)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:08:06 2014, SVN revision 23820:

Added the ei index, when creating the first dw_mask.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23820)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:08:05 2014, SVN revision 23819:

Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND).

These numbers represents the maximum number of dimensions, instead of index.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23819)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 08:08:03 2014, SVN revision 23818:

Started converting profiling script to DPL94.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23818)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 06:46:00 2014, SVN revision 23817:

Copied profiling script for CPMG model CR72 to R1rho DPL94 model.

The framework of the script will be the same, but the data a little different.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23817)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 06:40:40 2014, SVN revision 23816:

Comment out the sys.exit(), which would make the code fail for wrong calculation of dw.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23816)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 06:40:39 2014, SVN revision 23815:

Switched to use self.ei, self.si, self.mi, self.oi, self.di.

This is for better reading of code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23815)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 06:28:28 2014, SVN revision 23814:

Initial try to reshape dw faster.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23814)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Wed Jun 11 06:28:26 2014, SVN revision 23813:

Made iinitialisation structures for dw.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23813)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 19:06:12 2014, SVN revision 23806:

Removed un-used self structures in __init__of class.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23806)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 18:58:25 2014, SVN revision 23805:

Replaced self.spins_a with self.disp_struct.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23805)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 18:58:22 2014, SVN revision 23804:

Replace np.tile with tile.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23804)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 18:58:20 2014, SVN revision 23803:

Code clean-up in lib function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23803)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 18:58:16 2014, SVN revision 23802:

Made special ei, si, mi, and oi numpy structure array.

This is for rapid speed-up of numpy array creation in target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23802)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 17:11:08 2014, SVN revision 23801:

Renamed chi2_ND to chi2_rankN.

This is a better name for representing multiple axis calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23801)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 17:06:45 2014, comment #72:

Timing now
Tue Jun 10 19:04:34 2014 /tmp/tmpUgjuF0

143893 function calls (143880 primitive calls) in 0.346 seconds

Ordered by: cumulative time

ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.346 0.346 <string>:1(<module>)
1 0.001 0.001 0.346 0.346 profiling_cr72.py:427(single)
1000 0.001 0.000 0.336 0.000 profiling_cr72.py:413(calc)
1000 0.008 0.000 0.335 0.000 relax_disp.py:992(func_CR72_full)
1000 0.024 0.000 0.323 0.000 relax_disp.py:526(calc_CR72_chi2)
1003 0.088 0.000 0.234 0.000 cr72.py:101(r2eff_CR72)
2003 0.034 0.000 0.119 0.000 numeric.py:2056(allclose)
10046 0.051 0.000 0.051 0.000 {method 'reduce' of 'numpy.ufunc' objects}
3000 0.028 0.000 0.046 0.000 shape_base.py:761(tile)

ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 1.513 1.513 <string>:1(<module>)
1 0.001 0.001 1.513 1.513 profiling_cr72.py:449(cluster)
1000 0.001 0.000 1.439 0.001 profiling_cr72.py:413(calc)
1000 0.010 0.000 1.438 0.001 relax_disp.py:992(func_CR72_full)
1000 0.052 0.000 1.420 0.001 relax_disp.py:526(calc_CR72_chi2)
1300 0.926 0.001 1.201 0.001 cr72.py:101(r2eff_CR72)
2300 0.100 0.000 0.222 0.000 numeric.py:2056(allclose)
3000 0.033 0.000 0.156 0.000 shape_base.py:761(tile)
4000 0.108 0.000 0.108 0.000 {method 'repeat' of 'numpy.ndarray' objects}
11828 0.085 0.000 0.085 0.000 {method 'reduce' of 'numpy.ufunc' objects}
1 0.000 0.000 0.073 0.073 profiling_cr72.py:106(_init_)
1 0.012 0.012 0.057 0.057 profiling_cr72.py:173(return_r2eff_arrays)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:54:31 2014, SVN revision 23800:

Called the newly created chi2 function to calculate for multi dimensional numpy arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23800)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:54:28 2014, SVN revision 23799:

Added a multi-dimensional numpy array chi2 value calculation function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23799)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:11 2014, SVN revision 23798:

Increased the kex speed to 1e7 in clustered unit tests cases.

This is to demonstrate where there will be no excange.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23798)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:09 2014, SVN revision 23797:

Important fix for replacing values if eta_pos > 700 is violated.

This fixes systemtest: Relax_disp.test_sod1wt_t25_to_cr72, which failed after making kex to a numpy float.

The trick is to make a numpy mask which stores the position where to replace the values.
Then replace the values just before last return.

This makes sure, that not all values are changed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23797)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:07 2014, SVN revision 23796:

Modified unit tests, so kex is sent to target function as float instead of array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23796)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:05 2014, SVN revision 23795:

Fix for testing of kex in lib function, when kex is just float.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23795)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:03 2014, SVN revision 23794:

Removed the multi dimensional structure of kex.

kex is not multi-dimensional, and can just be multiplied with numpy arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23794)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:41:01 2014, SVN revision 23793:

Modified unit tests, so pA is sent to target function as float instead of array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23793)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:40:59 2014, SVN revision 23792:

Fix for testing of pA in lib function, when pA is just float.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23792)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 16:40:56 2014, SVN revision 23791:

Removed the multi dimensional structure of pA.

pA is not multi-dimensional, and can just be multiplied with numpy arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23791)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 14:51:35 2014, SVN revision 23789:

Yet another small improvement for the profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23789)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 14:51:33 2014, SVN revision 23788:

Implemented a masked array search for where "missing" array is equal 1.

This makes it possible to replace all values with this mask, from the value array.

This eliminates the last loops over the missing values.

It took over 4 hours to figure out, that the mask should be called with mask.mask,
to return the same fulls structure,

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23788)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 14:51:31 2014, SVN revision 23787:

Removed line "# -*- coding: utf-8 -*-" which was automatically inserted by new python code editor.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23787)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Tue Jun 10 07:45:33 2014, SVN revision 23776:

Merged revisions 23743 via svnmerge from
svn+ssh://bugman@svn.gna.org/svn/relax/trunk

........
r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

Updated profiling text for CR72 model.

Now it is tested for 3 fields.

This is related to:
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........

(Browse SVN revision 23776)

Edward d Auvergne <bugman>
Project Administrator
Mon Jun 9 23:21:14 2014, SVN revision 23770:

Made the logic and comments much clearer about how to reshape, expand axis, and tile numpy arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23770)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:02:56 2014, comment #56:

A 10x speed up on clustered analysis.

Checked on:
Hardware information:
Machine: x86_64
Processor: x86_64
Processor name: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
Endianness: little
Total RAM size: 3705 Mb
Total swap size: 3839 Mb

Operating system information:
System: Linux
Release: 2.6.32-431.17.1.el6.x86_64
Version: #1 SMP Fri Apr 11 17:27:00 EDT 2014
GNU/Linux version: Red Hat Enterprise Linux Client 6.5 Santiago
Distribution: redhat 6.5 Santiago
Full platform string: Linux-2.6.32-431.17.1.el6.x86_64-x86_64-with-redhat-6.5-Santiago

Timing for:
3 fields
('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58.]))
('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58., 62., 66., 70., 74., 78.]))
('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))

iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

##############################################################################################
ncalls tottime percall cumtime percall filename:lineno(function)

############################
For disp_spin_speed r23759 #
############################
1 spin:
1 0.000 0.000 0.496 0.496 <string>:1(<module>)
1 0.001 0.001 0.496 0.496 profiling_cr72.py:419(single)
1000 0.001 0.000 0.486 0.000 profiling_cr72.py:405(calc)
1000 0.009 0.000 0.485 0.000 relax_disp.py:995(func_CR72_full)
1000 0.038 0.000 0.472 0.000 relax_disp.py:524(calc_CR72_chi2)
1003 0.097 0.000 0.374 0.000 cr72.py:101(r2eff_CR72)
4003 0.071 0.000 0.242 0.000 numeric.py:2056(allclose)
16046 0.081 0.000 0.081 0.000 {method 'reduce' of 'numpy.ufunc' objects}
8015 0.009 0.000 0.070 0.000 fromnumeric.py:1762(any)

100 spins:
1 0.000 0.000 2.084 2.084 <string>:1(<module>)
1 0.002 0.002 2.084 2.084 profiling_cr72.py:441(cluster)
1000 0.002 0.000 2.005 0.002 profiling_cr72.py:405(calc)
1000 0.034 0.000 2.003 0.002 relax_disp.py:995(func_CR72_full)
1000 0.141 0.000 1.960 0.002 relax_disp.py:524(calc_CR72_chi2)
1300 1.100 0.001 1.676 0.001 cr72.py:101(r2eff_CR72)
4300 0.245 0.000 0.507 0.000 numeric.py:2056(allclose)
3000 0.037 0.000 0.164 0.000 shape_base.py:761(tile)
17828 0.126 0.000 0.126 0.000 {method 'reduce' of 'numpy.ufunc' objects}
4000 0.110 0.000 0.110 0.000 {method 'repeat' of 'numpy.ndarray' objects}
8609 0.011 0.000 0.086 0.000 fromnumeric.py:1762(any)

############################
For trunk r23753 #
############################
1 spin:
1 0.000 0.000 0.347 0.347 <string>:1(<module>)
1 0.001 0.001 0.347 0.347 profiling_cr72.py:419(single)
1000 0.001 0.000 0.339 0.000 profiling_cr72.py:405(calc)
1000 0.008 0.000 0.338 0.000 relax_disp.py:908(func_CR72_full)
1000 0.032 0.000 0.326 0.000 relax_disp.py:456(calc_CR72_chi2)
3003 0.176 0.000 0.243 0.000 cr72.py:100(r2eff_CR72)
12036 0.060 0.000 0.060 0.000 {method 'reduce' of 'numpy.ufunc' objects}
3000 0.025 0.000 0.049 0.000 chi2.py:32(chi2)
6003 0.008 0.000 0.048 0.000 fromnumeric.py:1621(sum)

100 spins:
1 0.000 0.000 32.247 32.247 <string>:1(<module>)
1 0.002 0.002 32.247 32.247 profiling_cr72.py:441(cluster)
1000 0.002 0.000 32.196 0.032 profiling_cr72.py:405(calc)
1000 0.012 0.000 32.194 0.032 relax_disp.py:908(func_CR72_full)
1000 3.291 0.003 32.171 0.032 relax_disp.py:456(calc_CR72_chi2)
300300 17.361 0.000 23.819 0.000 cr72.py:100(r2eff_CR72)
1200927 5.767 0.000 5.767 0.000 {method 'reduce' of 'numpy.ufunc' objects}
300000 2.512 0.000 4.803 0.000 chi2.py:32(chi2)
600300 0.750 0.000 4.636 0.000 fromnumeric.py:1621(sum)
600300 0.590 0.000 3.410 0.000 _methods.py:23(_sum)
300300 0.290 0.000 2.174 0.000 fromnumeric.py:2048(amax)
300300 0.274 0.000 1.939 0.000 fromnumeric.py:2132(amin)

----------

Python information:
Architecture: 64bit ELF
Python version: 2.7.6
Python branch:
Python build: default, Apr 11 2014 13:46:04
Python compiler: GCC 4.1.2 20080704 (Red Hat 4.1.2-52)
Libc version: glibc 2.2.5
Python implementation: CPython
Python revision:
Python executable: /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/bin/python
Python flags: sys.flags(debug=0, py3k_warning=0, division_warning=0, division_new=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, tabcheck=0, verbose=0, unicode=0, bytes_warning=0, hash_randomization=0)
Python float info: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Python module path: ['/sbinlab2/tlinnet/software/NMR-relax/disp_spin_speed', '/sbinlab2/software/CCP4-Linux_6.3.0/ccp4-6.3.0/share/python', '/sbinlab2/tlinnet', '/sbinlab2/software/x64/haddock2.1', '/sbinlab2/software/x64/lib64/python2.6/site-packages', '/sbinlab2/software/x64/ccpnmr/ccpnmr2.3/python', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python27.zip', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/plat-linux2', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/lib-tk', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/lib-old', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/lib-dynload', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/PIL', '/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/site-packages']

Python packages and modules (most are optional):

Name Installed Version Path
minfx True 1.0.6 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/minfx
bmrblib True 1.0.3 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/bmrblib
numpy True 1.8.0 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/numpy
scipy True 0.13.3 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/scipy
wxPython True 2.8.10.1 (gtk2-unicode) /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/wx
matplotlib True 1.3.1 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib
mpi4py True 1.2.2 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/mpi4py
epydoc True 3.0.1 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/epydoc
optparse True 1.5.3 /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/optparse.pyc
readline True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/lib/python2.7/site-packages/readline.pyc
profile True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/profile.pyc
bz2 True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/lib-dynload/bz2.so
gzip True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/gzip.pyc
io True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/io.pyc
xml True 0.8.4 (internal) /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/xml/__init__.pyc
xml.dom.minidom True /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/xml/dom/minidom.pyc

relax information:
Version: repository checkout r23759 svn+ssh://svn.gna.org/svn/relax/branches/disp_spin_speed
Processor fabric: Uni-processor.

relax C modules:

Module Compiled File type Path
target_functions.relax_fit True ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped /sbinlab2/tlinnet/software/NMR-relax/disp_spin_speed/target_functions/relax_fit.so

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:02:06 2014, SVN revision 23769:

Restored profiling script to normal.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23769)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:02:04 2014, SVN revision 23768:

Needed to increase the relative tolerance when testing if pA array is 1.

Now system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis passes.

Also added some comments lines, to prepare for mask replace of values.
For example if only some of etapos values should be replaced.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23768)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:02:03 2014, SVN revision 23767:

Very important fix, for only replacing part of data array which have Nan values.

Before, all values were replaced, which was wrong.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23767)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:02:01 2014, SVN revision 23766:

Fixed that arrays are correctly initiated with one or zero values.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23766)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:59 2014, SVN revision 23765:

Small edit to profiling script, to help bug finding.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23765)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:57 2014, SVN revision 23764:

Made the back_calc array be initiated as copy of the values array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23764)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:55 2014, SVN revision 23763:

Reordered arrays for beauty of code.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23763)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:53 2014, SVN revision 23762:

Removed all looping over spin and spectrometer frequency.

This is the last loop!
Wuhu.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23762)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:52 2014, SVN revision 23761:

Removed dw_frq_a numpy array, as it was not necessary.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23761)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 23:01:49 2014, SVN revision 23760:

Moved the calculation of pA and kex out off all loopes.

This was done by having two special 1/0 spin structure arrays.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23760)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 17:46:25 2014, SVN revision 23758:

Moved the calculation of dw_frq out of spin and spectrometer loop.

This is done by having a special 1/0 spin numpy array, which turns on or off the values in the numpy array multiplication.

The multiplication needs to first axis expand dw, and then tile the arrays according to the numpy structure.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23758)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 17:46:23 2014, SVN revision 23757:

Lowered the number of iterations to the profiling scripts.

This is to use the profiling script as bug finder.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23757)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 17:46:21 2014, SVN revision 23756:

Small fix for the indicies to the errors and values numpy array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23756)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 17:46:19 2014, SVN revision 23755:

Added a self.frqs_a as a multidimensional numpy array.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23755)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Mon Jun 9 17:46:17 2014, SVN revision 23754:

Made copies of numpy arrays instead of creating from new.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23754)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 22:49:18 2014, SVN revision 23752:

Removed unused import of numpy.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23752)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 22:49:16 2014, SVN revision 23751:

Changed all calls to numpy np.X functions to just the numpy function in lib/dispersion/cr72.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23751)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 22:49:14 2014, SVN revision 23750:

Removed unused import of numpy.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23750)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 22:46:58 2014, comment #37:

10000 iterations
3 frq

BRANCH
1 spin
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 6.718 6.718 <string>:1(<module>)
1 0.011 0.011 6.718 6.718 pf:419(single)
10000 0.024 0.000 6.700 0.001 pf:405(calc)
10000 0.087 0.000 6.676 0.001 relax_disp.py:979(func_CR72_full)
10000 1.021 0.000 6.531 0.001 relax_disp.py:507(calc_CR72_chi2)
10003 1.582 0.000 3.633 0.000 cr72.py:101(r2eff_CR72)
230029 1.873 0.000 1.873 0.000 {numpy.core.multiarray.array}
40003 1.189 0.000 1.818 0.000 numeric.py:1862(allclose)
80006 0.064 0.000 0.379 0.000 fromnumeric.py:1579(all)

100 spin
1 0.000 0.000 196.274 196.274 <string>:1(<module>)
1 0.022 0.022 196.274 196.274 pf:441(cluster)
10000 0.038 0.000 196.126 0.020 pf:405(calc)
10000 0.134 0.000 196.088 0.020 relax_disp.py:979(func_CR72_full)
10000 65.992 0.007 195.814 0.020 relax_disp.py:507(calc_CR72_chi2)
9142108 110.027 0.000 110.027 0.000 {numpy.core.multiarray.array}
10300 12.925 0.001 19.758 0.002 cr72.py:101(r2eff_CR72)
40300 4.861 0.000 6.205 0.000 numeric.py:1862(allclose)
80600 0.086 0.000 0.834 0.000 fromnumeric.py:1579(all)

TRUNK
1 spin
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 6.148 6.148 <string>:1(<module>)
1 0.011 0.011 6.148 6.148 pf:419(single)
10000 0.026 0.000 6.131 0.001 pf:405(calc)
10000 0.084 0.000 6.105 0.001 relax_disp.py:908(func_CR72_full)
10000 0.584 0.000 5.957 0.001 relax_disp.py:456(calc_CR72_chi2)
30003 4.226 0.000 4.703 0.000 cr72.py:100(r2eff_CR72)
30000 0.460 0.000 0.625 0.000 chi2.py:32(chi2)
60003 0.076 0.000 0.332 0.000 fromnumeric.py:1379(sum)
60003 0.213 0.000 0.213 0.000 {method 'sum' of 'numpy.ndarray' objects}
30003 0.029 0.000 0.164 0.000 fromnumeric.py:1774(amax)
30003 0.026 0.000 0.145 0.000 fromnumeric.py:1836(amin)

100 spin
1 0.000 0.000 555.044 555.044 <string>:1(<module>)
1 0.019 0.019 555.044 555.044 pf:441(cluster)
10000 0.037 0.000 554.929 0.055 pf:405(calc)
10000 0.111 0.000 554.892 0.055 relax_disp.py:908(func_CR72_full)
10000 53.336 0.005 554.643 0.055 relax_disp.py:456(calc_CR72_chi2)
3000300 394.852 0.000 438.738 0.000 cr72.py:100(r2eff_CR72)
3000000 43.273 0.000 58.745 0.000 chi2.py:32(chi2)
6000300 7.096 0.000 30.915 0.000 fromnumeric.py:1379(sum)
6000300 19.794 0.000 19.794 0.000 {method 'sum' of 'numpy.ndarray' objects}

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 22:10:00 2014, SVN revision 23749:

Changed all calls to numpy np.X functions to just the numpy function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

Timing is now showing, 17% loss per single spin, but but 277 % gain on 100 spin.
3 fields, 1000 iterations.
1 spin
1 0.000 0.000 0.677 0.677 :1()
1 0.001 0.001 0.677 0.677 pf:419(single)
1000 0.002 0.000 0.671 0.001 pf:405(calc)
1000 0.009 0.000 0.669 0.001 relax_disp.py:979(func_CR72_full)
1000 0.102 0.000 0.655 0.001 relax_disp.py:507(calc_CR72_chi2)
1003 0.160 0.000 0.365 0.000 cr72.py:101(r2eff_CR72)
23029 0.188 0.000 0.188 0.000 {numpy.core.multiarray.array}
4003 0.119 0.000 0.182 0.000 numeric.py:1862(allclose)

100 spin
1 0.000 0.000 19.783 19.783 :1()
1 0.002 0.002 19.783 19.783 pf:441(cluster)
1000 0.004 0.000 19.665 0.020 pf:405(calc)
1000 0.013 0.000 19.661 0.020 relax_disp.py:979(func_CR72_full)
1000 6.541 0.007 19.634 0.020 relax_disp.py:507(calc_CR72_chi2)
916108 11.127 0.000 11.127 0.000 {numpy.core.multiarray.array}
1300 1.325 0.001 2.026 0.002 cr72.py:101(r2eff_CR72)
4300 0.495 0.000 0.634 0.000 numeric.py:1862(allclose)

(Browse SVN revision 23749)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 21:56:36 2014, SVN revision 23748:

Just a tiny little more speed, by removing temporary storage of chi2 calculation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23748)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 21:54:41 2014, SVN revision 23747:

Moved the data filling of special numpy array errors and values, to initialization of Dispersion class.

These values does not change, and can safely be stored outside.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23747)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 21:46:42 2014, comment #33:

Timing is now

1 0.000 0.000 21.080 21.080 <string>:1(<module>)
1 0.002 0.002 21.080 21.080 pf:441(cluster)
1000 0.003 0.000 20.970 0.021 pf:405(calc)
1000 0.012 0.000 20.966 0.021 relax_disp.py:986(func_CR72_full)
1000 8.282 0.008 20.942 0.021 relax_disp.py:503(calc_CR72_chi2)
916108 10.756 0.000 10.756 0.000 {numpy.core.multiarray.array}
1300 1.284 0.001 1.960 0.002 cr72.py:101(r2eff_CR72)

from

1 0.000 0.000 29.834 29.834 <string>:1(<module>)
1 0.003 0.003 29.834 29.834 pf:441(cluster)
1000 0.003 0.000 29.712 0.030 pf:405(calc)
1000 0.012 0.000 29.709 0.030 relax_disp.py:981(func_CR72_full)
1000 9.752 0.010 29.682 0.030 relax_disp.py:503(calc_CR72_chi2)
1510108 17.942 0.000 17.942 0.000 {numpy.core.multiarray.array}
1300 1.300 0.001 1.990 0.002 cr72.py:101(r2eff_CR72)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 21:44:46 2014, SVN revision 23746:

Changed all the creation of special numpy arrays to be of float64 type.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23746)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 21:44:44 2014, SVN revision 23745:

Swith the looping from spin->frq to frq->spin.

Since the number of dispersion points are the same for all spins, this
allows to move the calculation of pA and kex array one level up.

This saves alot of computation.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23745)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 20:44:17 2014, SVN revision 23744:

Merged revisions 23743 via svnmerge from
svn+ssh://tlinnet@svn.gna.org/svn/relax/trunk

........
r23743 | tlinnet | 2014-06-08 22:42:55 +0200 (Sun, 08 Jun 2014) | 6 lines

Updated profiling text for CR72 model.

Now it is tested for 3 fields.

This is related to:
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.
........

(Browse SVN revision 23744)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 20:42:55 2014, SVN revision 23743:

Updated profiling text for CR72 model.

Now it is tested for 3 fields.

This is related to:
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23743)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 20:22:26 2014, SVN revision 23742:

Created multi dimensional error and value numpy arrays.

This is to calculate the chi2 sum much faster.
Reordered the loop over missing data points, so it is only iniatiated if missing points is detected.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23742)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 20:22:24 2014, SVN revision 23741:

Added self.has_missing keyword in initialization of the Dispersion class.

This is to test once, per spin or cluster.
This saves a looping over the dipsersion points, when collection the data.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23741)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 20:22:22 2014, SVN revision 23740:

Critical fix for the slicing of values in target function.

This makes system test: Relax_disp.test_sod1wt_t25_to_cr72 pass.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23740)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 18:48:03 2014, comment #25:

All system test can be restored by un commenting safety tests.:

For: Relax_disp.test_hansen_cpmg_data_missing_auto_analysis
else:
if np.allclose(dw, np.zeros(dw.shape)) or np.allclose(pA, np.ones(dw.shape)) or np.allclose(kex, np.zeros(dw.shape)):
back_calc[:] = r20a
return

But that kill the unit tests.

For Relax_disp.test_sod1wt_t25_to_cr72
That can be restore by removing test for:

max(etapos) > 700: and
isfinite(sum(R2eff)):

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 18:34:28 2014, comment #24:

relax_disp_spin_speed -s Relax_disp.test_hansen_cpmg_data_missing_auto_analysis --time -d

Optimised parameters:

Parameter Value (:4) Value (:70) Value (:71)
R2 (500 MHz) 1.60456873699084 6.97235130701478 4.98111647969012
R2 (800 MHz) 1.63225063409431 9.40988386796136 0.0590835112910213
pA 0.543909594668731 0.989856745034836 0.996608013844177
dw 6.63536592789307e-13 5.60878828496508 4.34425685338434
kex 5.58192185204703e-09 1752.93345983946 1937.21776309767
chi2 26.735669529984 53.8382172686881 5.51703749012445

F 17.18 s for Relax_disp.test_hansen_cpmg_data_missing_auto_analysis

======================================================================
FAIL: test_hansen_cpmg_data_missing_auto_analysis (test_suite.system_tests.relax_disp.Relax_disp)
Test of the dispersion auto-analysis using Dr. Flemming Hansen's CPMG data with parts missing.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/tlinnet/software/disp_spin_speed/test_suite/system_tests/relax_disp.py", line 2237, in test_hansen_cpmg_data_missing_auto_analysis
self.assertAlmostEqual(spin4.pA, 0.899911303159742, 3)
AssertionError: 0.54390959466873079 != 0.899911303159742 within 3 places

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 18:26:05 2014, comment #23:

The time spent in cr72.py goes from:

38.743 0.000 43.050 0.000 cr72.py:100(r2eff_CR72)
to
1.403 0.001 2.184 0.002 cr72.py:101(r2eff_CR72).
This is awesome!

The time in:
5.241 0.005 54.380 0.054 relax_disp.py:456(calc_CR72_chi2)
15.091 0.015 44.520 0.045 relax_disp.py:496(calc_CR72_chi2)

This is triple time as much, which is probably related to the increased
looping, to get the disp point structures back.

The NEW time consumer is:
1510108 20.473 0.000 20.473 0.000 {numpy.core.multiarray.array}.

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:52:11 2014, comment #22:

System tests which fails

F 20.55 s for Relax_disp.test_hansen_cpmg_data_missing_auto_analysis
F 17.85 s for Relax_disp.test_sod1wt_t25_to_cr72

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields
('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58.]))
('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58., 62., 66., 70., 74., 78.]))
('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42., 46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))

iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

########
For trunk: r23720
########

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.561 0.561 <string>:1(<module>)
1 0.001 0.001 0.561 0.561 pf:419(single)
1000 0.002 0.000 0.557 0.001 pf:405(calc)
1000 0.008 0.000 0.554 0.001 relax_disp.py:908(func_CR72_full)
1000 0.053 0.000 0.541 0.001 relax_disp.py:456(calc_CR72_chi2)
3003 0.384 0.000 0.427 0.000 cr72.py:100(r2eff_CR72)
3000 0.042 0.000 0.057 0.000 chi2.py:32(chi2)

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 54.497 54.497 <string>:1(<module>)
1 0.002 0.002 54.497 54.497 pf:441(cluster)
1000 0.004 0.000 54.411 0.054 pf:405(calc)
1000 0.012 0.000 54.407 0.054 relax_disp.py:908(func_CR72_full)
1000 5.241 0.005 54.380 0.054 relax_disp.py:456(calc_CR72_chi2)
300300 38.743 0.000 43.050 0.000 cr72.py:100(r2eff_CR72)
300000 4.224 0.000 5.736 0.000 chi2.py:32(chi2)

########
For disp_spin_speed: r23739
########

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.794 0.794 <string>:1(<module>)
1 0.001 0.001 0.793 0.793 pf:419(single)
1000 0.002 0.000 0.788 0.001 pf:405(calc)
1000 0.008 0.000 0.786 0.001 relax_disp.py:973(func_CR72_full)
1000 0.145 0.000 0.772 0.001 relax_disp.py:496(calc_CR72_chi2)
1003 0.163 0.000 0.376 0.000 cr72.py:101(r2eff_CR72)
23029 0.195 0.000 0.195 0.000 {numpy.core.multiarray.array}
4003 0.123 0.000 0.189 0.000 numeric.py:1862(allclose)
3000 0.043 0.000 0.059 0.000 chi2.py:32(chi2)

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 44.674 44.674 <string>:1(<module>)
1 0.003 0.003 44.674 44.674 pf:441(cluster)
1000 0.004 0.000 44.556 0.045 pf:405(calc)
1000 0.015 0.000 44.551 0.045 relax_disp.py:973(func_CR72_full)
1000 15.091 0.015 44.520 0.045 relax_disp.py:496(calc_CR72_chi2)
1510108 20.473 0.000 20.473 0.000 {numpy.core.multiarray.array}
300000 4.727 0.000 6.454 0.000 chi2.py:32(chi2)
1300 1.403 0.001 2.184 0.002 cr72.py:101(r2eff_CR72)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:39 2014, SVN revision 23739:

Changed that special numpy structure is also created for "CR72".

This makes most system tests pass.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23739)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:37 2014, SVN revision 23738:

Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

This is implemented for three fields.

This is to implement catching of math domain errors, before they occur.

These tests cover all parameter value combinations which result in no exchange:

- dw = 0.0,
- pA = 1.0,
- kex = 0.0,
- dw = 0.0 and pA = 1.0,
- dw = 0.0 and kex = 0.0,
- pA = 1.0 and kex = 0.0,
- dw = 0.0, pA = 1.0, and kex = 0.0.
- kex = 1e5,
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23738)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:35 2014, SVN revision 23737:

Re-implemented safety checks in lib/dispersion/cr72.py.

This is now implemented for both rank-1 float array and of higher dimensions.

This makes the unit tests pass for multi dimensional computing.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23737)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:34 2014, SVN revision 23736:

Added unit tests demonstrating edge cases 'no Rex' failures of the model 'CR72 full', for a clustered multi dimensional calculation.

This is implemented for one field.

This is to implement catching of math domain errors, before they occur.

These tests cover all parameter value combinations which result in no exchange:

- dw = 0.0,
- pA = 1.0,
- kex = 0.0,
- dw = 0.0 and pA = 1.0,
- dw = 0.0 and kex = 0.0,
- pA = 1.0 and kex = 0.0,
- dw = 0.0, pA = 1.0, and kex = 0.0.
- kex = 1e5,

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23736)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:31 2014, SVN revision 23735:

Important fix for the creation of the multi dimensional pA numpy array.

It should be created as numpy.zeros([ei][si][mi][oi]) instead of numpy.ones([ei][si][mi][oi]).

This allows for rapid testing of all dimensions with np.allclose(pA, numpy.ones(dw.shape)).
pA can have missing filled out values, when the number of dispersion points are different
per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23735)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:30 2014, SVN revision 23734:

Made it easier to switch between single and cluster reporting in profiling script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23734)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:27 2014, SVN revision 23733:

Important fix for extracting the correct shape to create new arrays.

If using just one field, or having the same number of dispersion points, the shape would extend to the dispersion number.
It would report [ei][si][mi][oi][di] when calling ndarray.shape.

Shape always has to be reported as: [ei][si][mi][oi].

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23733)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:26 2014, SVN revision 23732:

Re-inserted safety checks in lin/dispersion/cr72.py file.

This is re-inserted for the rank_1 cases.

This makes the unit-tests pass again.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23732)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 17:48:23 2014, SVN revision 23731:

Fix for calculation of the larmor frequency per spin in profiling script.

The frq loop should also be up-shifted.
It was now extracted as 0.0.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23731)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 11:53:39 2014, comment #12:

With the current implementation, the speed of a global analysis for 100 spins
is speeded up by a factor X2.

The unit tests though fail!

1000 iterations
100 spins
3 sfrq
('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58.]))
('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58., 62., 66., 70., 74., 78.]))
('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))
('chi2 cluster:', 0.0)

TRUNK
single spin
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.556 0.556 <string>:1(<module>)
1 0.001 0.001 0.556 0.556 pf:418(single)
1000 0.002 0.000 0.548 0.001 pf:404(calc)
1000 0.007 0.000 0.546 0.001 relax_disp.py:908(func_CR72_full)
1000 0.052 0.000 0.533 0.001 relax_disp.py:456(calc_CR72_chi2)
3003 0.380 0.000 0.422 0.000 cr72.py:100(r2eff_CR72)
3000 0.041 0.000 0.056 0.000 chi2.py:32(chi2)

100 spins
1 0.000 0.000 54.478 54.478 <string>:1(<module>)
1 0.002 0.002 54.478 54.478 pf:440(cluster)
1000 0.004 0.000 54.396 0.054 pf:404(calc)
1000 0.011 0.000 54.392 0.054 relax_disp.py:908(func_CR72_full)
1000 5.304 0.005 54.366 0.054 relax_disp.py:456(calc_CR72_chi2)
300300 38.733 0.000 43.016 0.000 cr72.py:100(r2eff_CR72)
300000 4.190 0.000 5.704 0.000 chi2.py:32(chi2)
600300 0.700 0.000 3.029 0.000 fromnumeric.py:1379(sum)
600300 1.931 0.000 1.931 0.000 {method 'sum' of 'numpy.ndarray' objects}
300300 0.267 0.000 1.463 0.000 fromnumeric.py:1774(amax)
300300 0.238 0.000 1.305 0.000 fromnumeric.py:1836(amin)
300300 1.196 0.000 1.196 0.000 {method 'max' of 'numpy.ndarray' objects}
300300 1.067 0.000 1.067 0.000 {method 'min' of 'numpy.ndarray' objects}

NOW
--------
single spin
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.591 0.591 <string>:1(<module>)
1 0.001 0.001 0.591 0.591 pf:418(single)
1000 0.002 0.000 0.586 0.001 pf:404(calc)
1000 0.008 0.000 0.584 0.001 relax_disp.py:971(func_CR72_full)
1000 0.141 0.000 0.570 0.001 relax_disp.py:494(calc_CR72_chi2)
1003 0.139 0.000 0.186 0.000 cr72.py:101(r2eff_CR72)
17029 0.184 0.000 0.184 0.000 {numpy.core.multiarray.array}
3000 0.042 0.000 0.057 0.000 chi2.py:32(chi2)
1003 0.030 0.000 0.047 0.000 numeric.py:1862(allclose)

100 spins
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 38.563 38.563 <string>:1(<module>)
1 0.002 0.002 38.563 38.563 pf:440(cluster)
1000 0.004 0.000 38.461 0.038 pf:404(calc)
1000 0.012 0.000 38.457 0.038 relax_disp.py:971(func_CR72_full)
1000 12.907 0.013 38.429 0.038 relax_disp.py:494(calc_CR72_chi2)
1504108 18.221 0.000 18.221 0.000 {numpy.core.multiarray.array}
300000 4.072 0.000 5.526 0.000 chi2.py:32(chi2)
1300 1.290 0.001 1.467 0.001 cr72.py:101(r2eff_CR72)
300000 0.343 0.000 1.454 0.000 fromnumeric.py:1379(sum)
300000 0.933 0.000 0.933 0.000 {method 'sum' of 'numpy.ndarray' objects}
504818 0.372 0.000 0.372 0.000 {range}
300000 0.179 0.000 0.179 0.000 {isinstance}
1300 0.134 0.000 0.178 0.000 numeric.py:1862(allclose)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 11:14:38 2014, SVN revision 23730:

In profiling script, moved up the calculation of values one level.

This is to better see the output of the profiling iterations for cr72.py.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23730)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 11:14:37 2014, SVN revision 23729:

Removing looping over exp and offset indicies in calc_chi2. They are always 0 anyway.

This brings a little speed.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.


Profiling.

1000 iterations
100 spins
3 sfrq
('sfrq: ', 600000000.0, 'number of cpmg frq', 15, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58.]))
('sfrq: ', 800000000.0, 'number of cpmg frq', 20, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58., 62., 66., 70., 74., 78.]))
('sfrq: ', 900000000.0, 'number of cpmg frq', 22, array([ 2., 6., 10., 14., 18., 22., 26., 30., 34., 38., 42.,
46., 50., 54., 58., 62., 66., 70., 74., 78., 82., 86.]))
('chi2 cluster:', 0.0)

TRUNK
ncalls tottime percall cumtime percall filename:lineno(function)
1000 5.221 0.005 53.578 0.054 relax_disp.py:456(calc_CR72_chi2)

BEFORE
ncalls tottime percall cumtime percall filename:lineno(function)
1000 14.871 0.015 43.084 0.043 relax_disp.py:494(calc_CR72_chi2)

AFTER removing looping over exp and offset indicies. They are always 0.
ncalls tottime percall cumtime percall filename:lineno(function)
1000 12.831 0.013 38.248 0.038 relax_disp.py:494(calc_CR72_chi2)

(Browse SVN revision 23729)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sun Jun 8 11:14:34 2014, SVN revision 23728:

Modified profiling script to calculate correct values when setting up R2eff values.

This is to test, that the return of chi2 gets zero.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23728)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 21:18:18 2014, SVN revision 23727:

Moved the creation of special numpy structures outside target function.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23727)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 21:18:16 2014, SVN revision 23726:

Added print out of chi2 to profile script.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23726)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 20:36:01 2014, SVN revision 23725:

Altered profiling script to report cumulative timings and save to temporary files.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

This indeed shows that the efficiency has gone down:

-----

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]
('sfrq: ', 600000000.0, 'number of cpmg frq', 15)
('sfrq: ', 800000000.0, 'number of cpmg frq', 20)
('sfrq: ', 900000000.0, 'number of cpmg frq', 22)
iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

For TRUNK

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.434 0.434 :1()
1 0.001 0.001 0.434 0.434 pf:354(single)
1000 0.002 0.000 0.432 0.000 pf:340(calc)
1000 0.007 0.000 0.429 0.000 relax_disp.py:908(func_CR72_full)
1000 0.054 0.000 0.416 0.000 relax_disp.py:456(calc_CR72_chi2)
3000 0.256 0.000 0.300 0.000 cr72.py:100(r2eff_CR

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 42.035 42.035 :1()
1 0.002 0.002 42.035 42.035 pf:378(cluster)
1000 0.004 0.000 41.957 0.042 pf:340(calc)
1000 0.011 0.000 41.953 0.042 relax_disp.py:908(func_CR72_full)
1000 5.378 0.005 41.928 0.042 relax_disp.py:456(calc_CR72_chi2)
300000 25.942 0.000 30.276 0.000 cr72.py:100(r2eff_CR72)
300000 4.362 0.000 5.903 0.000 chi2.py:32(chi2)

TESTING

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.792 0.792 :1()
1 0.001 0.001 0.792 0.792 pf:354(single)
1000 0.002 0.000 0.789 0.001 pf:340(calc)
1000 0.011 0.000 0.787 0.001 relax_disp.py:966(func_CR72_full)

[...] 1000 0.187 0.000 0.769 0.001 relax_disp.py:457(calc_CR72_chi2)

[...] 26013 0.290 0.000 0.290 0.000 {numpy.core.multiarray.array}

[...] 1000 0.147 0.000 0.198 0.000 cr72.py:101(r2eff_CR72)

[...] 2001 0.002 0.000 0.086 0.000 numeric.py:167(asarray)

[...] 3000 0.045 0.000 0.062 0.000 chi2.py:32(chi2)

[...]

[...]100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1 0.000 0.000 46.821 46.821 :1()

[...] 1 0.002 0.002 46.821 46.821 pf:378(cluster)

[...] 1000 0.004 0.000 46.744 0.047 pf:340(calc)

[...] 1000 0.017 0.000 46.740 0.047 relax_disp.py:966(func_CR72_full)

[...] 1000 15.422 0.015 46.708 0.047 relax_disp.py:457(calc_CR72_chi2)

[...] 1511904 23.475 0.000 23.475 0.000 {numpy.core.multiarray.array}

[...] 300000 4.175 0.000 5.668 0.000 chi2.py:32(chi2)

[...] 2001 0.004 0.000 4.804 0.002 numeric.py:167(asarray)

[...] 1000 0.010 0.000 2.438 0.002 fromnumeric.py:1774(amax)

[...] 1000 0.006 0.000 2.428 0.002 fromnumeric.py:32(_wrapit)

[...] 300000 0.353 0.000 1.493 0.000 fromnumeric.py:1379(sum)

[...] 1000 1.281 0.001 1.444 0.001 cr72.py:101(r2eff_CR72)

[...]

(Browse SVN revision 23725)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 19:43:19 2014, SVN revision 23723:

Initial try to alter the target function calc_CR72_chi2.

This is the first test to restructure the arrays, to allow for higher dimensional computation.
All numpy arrays have to have same shape to allow to multiply together.
The dimensions should be [ei][si][mi][oi][di]. [Experiment][spins][spec. frq][offset][disp points].
This is complicated with number of disp point can change per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

This implementation brings a high overhead.
The first test shows no winning of time.
The creation of arrays takes all the time.

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]
('sfrq: ', 600000000.0, 'number of cpmg frq', 15)
('sfrq: ', 800000000.0, 'number of cpmg frq', 20)
('sfrq: ', 900000000.0, 'number of cpmg frq', 22)
iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

For TRUNK

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
3000 0.267 0.000 0.313 0.000 cr72.py:100(r2eff_CR72)
1000 0.056 0.000 0.434 0.000 relax_disp.py:456(calc_CR72_chi2)
3000 0.045 0.000 0.061 0.000 chi2.py:32(chi2)

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
300000 26.315 0.000 30.771 0.000 cr72.py:100(r2eff_CR72)
1000 5.498 0.005 42.660 0.043 relax_disp.py:456(calc_CR72_chi2)
300000 4.438 0.000 6.021 0.000 chi2.py:32(chi2)

TESTING

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
19013 0.278 0.000 0.278 0.000 {numpy.core.multiarray.array}
1000 0.191 0.000 0.777 0.001 relax_disp.py:457(calc_CR72_chi2)
1000 0.147 0.000 0.197 0.000 cr72.py:101(r2eff_CR72)
3000 0.044 0.000 0.061 0.000 chi2.py:32(chi2)

100 spins:

[...] ncalls tottime percall cumtime percall filename:lineno(function)

[...] 1504904 25.215 0.000 25.215 0.000 {numpy.core.multiarray.array}

[...] 1000 17.261 0.017 51.180 0.051 relax_disp.py:457(calc_CR72_chi2)

[...] 300000 4.637 0.000 6.310 0.000 chi2.py:32(chi2)

[...]

(Browse SVN revision 23723)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 19:43:17 2014, SVN revision 23722:

Modified profiling script to have different number of NCYC points per frequency.

This is to complicate the data, so any errournous reshaping of data is discovered.
It is expected, that experiments can have different number of NCYC points per spectrometer frequency.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23722)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Sat Jun 7 19:20:42 2014, comment #3:

This is indeed possible, but it is very hard to handle the different number of cpmg frequencies for per spectrometer frequencies.

This gives a very high overhead in the target function, for the repeat of creating the structures.

-----

First timing is.

Checked on MacBook Pro
2.4 GHz Intel Core i5
8 GB 1067 Mhz DDR3 RAM.
Python Distribution -- Python 2.7.3 |EPD 7.3-2 (32-bit)|

Timing for:
3 fields, [600. * 1E6, 800. * 1E6, 900. * 1E6]
('sfrq: ', 600000000.0, 'number of cpmg frq', 15)
('sfrq: ', 800000000.0, 'number of cpmg frq', 20)
('sfrq: ', 900000000.0, 'number of cpmg frq', 22)
iterations of function call: 1000

Timed for simulating 1 or 100 clustered spins.

########
For TRUNK
########

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
3000 0.267 0.000 0.313 0.000 cr72.py:100(r2eff_CR72)
1000 0.056 0.000 0.434 0.000 relax_disp.py:456(calc_CR72_chi2)
3000 0.045 0.000 0.061 0.000 chi2.py:32(chi2)

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
300000 26.315 0.000 30.771 0.000 cr72.py:100(r2eff_CR72)
1000 5.498 0.005 42.660 0.043 relax_disp.py:456(calc_CR72_chi2)
300000 4.438 0.000 6.021 0.000 chi2.py:32(chi2)

########
For tag 3.2.1
svn switch ^/tags/3.2.1
########

1 spin:
ncalls tottime percall cumtime percall filename:lineno(function)
19013 0.278 0.000 0.278 0.000 {numpy.core.multiarray.array}
1000 0.191 0.000 0.777 0.001 relax_disp.py:457(calc_CR72_chi2)
1000 0.147 0.000 0.197 0.000 cr72.py:101(r2eff_CR72)
3000 0.044 0.000 0.061 0.000 chi2.py:32(chi2)

100 spins:
ncalls tottime percall cumtime percall filename:lineno(function)
1504904 25.215 0.000 25.215 0.000 {numpy.core.multiarray.array}
1000 17.261 0.017 51.180 0.051 relax_disp.py:457(calc_CR72_chi2)
300000 4.637 0.000 6.310 0.000 chi2.py:32(chi2)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 6 20:31:52 2014, comment #2:

This seems not possible to implement.

If for example you have 4 spins, at 3 frequencies, the shape of
fact = r20a - r20b - k_BA + k_AB
=>
Psi = fact**2 - dw2 + 4.0*pA*pB*kex**2
=>
eta_scale * sqrt(Psi + sqrt_psi2_zeta2)

would be 12.

If the number of cpmg_frqs is 20, then this becomes impossible.
etapos = eta_scale * sqrt(Psi + sqrt_psi2_zeta2) / cpmg_frqs

The shapes does not fit.

Also, the number of cpmg_frqs can be different per frequency.

And you would anyway need to split up per spin.

Unless, one forms some matrix of correct size.
20x12 X 12x20 = 20x20 matrix

But that would alter the model to much!

Also looking at:
r20_kex = (r20a + r20b + kex) / 2.0
this will have shape 12

And then
R2eff = r20_kex - cpmg_frqs * arccosh( fact )
this will be shape 12 minus shape 20 * shape 12.

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 6 16:46:00 2014, SVN revision 23718:

This is a branch created for Task 7807, Speed-up of dispersion models for Clustered analysis.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis.

(Browse SVN revision 23718)

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.
Fri Jun 6 16:40:34 2014, original submission:

In the target function is looped over the number of spins.

This task is to implement the killing of this loop.

This has been discussed in:
http://thread.gmane.org/gmane.science.nmr.relax.devel/6022

Now when the inner loop has been killed, which gave a speed-up of 4x, the outer spin loop should be killed.

This would be the most time-expensive loop, since for a clustering of
50-100 residues, this should speed it up in the same way.

The solution would be to reshape the numpy array, as close as possible to the target function.

-------------
# Loop over the spins.
for si in range(self.num_spins):
# Loop over the spectrometer frequencies.
for mi in range(self.num_frq):
# The R20 index.
r20_index = mi + si*self.num_frq

# Convert dw from ppm to rad/s.
dw_frq = dw[si] * self.frqs[0][si][mi]

# Back calculate the R2eff values.
r2eff_CR72(r20a=R20A[r20_index], r20b=R20B[r20_index], pA=pA, dw=dw_frq, kex=kex, cpmg_frqs=self.cpmg_frqs[0][mi][0], back_calc = self.back_calc[0][si][mi][0], num_points=self.num_disp_points[0][si][mi][0])

# For all missing data points, set the back-calculated value to the measured values so that it has no effect on the chi-squared value.
for di in range(self.num_disp_points[0][si][mi][0]):
if self.missing[0][si][mi][0][di]:
self.back_calc[0][si][mi][0][di] = self.values[0][si][mi][0][di]

# Calculate and return the chi-squared value.
chi2_sum += chi2(self.values[0][si][mi][0], self.back_calc[0][si][mi][0], self.errors[0][si][mi][0])

# Return the total chi-squared value.
return chi2_sum
-----------

Troels E. Linnet <tlinnet>
Project MemberIn charge of this item.

 

(Note: upload size limit is set to 1024 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #21051:  dot_speed2.py added by bugman (6kB - text/x-python - Modified versions of the dot_speed2.py script and log showing slowness in disp_spin_speed@r23968.)
file #21052:  dot_speed2.log added by bugman (4kB - text/plain - Modified versions of the dot_speed2.py script and log showing slowness in disp_spin_speed@r23968.)
file #21039:  dot_speed2.py added by bugman (4kB - text/x-python - Demonstration of numpy.dot() out argument weirdness.)
file #21040:  dot_speed2.log added by bugman (2kB - text/x-log - Demonstration of numpy.dot() out argument weirdness.)
file #21021:  dot_speed.py added by bugman (2kB - text/x-python - Script and log file for showing the speed of different dot products.)
file #21022:  dot_speed.log added by bugman (863B - text/x-log - Script and log file for showing the speed of different dot products.)
file #20984:  patch_orig_dw_R20 added by bugman (5kB - application/octet-stream - Patch for speeding up the dw and R20 value checking in the CR72 model of the 'disp_spin_speed' branch.)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by bugman (Updated the item)
  • -unavailable- added by tlinnet (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Error: not logged in

     

     

    Follow 10 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue Jun 17 18:31:15 2014tlinnetPercent Complete0%=>100%
      Open/ClosedOpen=>Closed
      Effort0.00=>100
    Mon Jun 16 07:37:36 2014bugmanAttached File-=>Added dot_speed2.py, #21051
      Attached File-=>Added dot_speed2.log, #21052
    Sun Jun 15 19:30:16 2014bugmanAttached File-=>Added dot_speed2.py, #21039
      Attached File-=>Added dot_speed2.log, #21040
    Sun Jun 15 08:30:21 2014bugmanAttached File-=>Added dot_speed.py, #21021
      Attached File-=>Added dot_speed.log, #21022
    Wed Jun 11 15:40:47 2014bugmanAttached File-=>Added patch_orig_dw_R20, #20984
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup