pprocess

README.txt

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