paulb@22 | 1 | Introduction
|
paulb@22 | 2 | ------------
|
paulb@22 | 3 |
|
paulb@40 | 4 | The pprocess module provides elementary support for parallel programming in
|
paulb@22 | 5 | Python using a fork-based process creation model in conjunction with a
|
paulb@22 | 6 | channel-based communications model implemented using socketpair and poll.
|
paulb@22 | 7 |
|
paulb@22 | 8 | Quick Start
|
paulb@22 | 9 | -----------
|
paulb@22 | 10 |
|
paulb@22 | 11 | Try running some of the tests:
|
paulb@22 | 12 |
|
paulb@22 | 13 | PYTHONPATH=. python tests/create_loop.py
|
paulb@22 | 14 | PYTHONPATH=. python tests/start_loop.py
|
paulb@22 | 15 |
|
paulb@22 | 16 | (Simple loop demonstrations which use two different ways of creating and
|
paulb@22 | 17 | starting the parallel processes.)
|
paulb@22 | 18 |
|
paulb@36 | 19 | PYTHONPATH=. python tests/start_indexer.py <directory>
|
paulb@22 | 20 |
|
paulb@36 | 21 | (A text indexing demonstration, where <directory> should be a directory
|
paulb@36 | 22 | containing text files to be indexed, although HTML files will also work well
|
paulb@36 | 23 | enough. After indexing the files, a prompt will appear, words or word
|
paulb@36 | 24 | fragments can be entered, and matching words and their locations will be
|
paulb@36 | 25 | shown. Run the program without arguments to see more information.)
|
paulb@22 | 26 |
|
paulb@48 | 27 | Some examples are also found in the examples directory, notably the PyGmy
|
paulb@48 | 28 | raytracer modified to use pprocess:
|
paulb@48 | 29 |
|
paulb@48 | 30 | cd examples/PyGmy
|
paulb@48 | 31 | PYTHONPATH=../..:. python scene.py
|
paulb@48 | 32 |
|
paulb@22 | 33 | Contact, Copyright and Licence Information
|
paulb@22 | 34 | ------------------------------------------
|
paulb@22 | 35 |
|
paulb@22 | 36 | No Web page has yet been made available for this work, but the author can be
|
paulb@22 | 37 | contacted at the following e-mail address:
|
paulb@22 | 38 |
|
paulb@22 | 39 | paul@boddie.org.uk
|
paulb@22 | 40 |
|
paulb@22 | 41 | Copyright and licence information can be found in the docs directory - see
|
paulb@22 | 42 | docs/COPYING.txt and docs/LICENCE.txt for more information.
|
paulb@22 | 43 |
|
paulb@48 | 44 | For the PyGmy raytracer example, different copyright and licence information
|
paulb@48 | 45 | is provided in the docs directory - see docs/COPYING-PyGmy.txt and
|
paulb@48 | 46 | docs/LICENCE-PyGmy.txt for more information.
|
paulb@48 | 47 |
|
paulb@22 | 48 | Dependencies
|
paulb@22 | 49 | ------------
|
paulb@22 | 50 |
|
paulb@22 | 51 | This software depends on standard library features which are stated as being
|
paulb@22 | 52 | available only on "UNIX"; it has only been tested on a GNU/Linux system.
|
paulb@22 | 53 |
|
paulb@55 | 54 | New in parallel 0.2.2 (Changes since parallel 0.2.1)
|
paulb@55 | 55 | ----------------------------------------------------
|
paulb@55 | 56 |
|
paulb@55 | 57 | * Changed the status testing in the Exchange class, potentially fixing the
|
paulb@55 | 58 | premature closure of channels before all data was read.
|
paulb@55 | 59 | * Fixed the PyGmy raytracer example's process accounting by relying on the
|
paulb@55 | 60 | possibly more reliable Exchange behaviour, whilst also preventing
|
paulb@55 | 61 | erroneous creation of "out of bounds" processes.
|
paulb@58 | 62 | * Added a removed attribute on the Exchange to record which channels were
|
paulb@58 | 63 | removed in the last call to the ready method.
|
paulb@55 | 64 |
|
paulb@48 | 65 | New in parallel 0.2.1 (Changes since parallel 0.2)
|
paulb@48 | 66 | --------------------------------------------------
|
paulb@48 | 67 |
|
paulb@48 | 68 | * Added a PyGmy raytracer example.
|
paulb@53 | 69 | * Updated copyright and licensing details (FSF address, additional works).
|
paulb@48 | 70 |
|
paulb@40 | 71 | New in parallel 0.2 (Changes since parallel 0.1)
|
paulb@40 | 72 | ------------------------------------------------
|
paulb@40 | 73 |
|
paulb@40 | 74 | * Changed the name of the included module from parallel to pprocess in order
|
paulb@40 | 75 | to avoid naming conflicts with PyParallel.
|
paulb@40 | 76 |
|
paulb@22 | 77 | Release Procedures
|
paulb@22 | 78 | ------------------
|
paulb@22 | 79 |
|
paulb@40 | 80 | Update the pprocess __version__ attribute.
|
paulb@22 | 81 | Change the version number and package filename/directory in the documentation.
|
paulb@22 | 82 | Update the release notes (see above).
|
paulb@22 | 83 | Check the release information in the PKG-INFO file.
|
paulb@22 | 84 | Tag, export.
|
paulb@22 | 85 | Archive, upload.
|
paulb@22 | 86 | Update PyPI, PythonInfo Wiki, Vaults of Parnassus entries.
|
paulb@26 | 87 |
|
paulb@26 | 88 | Making Packages
|
paulb@26 | 89 | ---------------
|
paulb@26 | 90 |
|
paulb@44 | 91 | To make Debian-based packages:
|
paulb@26 | 92 |
|
paulb@44 | 93 | 1. Create new package directories under packages if necessary.
|
paulb@26 | 94 | 2. Make a symbolic link in the distribution's root directory to keep the
|
paulb@26 | 95 | Debian tools happy:
|
paulb@26 | 96 |
|
paulb@44 | 97 | ln -s packages/ubuntu-hoary/python2.4-parallel-pprocess/debian/
|
paulb@26 | 98 |
|
paulb@26 | 99 | 3. Run the package builder:
|
paulb@26 | 100 |
|
paulb@26 | 101 | dpkg-buildpackage -rfakeroot
|
paulb@26 | 102 |
|
paulb@26 | 103 | 4. Locate and tidy up the packages in the parent directory of the
|
paulb@26 | 104 | distribution's root directory.
|