Author: bugman Date: Thu Mar 1 14:11:28 2012 New Revision: 15422 URL: http://svn.gna.org/viewcvs/relax?rev=15422&view=rev Log: Merged revisions 15400-15420 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/1.3 ........ r15400 | bugman | 2012-02-29 10:49:46 +0100 (Wed, 29 Feb 2012) | 5 lines Eliminated all usage of sys.__stdout__ and sys.__stderr__ in the multi-processor package. This returns full control of IO streams to the parent program. ........ r15401 | bugman | 2012-02-29 10:54:11 +0100 (Wed, 29 Feb 2012) | 6 lines Clean up of the processor IO module. The now unused IO_filter and PrependStringIO classes have been eliminated and the imports all removed. ........ r15402 | bugman | 2012-02-29 11:03:48 +0100 (Wed, 29 Feb 2012) | 5 lines Fix for the Immediate_result_queue class. The __init__() method was broken! ........ r15403 | bugman | 2012-02-29 11:06:20 +0100 (Wed, 29 Feb 2012) | 3 lines Newline cleanup. ........ r15404 | bugman | 2012-02-29 11:13:17 +0100 (Wed, 29 Feb 2012) | 3 lines Import fix for the recently deleted IO classes. ........ r15405 | bugman | 2012-02-29 13:31:43 +0100 (Wed, 29 Feb 2012) | 6 lines The load_multiprocessor() function is no longer a static method of the Processor base class. This function loads the correct Processor class, so doesn't need to be a method of the base class and operates cleanly and more clearly as a stand alone function. ........ r15406 | bugman | 2012-02-29 13:37:57 +0100 (Wed, 29 Feb 2012) | 8 lines Shifted the main interface of the multi-processor package into the __init__ module. The two main interfaces, or the API with the calling program, are the load_multiprocessor() function and the Processor_box class. These have been shifted from the multi.processor module as this is mainly a base class. The import_module() function has also been shifted into __init__ and been made a private function, removing it from the API. ........ r15407 | bugman | 2012-02-29 13:42:09 +0100 (Wed, 29 Feb 2012) | 6 lines Removed the RelaxError import. This was supposed to be only temporary. Now the multi-processor package is 100% independent of relax again. ........ r15408 | bugman | 2012-02-29 13:54:29 +0100 (Wed, 29 Feb 2012) | 7 lines Shifted the Application_callback class into the multi.__init__ module to shift it into the API. The __init__ module now hopefully contains the entirety of the public interface or API of the multi-processor package. This should simplify the interaction of the package with the importing program. ........ r15409 | bugman | 2012-02-29 14:42:35 +0100 (Wed, 29 Feb 2012) | 17 lines Another big redesign of the multi-processor package public API. The processor module has been split into two. It now only contains the Processor base class. All other functions and classes have been shifted into the api module. The actual API is in the __init__ module which, via imports from the api module, presents the following to the user: - Memo - Result_command - Slave_command - load_multiprocessor - Application_callback - Processor_box The API will still require significant simplification and abstraction to increase the usability of the multi-processor by the parent program. ........ r15410 | bugman | 2012-02-29 14:43:28 +0100 (Wed, 29 Feb 2012) | 3 lines Import clean up. ........ r15411 | bugman | 2012-02-29 14:51:27 +0100 (Wed, 29 Feb 2012) | 5 lines Created a new module for holding miscellaneous functions used throughout the package. This includes import_module() and raise_unimplemented() functions. ........ r15412 | bugman | 2012-02-29 16:16:59 +0100 (Wed, 29 Feb 2012) | 7 lines Simplification and abstraction of the Slave_command.run() method. The Processor now calls the _run() method of the Slave_command base class. This is a wrapper for run() which performs the exception handling. Therefore the program code, such as MF_minimise_command, is no longer required to handle the multi-processor specific error handling. ........ r15413 | bugman | 2012-02-29 16:23:41 +0100 (Wed, 29 Feb 2012) | 3 lines Shifted the Memo object into its own module. ........ r15414 | bugman | 2012-02-29 16:32:05 +0100 (Wed, 29 Feb 2012) | 3 lines Shifted the Capturing_exception class into the misc module. ........ r15415 | bugman | 2012-03-01 10:10:36 +0100 (Thu, 01 Mar 2012) | 3 lines Updated the Slave_command.run() docstring to state that this must be overridden. ........ r15416 | bugman | 2012-03-01 10:45:50 +0100 (Thu, 01 Mar 2012) | 21 lines Reverted r15412 as this was triggering a locking condition and no allowing the program to terminate. The command used was: svn merge -r15412:r15411 . ..... r15412 | bugman | 2012-02-29 16:16:59 +0100 (Wed, 29 Feb 2012) | 7 lines Changed paths: M /1.3/multi/api.py M /1.3/multi/multi_processor_base.py M /1.3/multi/uni_processor.py M /1.3/specific_fns/model_free/multi_processor_commands.py Simplification and abstraction of the Slave_command.run() method. The Processor now calls the _run() method of the Slave_command base class. This is a wrapper for run() which performs the exception handling. Therefore the program code, such as MF_minimise_command, is no longer required to handle the multi-processor specific error handling. ..... ........ r15417 | bugman | 2012-03-01 10:47:34 +0100 (Thu, 01 Mar 2012) | 6 lines Removed the try statement in the model-free Slave_command.run() method. After testing, this appears to not be needed anyway. Exception handling is correctly performed on the slave and master. ........ r15418 | bugman | 2012-03-01 10:57:22 +0100 (Thu, 01 Mar 2012) | 7 lines Future proofed the relax codebase by replacing all ''' with """ in the docstrings. According to the Python convention PEP 257 (http://www.python.org/dev/peps/pep-0257/), it is stated that, "[f]or consistency, always use """triple double quotes""" around docstrings". As this is a convention, it may be enforced in future Python versions. ........ r15419 | bugman | 2012-03-01 13:36:46 +0100 (Thu, 01 Mar 2012) | 11 lines Created a special Verbosity singleton for controlling the multi-processor package print outs. This controls the text prepended to the output from the slaves, as well as all print outs from the master processor. If the verbosity level is set to 0, then nothing but warnings and errors are printed. The level of 1 prepends text to the slave IO streams and the print out of from the master of the active slave set. This will be important for very fine grained parallelisation whereby the multi-processor is used at the level of the basic function call or lower. ........ r15420 | bugman | 2012-03-01 14:08:02 +0100 (Thu, 01 Mar 2012) | 5 lines The relax --debug command line option now turns the multi-processor package verbosity to 1. The default is currently 0, but the debugging flag changes this. ........ Added: branches/frame_order_testing/multi/api.py - copied unchanged from r15420, 1.3/multi/api.py branches/frame_order_testing/multi/memo.py - copied unchanged from r15420, 1.3/multi/memo.py branches/frame_order_testing/multi/misc.py - copied unchanged from r15420, 1.3/multi/misc.py Modified: branches/frame_order_testing/ (props changed) branches/frame_order_testing/float.py branches/frame_order_testing/generic_fns/minimise.py branches/frame_order_testing/multi/__init__.py branches/frame_order_testing/multi/commands.py branches/frame_order_testing/multi/mpi4py_processor.py branches/frame_order_testing/multi/multi_processor_base.py branches/frame_order_testing/multi/processor.py branches/frame_order_testing/multi/processor_io.py branches/frame_order_testing/multi/uni_processor.py branches/frame_order_testing/relax.py branches/frame_order_testing/specific_fns/model_free/mf_minimise.py branches/frame_order_testing/specific_fns/model_free/multi_processor_commands.py branches/frame_order_testing/test_suite/unit_tests/unit_test_runner.py [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/frame_order_testing/float.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/float.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/generic_fns/minimise.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/generic_fns/minimise.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/__init__.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/commands.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/commands.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/mpi4py_processor.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/mpi4py_processor.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/multi_processor_base.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/multi_processor_base.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/processor.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/processor.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/processor_io.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/processor_io.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/multi/uni_processor.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/multi/uni_processor.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/relax.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/relax.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/specific_fns/model_free/mf_minimise.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/specific_fns/model_free/mf_minimise.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/specific_fns/model_free/multi_processor_commands.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/specific_fns/model_free/multi_processor_commands.py?rev=15422&r1=15421&r2=15422&view=diff Modified: branches/frame_order_testing/test_suite/unit_tests/unit_test_runner.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/test_suite/unit_tests/unit_test_runner.py?rev=15422&r1=15421&r2=15422&view=diff