Hi Edward.

It is impossible for me to see a difference, if using original parameters!

No improvement.

2014-06-11 17:00 GMT+02:00 Edward d'Auvergne <[email protected]>:
> Most data will be from 2 or more magnetic fields, as that is rather
> essential.  But the change will not be significant.
>
> Regards,
>
> Edward
>
>
> On 11 June 2014 16:42, Troels Emtekær Linnet <[email protected]> wrote:
>> Hi Ed.
>>
>> I will keep the flag: has_missing.
>>
>> I guess, that most data will be one field ?
>>
>> So, that check is faster than computing for spins missings.
>>
>> Best
>> Troels
>>
>> 2014-06-11 16:20 GMT+02:00 Troels Emtekær Linnet <[email protected]>:
>>> Welllll.....
>>>
>>> Argghhh...
>>>
>>> Okay!
>>>
>>> But only because of global warming, and saving energy and computation 
>>> costs...
>>>
>>> Best
>>> Troels
>>>
>>> 2014-06-11 16:19 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>>> Pity, I just tested and for the single spin case I see a 33% speed up
>>>> with this change (nr_iter = 10000, cumtime 2.41 seconds verses 1.80
>>>> seconds for the change).  Are you really, really sure this idea should
>>>> not be used and is not worth such a speed up?
>>>>
>>>> Regards,
>>>>
>>>> Edward
>>>>
>>>>
>>>>
>>>> On 11 June 2014 16:05, Troels Emtekær Linnet <[email protected]> wrote:
>>>>> Hi Edward.
>>>>>
>>>>> I wont make that change.
>>>>>
>>>>> I will keep the clean implementation as it is.
>>>>>
>>>>> Best
>>>>> Troels
>>>>>
>>>>> 2014-06-11 15:52 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>>>>> By the way, I just obtained a ~10% speed up using your profiling
>>>>>> script test_suite/shared_data/dispersion/profiling/profiling_cr72.py
>>>>>> if I send in the original parameter vector R20A, R20B, and dw arrays
>>>>>> and check these values instead of the full structures.  See the diff
>>>>>> below for ideas.  With a little more polish and more numpy ufunc
>>>>>> usage, you should be able to squeeze more speed out of the CR72 model
>>>>>> still.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Edward
>>>>>>
>>>>>>
>>>>>> P. S.  Here is the diff:
>>>>>>
>>>>>> """
>>>>>> Index: lib/dispersion/cr72.py
>>>>>> ===================================================================
>>>>>> --- lib/dispersion/cr72.py      (revision 23841)
>>>>>> +++ lib/dispersion/cr72.py      (working copy)
>>>>>> @@ -92,13 +92,13 @@
>>>>>>  """
>>>>>>
>>>>>>  # Python module imports.
>>>>>> -from numpy import arccosh, array, cos, cosh, isfinite, fabs, min,
>>>>>> max, sqrt, subtract, sum
>>>>>> +from numpy import arccosh, array, cos, cosh, isfinite, fabs, min,
>>>>>> max, sqrt, subtract, sum, multiply
>>>>>>  from numpy.ma import fix_invalid, masked_greater_equal, masked_less,
>>>>>> masked_where
>>>>>>
>>>>>>  # Repetitive calculations (to speed up calculations).
>>>>>>  eta_scale = 2.0**(-3.0/2.0)
>>>>>>
>>>>>> -def r2eff_CR72(r20a=None, r20b=None, pA=None, dw=None, kex=None,
>>>>>> cpmg_frqs=None, back_calc=None, num_points=None):
>>>>>> +def r2eff_CR72(r20a_orig=None, r20b_orig=None, r20a=None, r20b=None,
>>>>>> pA=None, dw_orig=None, dw=None, kex=None, cpmg_frqs=None,
>>>>>> back_calc=None, num_points=None):
>>>>>>      """Calculate the R2eff values for the CR72 model.
>>>>>>
>>>>>>      See the module docstring for details.
>>>>>> @@ -133,7 +133,7 @@
>>>>>>              return
>>>>>>
>>>>>>      # Test if dw is zero. Wait for replacement, since this is spin 
>>>>>> specific.
>>>>>> -    if min(fabs(dw)) == 0.0:
>>>>>> +    if min(fabs(dw_orig)) == 0.0:
>>>>>>          t_dw_zero = True
>>>>>>          mask_dw_zero = masked_where(dw == 0.0, dw)
>>>>>>
>>>>>> @@ -147,7 +147,7 @@
>>>>>>      k_AB = pB * kex
>>>>>>
>>>>>>      # The Psi and zeta values.
>>>>>> -    if sum(r20a - r20b) != 0.0:
>>>>>> +    if sum(r20a_orig - r20b_orig) != 0.0:
>>>>>>          fact = r20a - r20b - k_BA + k_AB
>>>>>>          Psi = fact**2 - dw2 + 4.0*pA*pB*kex**2
>>>>>>          zeta = 2.0*dw * fact
>>>>>> @@ -182,7 +182,8 @@
>>>>>>          return
>>>>>>
>>>>>>      # Calculate R2eff. This uses the temporary buffer and fill
>>>>>> directly to back_calc.
>>>>>> -    subtract(r20_kex, cpmg_frqs * arccosh( fact ), out=back_calc)
>>>>>> +    multiply(cpmg_frqs, arccosh(fact), out=back_calc)
>>>>>> +    subtract(r20_kex, back_calc, out=back_calc)
>>>>>>
>>>>>>      # Replace data in array.
>>>>>>      # If dw is zero.
>>>>>> Index: target_functions/relax_disp.py
>>>>>> ===================================================================
>>>>>> --- target_functions/relax_disp.py      (revision 23841)
>>>>>> +++ target_functions/relax_disp.py      (working copy)
>>>>>> @@ -567,7 +567,7 @@
>>>>>>          self.r20b_struct[:] = multiply.outer(
>>>>>> asarray(R20B).reshape(self.NE, self.NS, self.NM), self.no_nd_struct )
>>>>>>
>>>>>>          ## Back calculate the R2eff values.
>>>>>> -        r2eff_CR72(r20a=self.r20a_struct, r20b=self.r20b_struct,
>>>>>> pA=pA, dw=self.dw_struct, kex=kex, cpmg_frqs=self.cpmg_frqs_a,
>>>>>> back_calc=self.back_calc_a, num_points=self.num_disp_points_a)
>>>>>> +        r2eff_CR72(r20a_orig=R20A, r20b_orig=R20B,
>>>>>> r20a=self.r20a_struct, r20b=self.r20b_struct, pA=pA, dw_orig=dw,
>>>>>> dw=self.dw_struct, kex=kex, cpmg_frqs=self.cpmg_frqs_a,
>>>>>> back_calc=self.back_calc_a, num_points=self.num_disp_points_a)
>>>>>>
>>>>>>          # Clean the data for all values, which is left over at the
>>>>>> end of arrays.
>>>>>>          self.back_calc_a = self.back_calc_a*self.disp_struct
>>>>>> Index: test_suite/shared_data/dispersion/profiling/profiling_cr72.py
>>>>>> ===================================================================
>>>>>> --- test_suite/shared_data/dispersion/profiling/profiling_cr72.py
>>>>>>  (revision 23841)
>>>>>> +++ test_suite/shared_data/dispersion/profiling/profiling_cr72.py
>>>>>>  (working copy)
>>>>>> @@ -55,7 +55,7 @@
>>>>>>  def main():
>>>>>>      if True:
>>>>>>          # Nr of iterations.
>>>>>> -        nr_iter = 1
>>>>>> +        nr_iter = 10000
>>>>>>
>>>>>>          # Print statistics.
>>>>>>          verbose = True
>>>>>> @@ -275,7 +275,7 @@
>>>>>>                      back_calc = array([0.0]*len(cpmg_frqs[ei][mi][oi]))
>>>>>>
>>>>>>                      # Initialise call to function.
>>>>>> -                    r2eff_CR72(r20a=r20a, r20b=r20b, pA=pA,
>>>>>> dw=dw_frq, kex=kex, cpmg_frqs=array(cpmg_frqs[ei][mi][oi]),
>>>>>> back_calc=back_calc, num_points=len(back_calc))
>>>>>> +                    r2eff_CR72(r20a_orig=R20A, r20b_orig=R20B,
>>>>>> r20a=r20a, r20b=r20b, pA=pA, dw_orig=dw_frq, dw=dw_frq, kex=kex,
>>>>>> cpmg_frqs=array(cpmg_frqs[ei][mi][oi]), back_calc=back_calc,
>>>>>> num_points=len(back_calc))
>>>>>>
>>>>>>                      for oi in range(len(self.offset)):
>>>>>>                          for di in range(len(self.points[mi])):
>>>>>> @@ -505,4 +505,4 @@
>>>>>>      model = C1.calc(params)
>>>>>>      print(model)
>>>>>>
>>>>>> -#test_reshape()
>>>>>> \ No newline at end of file
>>>>>> +#test_reshape()
>>>>>> """
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 11 June 2014 15:45, Edward d'Auvergne <[email protected]> wrote:
>>>>>>> You wait until you see what happens with your multiple offset R1rho 
>>>>>>> data ;)
>>>>>>>
>>>>>>> On 11 June 2014 15:42, Troels Emtekær Linnet <[email protected]> 
>>>>>>> wrote:
>>>>>>>> The progress is EXTREME.
>>>>>>>>
>>>>>>>> Per spin, I am now 1.5 X faster per spin calculation.
>>>>>>>> Per cluster of 100, I am now 33X faster.
>>>>>>>>
>>>>>>>> Go one more version up, and it is 64 X faster.
>>>>>>>>
>>>>>>>> WOW!
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ----
>>>>>>>> Checked on MacBook Pro
>>>>>>>> 2.4 GHz Intel Core i5
>>>>>>>> 8 GB 1067 Mhz DDR3 RAM.
>>>>>>>>
>>>>>>>> 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.
>>>>>>>>
>>>>>>>> Find tags:
>>>>>>>> svn ls "^/tags"
>>>>>>>> svn switch ^/tags/3.2.2
>>>>>>>>
>>>>>>>> ##############################################################################################
>>>>>>>>    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
>>>>>>>>
>>>>>>>> ############################
>>>>>>>> For disp_spin_speed r23841 #
>>>>>>>> ############################
>>>>>>>> 1 spin:
>>>>>>>>         1    0.000    0.000    0.373    0.373 <string>:1(<module>)
>>>>>>>>         1    0.001    0.001    0.373    0.373 pf:427(single)
>>>>>>>>      1000    0.002    0.000    0.366    0.000 pf:413(calc)
>>>>>>>>      1000    0.012    0.000    0.363    0.000 
>>>>>>>> relax_disp.py:994(func_CR72_full)
>>>>>>>>      1000    0.027    0.000    0.345    0.000 
>>>>>>>> relax_disp.py:545(calc_CR72_chi2)
>>>>>>>>      1003    0.148    0.000    0.260    0.000 cr72.py:101(r2eff_CR72)
>>>>>>>>      7043    0.059    0.000    0.059    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      1000    0.004    0.000    0.052    0.000 
>>>>>>>> core.py:1701(masked_where)
>>>>>>>>      3006    0.006    0.000    0.036    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      3006    0.004    0.000    0.028    0.000 _methods.py:23(_sum)
>>>>>>>>      3000    0.024    0.000    0.024    0.000 {method 'outer' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      1000    0.013    0.000    0.024    0.000 chi2.py:72(chi2_rankN)
>>>>>>>>      1000    0.002    0.000    0.024    0.000 {method 'view' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>      2006    0.003    0.000    0.023    0.000 fromnumeric.py:2132(amin)
>>>>>>>>      1000    0.003    0.000    0.021    0.000 
>>>>>>>> core.py:2774(__array_finalize__)
>>>>>>>>
>>>>>>>> 100 spins:
>>>>>>>>         1    0.000    0.000    1.630    1.630 <string>:1(<module>)
>>>>>>>>         1    0.003    0.003    1.630    1.630 pf:449(cluster)
>>>>>>>>      1000    0.004    0.000    1.532    0.002 pf:413(calc)
>>>>>>>>      1000    0.020    0.000    1.528    0.002 
>>>>>>>> relax_disp.py:994(func_CR72_full)
>>>>>>>>      1000    0.073    0.000    1.495    0.001 
>>>>>>>> relax_disp.py:545(calc_CR72_chi2)
>>>>>>>>      1300    1.071    0.001    1.285    0.001 cr72.py:101(r2eff_CR72)
>>>>>>>>      8528    0.131    0.000    0.131    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>         1    0.000    0.000    0.094    0.094 pf:106(__init__)
>>>>>>>>      3000    0.083    0.000    0.083    0.000 {method 'outer' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      3600    0.009    0.000    0.082    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      1000    0.055    0.000    0.079    0.000 chi2.py:72(chi2_rankN)
>>>>>>>>      1000    0.006    0.000    0.078    0.000 
>>>>>>>> core.py:1701(masked_where)
>>>>>>>>         1    0.019    0.019    0.069    0.069 
>>>>>>>> pf:173(return_r2eff_arrays)
>>>>>>>>      3600    0.006    0.000    0.067    0.000 _methods.py:23(_sum)
>>>>>>>>      2600    0.006    0.000    0.049    0.000 fromnumeric.py:2132(amin)
>>>>>>>>      2600    0.005    0.000    0.042    0.000 _methods.py:19(_amin)
>>>>>>>>      1000    0.004    0.000    0.032    0.000 {method 'view' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>
>>>>>>>>
>>>>>>>> ############################
>>>>>>>> For disp_spin_speed r23806 #
>>>>>>>> ############################
>>>>>>>> 1 spin:
>>>>>>>>         1    0.000    0.000    0.546    0.546 <string>:1(<module>)
>>>>>>>>         1    0.002    0.002    0.546    0.546 pf:427(single)
>>>>>>>>      1000    0.003    0.000    0.538    0.001 pf:413(calc)
>>>>>>>>      1000    0.015    0.000    0.535    0.001 
>>>>>>>> relax_disp.py:989(func_CR72_full)
>>>>>>>>      1000    0.042    0.000    0.513    0.001 
>>>>>>>> relax_disp.py:523(calc_CR72_chi2)
>>>>>>>>      1003    0.142    0.000    0.365    0.000 cr72.py:101(r2eff_CR72)
>>>>>>>>      2003    0.055    0.000    0.181    0.000 numeric.py:2056(allclose)
>>>>>>>>     10046    0.083    0.000    0.083    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      3000    0.045    0.000    0.076    0.000 shape_base.py:761(tile)
>>>>>>>>      4015    0.006    0.000    0.053    0.000 fromnumeric.py:1762(any)
>>>>>>>>      4015    0.004    0.000    0.039    0.000 {method 'any' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>      4015    0.005    0.000    0.035    0.000 _methods.py:31(_any)
>>>>>>>>      2003    0.003    0.000    0.028    0.000 fromnumeric.py:1842(all)
>>>>>>>>      1000    0.014    0.000    0.026    0.000 chi2.py:72(chi2_rankN)
>>>>>>>>      2003    0.004    0.000    0.026    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      4138    0.012    0.000    0.025    0.000 numeric.py:2320(seterr)
>>>>>>>>      2003    0.002    0.000    0.020    0.000 {method 'all' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>      2003    0.003    0.000    0.019    0.000 _methods.py:23(_sum)
>>>>>>>>      2003    0.003    0.000    0.018    0.000 _methods.py:35(_all)
>>>>>>>>     14046    0.016    0.000    0.016    0.000 
>>>>>>>> {numpy.core.multiarray.array}
>>>>>>>>
>>>>>>>> 100 spins:
>>>>>>>>         1    0.000    0.000    2.036    2.036 <string>:1(<module>)
>>>>>>>>         1    0.003    0.003    2.036    2.036 pf:449(cluster)
>>>>>>>>      1000    0.004    0.000    1.905    0.002 pf:413(calc)
>>>>>>>>      1000    0.022    0.000    1.901    0.002 
>>>>>>>> relax_disp.py:989(func_CR72_full)
>>>>>>>>      1000    0.098    0.000    1.865    0.002 
>>>>>>>> relax_disp.py:523(calc_CR72_chi2)
>>>>>>>>      1300    0.986    0.001    1.511    0.001 cr72.py:101(r2eff_CR72)
>>>>>>>>      2300    0.238    0.000    0.434    0.000 numeric.py:2056(allclose)
>>>>>>>>      3000    0.058    0.000    0.238    0.000 shape_base.py:761(tile)
>>>>>>>>      4000    0.154    0.000    0.154    0.000 {method 'repeat' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>     11828    0.147    0.000    0.147    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>         1    0.000    0.000    0.129    0.129 pf:106(__init__)
>>>>>>>>         1    0.021    0.021    0.098    0.098 
>>>>>>>> pf:173(return_r2eff_arrays)
>>>>>>>>      1000    0.054    0.000    0.078    0.000 chi2.py:72(chi2_rankN)
>>>>>>>>      4609    0.008    0.000    0.073    0.000 fromnumeric.py:1762(any)
>>>>>>>>      2300    0.007    0.000    0.055    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      4609    0.005    0.000    0.054    0.000 {method 'any' of
>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>      4609    0.006    0.000    0.049    0.000 _methods.py:31(_any)
>>>>>>>>      2300    0.004    0.000    0.044    0.000 _methods.py:23(_sum)
>>>>>>>>      2300    0.005    0.000    0.039    0.000 fromnumeric.py:1842(all)
>>>>>>>>      4732    0.016    0.000    0.035    0.000 numeric.py:2320(seterr)
>>>>>>>>      4600    0.032    0.000    0.032    0.000 {abs}
>>>>>>>>      1301    0.004    0.000    0.030    0.000 fromnumeric.py:2048(amax)
>>>>>>>>     17016    0.028    0.000    0.028    0.000 
>>>>>>>> {numpy.core.multiarray.array}
>>>>>>>>
>>>>>>>> ############################
>>>>>>>> For trunk           r23785 #
>>>>>>>> ############################
>>>>>>>> 1 spin:
>>>>>>>>         1    0.000    0.000    0.572    0.572 <string>:1(<module>)
>>>>>>>>         1    0.002    0.002    0.572    0.572 pf:427(single)
>>>>>>>>      1000    0.002    0.000    0.565    0.001 pf:413(calc)
>>>>>>>>      1000    0.013    0.000    0.563    0.001 
>>>>>>>> relax_disp.py:908(func_CR72_full)
>>>>>>>>      1000    0.061    0.000    0.543    0.001 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>      3003    0.294    0.000    0.400    0.000 cr72.py:100(r2eff_CR72)
>>>>>>>>     12036    0.100    0.000    0.100    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      3000    0.042    0.000    0.078    0.000 chi2.py:32(chi2)
>>>>>>>>      6003    0.011    0.000    0.072    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      6003    0.008    0.000    0.055    0.000 _methods.py:23(_sum)
>>>>>>>>      3003    0.005    0.000    0.037    0.000 fromnumeric.py:2048(amax)
>>>>>>>>      3003    0.004    0.000    0.033    0.000 fromnumeric.py:2132(amin)
>>>>>>>>      3003    0.004    0.000    0.032    0.000 _methods.py:15(_amax)
>>>>>>>>      3003    0.004    0.000    0.029    0.000 _methods.py:19(_amin)
>>>>>>>>      6003    0.006    0.000    0.006    0.000 {isinstance}
>>>>>>>>
>>>>>>>> 100 spins:
>>>>>>>>         1    0.000    0.000   53.864   53.864 <string>:1(<module>)
>>>>>>>>         1    0.004    0.004   53.864   53.864 pf:449(cluster)
>>>>>>>>      1000    0.005    0.000   53.777    0.054 pf:413(calc)
>>>>>>>>      1000    0.022    0.000   53.772    0.054 
>>>>>>>> relax_disp.py:908(func_CR72_full)
>>>>>>>>      1000    6.340    0.006   53.735    0.054 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>    300300   28.936    0.000   39.278    0.000 cr72.py:100(r2eff_CR72)
>>>>>>>>   1200927    9.811    0.000    9.811    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>    300000    4.227    0.000    7.738    0.000 chi2.py:32(chi2)
>>>>>>>>    600300    1.047    0.000    7.051    0.000 fromnumeric.py:1621(sum)
>>>>>>>>    600300    0.752    0.000    5.434    0.000 _methods.py:23(_sum)
>>>>>>>>    300300    0.445    0.000    3.580    0.000 fromnumeric.py:2048(amax)
>>>>>>>>    300300    0.413    0.000    3.221    0.000 fromnumeric.py:2132(amin)
>>>>>>>>    300300    0.431    0.000    3.134    0.000 _methods.py:15(_amax)
>>>>>>>>    300300    0.383    0.000    2.808    0.000 _methods.py:19(_amin)
>>>>>>>>    600300    0.570    0.000    0.570    0.000 {isinstance}
>>>>>>>>
>>>>>>>>
>>>>>>>> ############################
>>>>>>>> For tag 3.2.2              #
>>>>>>>> svn switch ^/tags/3.2.2    #
>>>>>>>> ############################
>>>>>>>>
>>>>>>>> 1 spin:
>>>>>>>>         1    0.000    0.000    0.569    0.569 <string>:1(<module>)
>>>>>>>>         1    0.002    0.002    0.569    0.569 pf:427(single)
>>>>>>>>      1000    0.002    0.000    0.562    0.001 pf:413(calc)
>>>>>>>>      1000    0.005    0.000    0.560    0.001 
>>>>>>>> relax_disp.py:907(func_CR72_full)
>>>>>>>>      1000    0.062    0.000    0.555    0.001 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>      3003    0.299    0.000    0.407    0.000 cr72.py:100(r2eff_CR72)
>>>>>>>>     12036    0.103    0.000    0.103    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      3000    0.044    0.000    0.082    0.000 chi2.py:32(chi2)
>>>>>>>>      6003    0.011    0.000    0.074    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      6003    0.008    0.000    0.057    0.000 _methods.py:23(_sum)
>>>>>>>>      3003    0.005    0.000    0.037    0.000 fromnumeric.py:2048(amax)
>>>>>>>>      3003    0.004    0.000    0.034    0.000 fromnumeric.py:2132(amin)
>>>>>>>>      3003    0.004    0.000    0.033    0.000 _methods.py:15(_amax)
>>>>>>>>      3003    0.004    0.000    0.029    0.000 _methods.py:19(_amin)
>>>>>>>>      6003    0.006    0.000    0.006    0.000 {isinstance}
>>>>>>>>
>>>>>>>> 100 spins:
>>>>>>>>         1    0.000    0.000   53.987   53.987 <string>:1(<module>)
>>>>>>>>         1    0.004    0.004   53.987   53.987 pf:449(cluster)
>>>>>>>>      1000    0.004    0.000   53.907    0.054 pf:413(calc)
>>>>>>>>      1000    0.008    0.000   53.903    0.054 
>>>>>>>> relax_disp.py:907(func_CR72_full)
>>>>>>>>      1000    6.367    0.006   53.895    0.054 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>    300300   28.870    0.000   39.278    0.000 cr72.py:100(r2eff_CR72)
>>>>>>>>   1200927    9.917    0.000    9.917    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>    300000    4.283    0.000    7.853    0.000 chi2.py:32(chi2)
>>>>>>>>    600300    1.066    0.000    7.154    0.000 fromnumeric.py:1621(sum)
>>>>>>>>    600300    0.745    0.000    5.516    0.000 _methods.py:23(_sum)
>>>>>>>>    300300    0.447    0.000    3.565    0.000 fromnumeric.py:2048(amax)
>>>>>>>>    300300    0.417    0.000    3.259    0.000 fromnumeric.py:2132(amin)
>>>>>>>>    300300    0.422    0.000    3.118    0.000 _methods.py:15(_amax)
>>>>>>>>    300300    0.392    0.000    2.841    0.000 _methods.py:19(_amin)
>>>>>>>>    600300    0.572    0.000    0.572    0.000 {isinstance}
>>>>>>>>
>>>>>>>> ############################
>>>>>>>> For tag 3.2.1              #
>>>>>>>> svn switch ^/tags/3.2.1    #
>>>>>>>> ############################
>>>>>>>> 1 spin:
>>>>>>>>         1    0.000    0.000    1.021    1.021 <string>:1(<module>)
>>>>>>>>         1    0.002    0.002    1.021    1.021 pf:427(single)
>>>>>>>>      1000    0.002    0.000    1.014    0.001 pf:413(calc)
>>>>>>>>      1000    0.005    0.000    1.012    0.001 
>>>>>>>> relax_disp.py:907(func_CR72_full)
>>>>>>>>      1000    0.055    0.000    1.007    0.001 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>      3003    0.861    0.000    0.864    0.000 cr72.py:98(r2eff_CR72)
>>>>>>>>      3000    0.043    0.000    0.084    0.000 chi2.py:32(chi2)
>>>>>>>>      3000    0.006    0.000    0.042    0.000 fromnumeric.py:1621(sum)
>>>>>>>>      3000    0.004    0.000    0.032    0.000 _methods.py:23(_sum)
>>>>>>>>      3027    0.028    0.000    0.028    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>      8049    0.007    0.000    0.007    0.000 {range}
>>>>>>>>         1    0.000    0.000    0.006    0.006 pf:106(__init__)
>>>>>>>>         3    0.000    0.000    0.004    0.001 
>>>>>>>> numeric.py:1509(array_repr)
>>>>>>>>         3    0.000    0.000    0.004    0.001 
>>>>>>>> arrayprint.py:343(array2string)
>>>>>>>>         3    0.000    0.000    0.004    0.001 
>>>>>>>> arrayprint.py:233(_array2string)
>>>>>>>>      3000    0.004    0.000    0.004    0.000 {isinstance}
>>>>>>>>
>>>>>>>> 100 spins:
>>>>>>>>         1    0.000    0.000  104.086  104.086 <string>:1(<module>)
>>>>>>>>         1    0.004    0.004  104.086  104.086 pf:449(cluster)
>>>>>>>>      1000    0.004    0.000  103.944    0.104 pf:413(calc)
>>>>>>>>      1000    0.009    0.000  103.940    0.104 
>>>>>>>> relax_disp.py:907(func_CR72_full)
>>>>>>>>      1000    6.057    0.006  103.931    0.104 
>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>    300300   88.604    0.000   88.888    0.000 cr72.py:98(r2eff_CR72)
>>>>>>>>    300000    4.408    0.000    8.695    0.000 chi2.py:32(chi2)
>>>>>>>>    300000    0.627    0.000    4.287    0.000 fromnumeric.py:1621(sum)
>>>>>>>>    300000    0.458    0.000    3.296    0.000 _methods.py:23(_sum)
>>>>>>>>    300027    2.839    0.000    2.839    0.000 {method 'reduce' of
>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>    703722    0.672    0.000    0.672    0.000 {range}
>>>>>>>>    300000    0.364    0.000    0.364    0.000 {isinstance}
>>>>>>>>         1    0.000    0.000    0.139    0.139 pf:106(__init__)
>>>>>>>>
>>>>>>>>
>>>>>>>> ################# System information ######################
>>>>>>>> Processor fabric:  Uni-processor.
>>>>>>>>
>>>>>>>>
>>>>>>>> Hardware information:
>>>>>>>>     Machine:                 x86_64
>>>>>>>>     Processor:               i386
>>>>>>>>     Processor name:          Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz
>>>>>>>>     Endianness:              little
>>>>>>>>     Total RAM size:          2048.0 Mb
>>>>>>>>     Total swap size:         6144.0 Mb
>>>>>>>>
>>>>>>>> Operating system information:
>>>>>>>>     System:                  Darwin
>>>>>>>>     Release:                 13.2.0
>>>>>>>>     Version:                 Darwin Kernel Version 13.2.0: Thu Apr 17
>>>>>>>> 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64
>>>>>>>>     Mac version:             10.9.3 (, , ) x86_64
>>>>>>>>     Distribution:
>>>>>>>>     Full platform string:    Darwin-13.2.0-x86_64-i386-64bit
>>>>>>>>
>>>>>>>> Python information:
>>>>>>>>     Architecture:            64bit
>>>>>>>>     Python version:          2.7.6
>>>>>>>>     Python branch:
>>>>>>>>     Python build:            default, Apr 11 2014 11:55:30
>>>>>>>>     Python compiler:         GCC 4.2.1 (Apple Inc. build 5666) (dot 3)
>>>>>>>>     Libc version:
>>>>>>>>     Python implementation:   CPython
>>>>>>>>     Python revision:
>>>>>>>>     Python executable:
>>>>>>>> /Users/tlinnet/Library/Enthought/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:      ['/Users/tlinnet/software/relax_trunk',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python27.zip',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-darwin',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac/lib-scriptpackages',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-tk',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-old',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload',
>>>>>>>> '/Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages',
>>>>>>>> '/Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PIL',
>>>>>>>> '/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages']
>>>>>>>>
>>>>>>>> Python packages and modules (most are optional):
>>>>>>>>
>>>>>>>> Name               Installed    Version                        Path
>>>>>>>> minfx              True         1.0.6
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/minfx
>>>>>>>> bmrblib            True         1.0.3
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/bmrblib
>>>>>>>> numpy              True         1.8.0
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy
>>>>>>>> scipy              True         0.13.3
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/scipy
>>>>>>>> wxPython           True         2.9.2.4 osx-cocoa (classic)
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/wx
>>>>>>>> matplotlib         True         1.3.1
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib
>>>>>>>> mpi4py             False
>>>>>>>> epydoc             True         3.0.1
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/epydoc
>>>>>>>> optparse           True         1.5.3
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/optparse.pyc
>>>>>>>> readline           True
>>>>>>>> /Users/tlinnet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/readline.so
>>>>>>>> profile            True
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/profile.pyc
>>>>>>>> bz2                True
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload/bz2.so
>>>>>>>> gzip               True
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/gzip.pyc
>>>>>>>> io                 True
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/io.pyc
>>>>>>>> xml                True         0.8.4 (internal)
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/xml/__init__.pyc
>>>>>>>> xml.dom.minidom    True
>>>>>>>> /Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/xml/dom/minidom.pyc
>>>>>>>>
>>>>>>>> relax information:
>>>>>>>>     Version:                 repository checkout r23785
>>>>>>>> svn+ssh://svn.gna.org/svn/relax/trunk
>>>>>>>>     Processor fabric:        Uni-processor.
>>>>>>>>
>>>>>>>> relax C modules:
>>>>>>>>
>>>>>>>> Module                        Compiled    File type
>>>>>>>>                                   Path
>>>>>>>> target_functions.relax_fit    True        2-way ['Mach-O 64-bit bundle
>>>>>>>> x86_64', 'Mach-O bundle i386']
>>>>>>>> /Users/tlinnet/software/relax_trunk/target_functions/relax_fit.so
>>>>>>>>
>>>>>>>> 2014-06-11 15:38 GMT+02:00 Troels Emtekær Linnet 
>>>>>>>> <[email protected]>:
>>>>>>>>> Hi Ed.
>>>>>>>>>
>>>>>>>>> I am now faster than trunk per spin, even if I replaces the cr72.py 
>>>>>>>>> file.
>>>>>>>>>
>>>>>>>>> 10000 iterations:
>>>>>>>>>
>>>>>>>>> BRANCH:
>>>>>>>>>         1    0.000    0.000    4.060    4.060 <string>:1(<module>)
>>>>>>>>>         1    0.016    0.016    4.060    4.060 pf:427(single)
>>>>>>>>>     10000    0.028    0.000    4.038    0.000 pf:413(calc)
>>>>>>>>>     10000    0.133    0.000    4.010    0.000 
>>>>>>>>> relax_disp.py:994(func_CR72_full)
>>>>>>>>>     10000    0.301    0.000    3.803    0.000 
>>>>>>>>> relax_disp.py:545(calc_CR72_chi2)
>>>>>>>>>     10003    1.629    0.000    2.862    0.000 cr72.py:101(r2eff_CR72)
>>>>>>>>>     70043    0.647    0.000    0.647    0.000 {method 'reduce' of
>>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>>     10000    0.042    0.000    0.572    0.000 
>>>>>>>>> core.py:1701(masked_where)
>>>>>>>>>     30006    0.061    0.000    0.395    0.000 fromnumeric.py:1621(sum)
>>>>>>>>>     30006    0.040    0.000    0.305    0.000 _methods.py:23(_sum)
>>>>>>>>>     10000    0.142    0.000    0.269    0.000 chi2.py:72(chi2_rankN)
>>>>>>>>>     30000    0.267    0.000    0.267    0.000 {method 'outer' of
>>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>>     10000    0.026    0.000    0.262    0.000 {method 'view' of
>>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>>     20006    0.032    0.000    0.250    0.000 
>>>>>>>>> fromnumeric.py:2132(amin)
>>>>>>>>>
>>>>>>>>> TRUNK, with new CR72.
>>>>>>>>>         1    0.000    0.000    6.585    6.585 <string>:1(<module>)
>>>>>>>>>         1    0.016    0.016    6.585    6.585 pf:427(single)
>>>>>>>>>     10000    0.026    0.000    6.562    0.001 pf:413(calc)
>>>>>>>>>     10000    0.133    0.000    6.536    0.001 
>>>>>>>>> relax_disp.py:908(func_CR72_full)
>>>>>>>>>     10000    0.601    0.000    6.327    0.001 
>>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>>     30003    3.153    0.000    4.907    0.000 cr72.py:101(r2eff_CR72)
>>>>>>>>>    180042    1.356    0.000    1.356    0.000 {method 'reduce' of
>>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>>     90006    0.165    0.000    1.108    0.000 fromnumeric.py:1621(sum)
>>>>>>>>>     90006    0.109    0.000    0.792    0.000 _methods.py:23(_sum)
>>>>>>>>>     30000    0.423    0.000    0.775    0.000 chi2.py:32(chi2)
>>>>>>>>>     60006    0.096    0.000    0.647    0.000 
>>>>>>>>> fromnumeric.py:2132(amin)
>>>>>>>>>     60006    0.074    0.000    0.483    0.000 _methods.py:19(_amin)
>>>>>>>>>     30003    0.044    0.000    0.350    0.000 
>>>>>>>>> fromnumeric.py:2048(amax)
>>>>>>>>>
>>>>>>>>> TRUNK, with original CR72.
>>>>>>>>>         1    0.000    0.000    5.994    5.994 <string>:1(<module>)
>>>>>>>>>         1    0.018    0.018    5.994    5.994 pf:427(single)
>>>>>>>>>     10000    0.027    0.000    5.971    0.001 pf:413(calc)
>>>>>>>>>     10000    0.142    0.000    5.944    0.001 
>>>>>>>>> relax_disp.py:908(func_CR72_full)
>>>>>>>>>     10000    0.639    0.000    5.722    0.001 
>>>>>>>>> relax_disp.py:456(calc_CR72_chi2)
>>>>>>>>>     30003    3.093    0.000    4.205    0.000 cr72.py:100(r2eff_CR72)
>>>>>>>>>    120036    1.051    0.000    1.051    0.000 {method 'reduce' of
>>>>>>>>> 'numpy.ufunc' objects}
>>>>>>>>>     30000    0.455    0.000    0.830    0.000 chi2.py:32(chi2)
>>>>>>>>>     60003    0.113    0.000    0.755    0.000 fromnumeric.py:1621(sum)
>>>>>>>>>     60003    0.078    0.000    0.580    0.000 _methods.py:23(_sum)
>>>>>>>>>     30003    0.049    0.000    0.382    0.000 
>>>>>>>>> fromnumeric.py:2048(amax)
>>>>>>>>>     30003    0.048    0.000    0.350    0.000 
>>>>>>>>> fromnumeric.py:2132(amin)
>>>>>>>>>     30003    0.045    0.000    0.333    0.000 _methods.py:15(_amax)
>>>>>>>>>     30003    0.041    0.000    0.302    0.000 _methods.py:19(_amin)
>>>>>>>>>     60003    0.061    0.000    0.061    0.000 {isinstance}
>>>>>>>>>     20002    0.061    0.000    0.061    0.000 {method 'flatten' of
>>>>>>>>> 'numpy.ndarray' objects}
>>>>>>>>>     50046    0.048    0.000    0.048    0.000 {range}
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> relax (http://www.nmr-relax.com)
>>>>>>>>
>>>>>>>> This is the relax-devel mailing list
>>>>>>>> [email protected]
>>>>>>>>
>>>>>>>> To unsubscribe from this list, get a password
>>>>>>>> reminder, or change your subscription options,
>>>>>>>> visit the list information page at
>>>>>>>> https://mail.gna.org/listinfo/relax-devel

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to