Changes

Jump to navigation Jump to search

Relax 3.3.0

532 bytes added, 08:21, 8 September 2014
m
relax release notes links.
* Copyright fixes for all the models, where Troels E. Linnet have made changes to make them functional for higher dimensional data. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Copyright fix for model [[TSMFK01]]. Sebastien Morin did not take part of implementing the [[TSMFK01]] model. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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 [[relax 3.2.2|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.
* 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.
* 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.
* Made the processor.return_object get the back_calc structure in the expected order. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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.* 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.
* Added a profiling script for the [[NS CPMG 2-site expanded]] dispersion model. 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.
* Updated the profiling super script and log for the [[NS CPMG 2-site expanded]] model. 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]].
* 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.
* Added a script for profiling the [[NS CPMG 2-site 3D]] relaxation dispersion model. Again this only involved copying one of the other scripts and modifying a few variable and function names.
* Moved the parameter conversions of k<sub>AB</sub>, k<sub>BA</sub> and p<sub>B</sub> into lib function of [[NS MMQ 2-site]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Moved the parameter conversion from target function to lib function for [[NS R1rho 2-site]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Updated the dispersion model speed statistics for the disp_spin_speed branch vs. [[relax 3.2.2|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.
* 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.
* 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 R<sub>2</sub><sup>0</sup> = R<sub>2A</sub><sup>0</sup> = R<sub>2B</sub><sup>0</sup>. The log file has been updated to match.
* Moved the parameter conversion for [[NS MMQ 3-site]] into lib function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. [[relax 3.2.2|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.
* Moved the parameter conversion for [[NS R1rho 3-site]] into lib function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Copied profiling script for [[CR72]], so there is now a normal and a full version.
* Copied profiling for [[B14]] to normal and full model.
* 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|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.
* Copied profiling script for [[NS CPMG 2-site 3D]].
* Copied profiling script for [[NS CPMG 2-site star]].
* Removed p<sub>A</sub>, p<sub>B</sub> and p<sub>C</sub> from the matrix population function rr1rho_3d_3site_rankN, since they are not used. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Deleted the profiling of eig function profiling script. This was never implemented. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* For all profiling scripts, added conversion to numpy array for CPMG frqs and spin_lock, since some models complained in [[relax 3.2.2|3.2.2]], that they were of list types. Also fixed [[IT99]] to only have 1 spin, since clustering is broken in [[relax 3.2.2|3.2.2]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added comment field to super profiling script. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Math domain fix for [[NS CPMG 2-site 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 1e<sup>100</sup>. Lastly, if the elements are not part of the "True" dispersion point structure, they are cleaned out. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Precision lowering of system test, test_korzhnev_2005_15n_sq_data and test_korzhnev_2005_1h_sq_data. The system tests does not fail on Linux 64-bit system, but only on Mac 32-bit system. This is due to floating error deviations. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added log files for super profiling against tags [[relax 3.2.1 |3.2.1]] and [[relax 3.2.2|3.2.2]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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.
* Added to __init__, the new lib.dispersion.matrix_exponential module. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added data for unit test for the testing of the matrix_exponential_rankN. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Expanded the dispersion profiling master script to handle any two relax versions. To compare two relax versions, for example [[relax 3.2.2 |3.2.2]] to [[relax 3.2.1|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.
* 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. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Moved numerical solution matrices into the corresponding lib function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Improved the relax version printouts for the dispersion model master profiling script. This now reports both relax versions.
* 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.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.2.1|3.2.1 ]] vs. [[relax 3.2.0|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 [[relax 3.2.1 |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.
* 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.
* 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.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.2.2|3.2.2 ]] vs. [[relax 3.2.1|3.2.1]]. This is the output from the dispersion model profiling master script. It shows that the relax [[relax 3.2.2|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 R<sub>1&rho;</sub> models, there is a 1 to 2 times decrease in speed.* Added a relaxation dispersion model profiling log file for relax version [[relax 3.2.0|3.2.0 ]] vs. [[relax 3.1.7|3.1.7]]. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.* Added a relaxation dispersion model profiling log file for relax version [[relax 3.1.7 |3.1.7]] vs. [[relax 3.1.6|3.1.6]]. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Modified profiling script for [[NS R1rho 3-site]], to be functional. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Modified profiling script for [[NS R1rho 3-site linear]] to be functional. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.1.3 |3.1.3]] vs. [[relax 3.1.2 |3.1.2]] vs. [[relax 3.1.1|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.
* 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.
* Added profiling script for model [[MMQ CR72]], [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Implemented profiling script for [[NS MMQ 3-site]] and [[NS MMQ 3-site linear|3-site linear]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Speeded up model [[NS CPMG 2-site star]], by moving the forming of the propagator matrix out of the for loops, and preform it. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.1.4 |3.1.4]] vs. [[relax 3.1.3|3.1.3]]. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Speeded up [[NS MMQ 2-site]], by moving the forming of evolution matrix out of the for loops, and preform it. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Speeded up [[NS MMQ 3-site]], by moving the forming of evolution matrix out of the for loops, and preform it. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.1.5 |3.1.5]] vs. [[relax 3.1.4|3.1.4]]. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Speeded up [[NS R1rho 2-site]], by preforming the evolution matrices, and the M0 matrix in the init part of the target function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Speeded up [[NS R1rho 3-site]], by preforming the evolution matrices, and the M0 matrix in the init part of the target function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 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.
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.1.6 |3.1.6]] vs. [[relax 3.1.5|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.
* Split system test test_tp02_data_to_ns_r1rho_2site into a setup and test part. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Implemented a clustered version of system test test_tp02_data_to_ns_r1rho_2site. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Comment and spell fixing in [[NS CPMG 2-site 3D]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Triple speed in [[NS MMQ 3-site]], after using numpy.linalg.matrix_power instead of the lib version in relax. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. [[relax 3.2.2|relax-3.2.2]]. This 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.* Updated the relaxation dispersion model profiling log file for relax version [[relax 3.2.2|3.2.2 ]] vs. [[relax 3.2.1|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.
* 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.
* 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 quickly be turned into a unit test, and includes small helper functions to calculate how to stride through the data. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Improved the logic for skipping parameters in the grid search. The logic is also fully explained in the user function documentation.
* Removal of all unused imports. These were identified using the devel_scripts/find_unused_imports.py script.
* Reverted the deletion of the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test which occurred in [[relax 3.2.3]]. See the thread at http://thread.gmane.org/gmane.science.nmr.relax.scm/21774/focus=6300 for the request that this deletion be reverted. This is the only system test for the [[LM63 3-site]] dispersion model using real data. Having this test allows for better coverage of the code.
* Updated the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test. This is for the changes to the optimisation user functions.
* Updated the checks in the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test. The values were incorrect due to a bug in relax and a non-optimal minfx setting (https://gna.org/bugs/?22210 and https://gna.org/bugs/?22211).
Trusted, Bureaucrats
4,228

edits

Navigation menu