Author: bugman Date: Tue Jul 22 19:04:10 2014 New Revision: 24656 URL: http://svn.gna.org/viewcvs/relax?rev=24656&view=rev Log: Merged revisions 23864-23877,23880,23888-23934,23937-23942,23946 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/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 <string>:1(<module>) 100 spin: ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 25.391 25.391 <string>:1(<module>) ---- New version --- 1 spin: ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.111 0.111 <string>:1(<module>) 100 spin: ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.468 0.468 <string>:1(<module>) 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Ãll 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. ........ [... 263 lines stripped ...]