debian/ 0000755 0000000 0000000 00000000000 12222122167 007163 5 ustar debian/control 0000644 0000000 0000000 00000002212 12222056211 010557 0 ustar Source: parallelpython
Section: python
Priority: optional
Maintainer: Debian Python Modules Team
Uploaders: Sandro Tosi
Build-Depends: debhelper (>= 5.0.38), python-all (>= 2.5.4-1~)
Build-Depends-Indep: python-support (>= 0.4)
Homepage: http://www.parallelpython.com/
Standards-Version: 3.9.4
Vcs-Svn: svn://anonscm.debian.org/python-modules/packages/parallelpython/trunk/
Vcs-Browser: http://anonscm.debian.org/viewvc/python-modules/packages/parallelpython/trunk/
XS-Python-Version: all
Package: python-pp
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
XB-Python-Version: ${python:Versions}
Description: parallel and distributed programming toolkit for Python
Parallel Python module (pp) provides an easy and efficient way to
create parallel-enabled applications for SMP computers and clusters.
pp module features cross-platform portability and dynamic load
balancing. Thus application written with PP will parallelize
efficiently even on heterogeneous and multi-platform clusters
(including clusters running other application with variable CPU
loads).
debian/source/ 0000755 0000000 0000000 00000000000 12222122167 010463 5 ustar debian/source/format 0000644 0000000 0000000 00000000014 11616076523 011703 0 ustar 3.0 (quilt)
debian/README.source 0000644 0000000 0000000 00000000231 11124164211 011332 0 ustar This package uses dpatch to handle patches against upstream source code; you
can find additional information about dpatch at
/usr/share/doc/dpatch/
debian/rules 0000755 0000000 0000000 00000000751 12222072500 010241 0 ustar #!/usr/bin/make -f
%:
dh $@
override_dh_installexamples:
dh_installexamples examples/*
override_dh_installchangelogs:
dh_installchangelogs CHANGELOG
override_dh_installdocs:
dh_installdocs doc/ppdoc.html doc/example.config
override_dh_installman:
dh_installman doc/ppserver.1
override_dh_auto_install:
dh_auto_install
# Policy 10.4 - removing extension
mv $(CURDIR)/debian/python-pp/usr/bin/ppserver.py $(CURDIR)/debian/python-pp/usr/bin/ppserver
debian/python-pp.doc-base 0000644 0000000 0000000 00000000414 11263707504 012527 0 ustar Document: python-pp
Title: Parallel Python documentation
Author: Vitalii Vanovschi
Abstract: Documentation for Parallel Python module (pp)
Section: Programming/Python
Format: HTML
Index: /usr/share/doc/python-pp/ppdoc.html
Files: /usr/share/doc/python-pp/ppdoc.html
debian/copyright 0000644 0000000 0000000 00000003670 12100337105 011117 0 ustar This package was debianized by Sandro Tosi on
Sun, 03 Feb 2008 18:44:13 +0100.
It was downloaded from http://www.parallelpython.com
Upstream Author:
Vitalii Vanovschi
Copyright:
Copyright (c) 2005-2012 Vitalii Vanovschi
License:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the author nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
The Debian packaging is Copyright (C) 2008-2013, Sandro Tosi
and is licensed under the same license as upstream code.
debian/changelog 0000644 0000000 0000000 00000013226 12222122150 011031 0 ustar parallelpython (1.6.4-1) unstable; urgency=low
[ Sandro Tosi ]
* New upstream release; thanks to Yaroslav Halchenko for the report;
Closes: #698716
* debian/copyright
- extend packaging copyright years
* debian/patches/10_remove_default_password.patch
- updated to new upstream code
* debian/patches/30_ppworker_invoke_via-m.patch
- removed, merged upstream
* debian/control
- bump Standards-Version to 3.9.4 (no changes needed)
* debian/rules
- convert to dh sequencer
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.
-- Sandro Tosi Mon, 30 Sep 2013 00:06:26 +0200
parallelpython (1.6.2-2) unstable; urgency=low
* Invoke ppworker via "python -m" avoiding addition of /usr/share/pyshared
to sys.path; thanks to Zbigniew Jędrzejewski-Szmek for the report and to
Yaroslav Halchenko, Jakub Wilk for the fix; Closes: #620551
-- Sandro Tosi Wed, 23 Jan 2013 20:09:51 +0100
parallelpython (1.6.2-1) unstable; urgency=low
* New upstream release
* debian/copyright
- updated upstream copyright years and extended packaging ones
* debian/patches/10_remove_default_password.patch
- updated to new upstream code
* debian/control
- bump Standards-Version to 3.9.3 (no changes needed)
-- Sandro Tosi Thu, 07 Jun 2012 22:49:51 +0200
parallelpython (1.6.1-1) unstable; urgency=low
* New upstream release
* debian/copyright
- updated both upstream and packaging copyright years
* debian/control
- bump Standards-Version to 3.9.2 (no changes needed)
* Converted to '3.0 (quilt)' source format (so also dpatch -> quilt)
-- Sandro Tosi Wed, 03 Aug 2011 00:57:04 +0200
parallelpython (1.6.0-1) unstable; urgency=low
* New upstream release
* debian/copyright
- updated both upstream and packaging copyright years
- added the complete license text, as suggested by lintian for BSD license
* debian/patches/10_remove_default_password.dpatch
- adapted to new upstream code
* debian/control
- bump Standards-Version to 3.9.0 (no changes needed)
-- Sandro Tosi Thu, 15 Jul 2010 20:05:26 +0200
parallelpython (1.5.7-1) unstable; urgency=low
[ Sandro Tosi ]
* New upstream release
* debian/rules
- updated manpage location
- updated html doc location, adding example.config
* debian/copyright
- extended upstream copyright years
* debian/patches/10_remove_default_password.dpatch
- adapted to new upstream code
* debian/control
- bump Standards-Version to 3.8.3 (no changes needed)
* debian/python-pp.doc-base
- added doc-base
* debian/patches/20_hyphen-used-as-minus-sign.dpatch
- added to fix hyphen-used-as-minus-sign lintian warning
[ Julien Lavergne ]
* From Ubuntu, prepare for the future Python 2.6 transition:
- debian/rules:
+ include /usr/share/python/python.mk
+ add $(py_setup_install_args) to setup.py install
- debian/control:
+ bump build-depends to python-all (>= 2.5.4-1~)
+ bump build-depends to debhelper (>= 5.0.38)
-- Sandro Tosi Sat, 31 Oct 2009 22:07:44 +0100
parallelpython (1.5.6-2) unstable; urgency=low
* Uploading to unstable, since Lenny has been released
* debian/control
- switch Vcs-Browser field to viewsvn
- updated my email address
- removed DM-Upload-Allowed field
* debian/README.source
- added (as requested by Policy 3.8.0)
* debian/copyright
- updated my email address
- updated packaging copyright notice, extending years
- clarified the packaging is licensed under the same terms as upstream code
* debian/rules
- moved removal of 'build' dir after python clean
- merged 'rm' call into 'dh_clean' one
-- Sandro Tosi Sun, 15 Feb 2009 20:27:10 +0100
parallelpython (1.5.6-1) experimental; urgency=low
* New upstream release
-- Sandro Tosi Sun, 14 Sep 2008 01:24:34 +0200
parallelpython (1.5.5-1) experimental; urgency=low
* New upstream release
* debian/patches/10_remove_default_password.dpatch
- adapted to new upstream code
* debian/patches/20_backport_segfault_fix.dpatch
- removed, it was backported from this release
-- Sandro Tosi Fri, 22 Aug 2008 16:31:35 +0200
parallelpython (1.5.4-2) unstable; urgency=low
* debian/patches/20_backport_segfault_fix.dpatch
- backporting from 1.5.5: it fixed a segfault when calling destroy() method
-- Sandro Tosi Wed, 20 Aug 2008 01:18:40 +0200
parallelpython (1.5.4-1) unstable; urgency=low
* New upstream release
* debian/rules
- added removal of objects Python files
* debian/patches/10_remove_default_password.dpatch
- updated to match new upstream code
- little formatting changes both in html and manpage files
- minus sings are escaped in the manpage
- added description
* debian/control
- added "DM-Upload-Allowed: yes"
- bump Standard-Version to 3.8.0 (no changes needed)
* debian/copyright
- removed the license text, leaving only the reference on a Debian system
and a short notice about it.
-- Sandro Tosi Sat, 07 Jun 2008 16:24:58 +0200
parallelpython (1.5.3-2) unstable; urgency=low
* debian/patches/10_remove_default_password.dpatch
- updated to uniform documentation about security issues
- updated to uniform ppserver name
- better execption handling in ppserver
-- Sandro Tosi Sat, 08 Mar 2008 20:13:49 +0100
parallelpython (1.5.3-1) unstable; urgency=low
* Initial release (Closes: #448093)
-- Sandro Tosi Mon, 25 Feb 2008 23:35:10 +0100
debian/patches/ 0000755 0000000 0000000 00000000000 12222122167 010612 5 ustar debian/patches/10_remove_default_password.patch 0000644 0000000 0000000 00000025211 12100342646 017060 0 ustar Author: Sandro Tosi
Description: This patch removes the default password from pp code, requiring users to
explicitly write one; it updates the documentation along the source code
--- a/doc/ppdoc.html
+++ b/doc/ppdoc.html
@@ -158,13 +158,11 @@ to the number of pro
and list of ppservers to connect with :
job_server = pp.Server(ppservers=ppservers)
5) Submit all the tasks for parallel execution:
f1 = job_server.submit(func1, args1, depfuncs1, modules1)
f2 = job_server.submit(func1, args2, depfuncs1, modules1)
f3 = job_server.submit(func2, args3, depfuncs2, modules2)
...etc...
6) Retrieve the results as needed:
r1 = f1()
r2 = f2()
r3 = f3()
...etc...
To find out how to achieve efficient parallelization with pp please take a look at examples
Advanced guide, clusters
On the nodes
1) Start parallel python execution server on all your remote computational nodes (listen to a given port 35000,
and local network interface only, accept only connections which know correct secret):
node-1> ./ppserver.py -p 35000 -i 192.168.0.101 -s "mysecret"
node-2> ./ppserver.py -p 35000 -i 192.168.0.102 -s "mysecret"
node-3> ./ppserver.py -p 35000 -i 192.168.0.103 -s "mysecret"
On the client
2) Import pp module:
import pp
3) Create a list of all the nodes in your cluster (computers where you've run ppserver.py)
ppservers=("node-1:35000", "node-2:35000", "node-3:35000")
4)
Start pp execution server with the number of workers set
to the number of processors in the system,
-
list of ppservers to connect with and secret key to authorize the connection:
job_server = pp.Server(ppservers=ppservers, secret="mysecret")
5) Submit all the tasks for parallel execution:
f1 = job_server.submit(func1, args1, depfuncs1, modules1)
f2 = job_server.submit(func1, args2, depfuncs1, modules1)
f3 = job_server.submit(func2, args3, depfuncs2, modules2)
...etc...
6) Retrieve the results as needed:
r1 = f1()
r2 = f2()
r3 = f3()
...etc...
7) Print the execution statistics:
job_server.print_stats()
To find out how to achieve efficient parallelization with pp please take a look at examples
Command line options, ppserver.py
Usage: ppserver.py [-hda] [-i interface] [-b broadcast] [-p port] [-w nworkers] [-s secret] [-t seconds]
Options:
-h : this help message
-d : debug
-a : enable auto-discovery service
-i interface : interface to listen
-b broadcast : broadcast address for auto-discovery service
-p port : port to listen
-w nworkers : number of workers to start
-s secret : secret for authentication
-t seconds : timeout to exit if no connections with clients exist
-k seconds : socket timeout in seconds
-P pid_file : file to write PID to
Security and secret key
Due
- to the security concerns it is highly recommended to run ppserver.py
-with an non-trivial secret key (-s command line argument) which should
-be paired with the matching secret keyword of PP Server class constructor. Since PP 1.5.3 it is possible to set secret key by assigning pp_secret variable in the configuration file .pythonrc.py
- which should be located in the user home directory (please make this
-file readable and writable only by user). The key set in .pythonrc.py
-could be overridden by command line argument (for ppserver.py) and secret keyword (for PP Server class constructor).
ppserver.py stats and PID file example
To print job execution statistics for ppserver.py send a SIGUSR1 signal to its main process.
For instance on UNIX platform following commands will start a server and print its stats:
ppserver.py -P /tmp/ppserver.pid
kill -s SIGUSR1 `cat /tmp/ppserver.pid`
+
list of ppservers to connect with and secret key to authorize the connection: job_server = pp.Server(ppservers=ppservers, secret="mysecret")
5) Submit all the tasks for parallel execution:
f1 = job_server.submit(func1, args1, depfuncs1, modules1)
f2 = job_server.submit(func1, args2, depfuncs1, modules1)
f3 = job_server.submit(func2, args3, depfuncs2, modules2)
...etc...
6) Retrieve the results as needed:
r1 = f1()
r2 = f2()
r3 = f3()
...etc...
7) Print the execution statistics:
job_server.print_stats()
To find out how to achieve efficient parallelization with pp please take a look at examples
Command line options, ppserver.py
Usage: ppserver.py [-hda] [-i interface] [-b broadcast] [-p port] [-w nworkers] [-s secret] [-t seconds]
Options:
-h : this help message
-d : debug
-a : enable auto-discovery service
-i interface : interface to listen
-b broadcast : broadcast address for auto-discovery service
-p port : port to listen
-w nworkers : number of workers to start
-s secret : secret for authentication
-t seconds : timeout to exit if no connections with clients exist
-k seconds : socket timeout in seconds
-P pid_file : file to write PID to
Security and secret key
+
+
 Due to the security concerns, in Debian we decided to disable default password authentication, and require to run ppserver with a non-trivial secret key (-s command line argument) which should be paired with the matching secret keyword of PP Server class constructor. An alternative way to set a secret key is by assigning pp_secret variable in the configuration file .pythonrc.py which should be located in the user home directory (please make this file readable and writable only by user). The secret key set in .pythonrc.py could be overridden by command line argument (for ppserver) and secret keyword (for PP Server class constructor). Note that passing the password on the command line allows every user to see it (e.g. using ps(1)), and that running it on an open/untrusted network can be a security problem as traf fic, including the password, is not encrypted.
+
+
ppserver.py stats and PID file example
To print job execution statistics for ppserver.py send a SIGUSR1 signal to its main process.
For instance on UNIX platform following commands will start a server and print its stats:
ppserver.py -P /tmp/ppserver.pid
kill -s SIGUSR1 `cat /tmp/ppserver.pid`
--- a/pp.py
+++ b/pp.py
@@ -277,7 +277,6 @@ class Server(object):
"""
default_port = 60000
- default_secret = "epo20pdosl;dksldkmm"
def __init__(self, ncpus="autodetect", ppservers=(), secret=None,
restart=False, proto=2, socket_timeout=3600):
@@ -288,9 +287,8 @@ class Server(object):
the number of processors in the system
ppservers - list of active parallel python execution servers
to connect with
- secret - passphrase for network connections, if omitted a default
- passphrase will be used. It's highly recommended to use a
- custom passphrase for all network connections.
+ secret - passphrase for network connections; it can be set via
+ command-line or configuration file
restart - whether to restart worker process after each task completion
proto - protocol number for pickle module
socket_timeout - socket timeout in seconds which is also the maximum
@@ -372,7 +370,7 @@ class Server(object):
raise TypeError("secret must be of a string type")
self.secret = str(secret)
else:
- self.secret = Server.default_secret
+ raise ValueError("secret must be set using command-line option or configuration file")
self.__connect()
self.__creation_time = time.time()
self.logger.info("pp local server started with %d workers"
debian/patches/20_hyphen-used-as-minus-sign.patch 0000644 0000000 0000000 00000001547 11616076523 017076 0 ustar Author: Sandro Tosi
Description: escape minus sign where needed
--- parallelpython-1.6.1.orig/doc/ppserver.1
+++ parallelpython-1.6.1/doc/ppserver.1
@@ -49,7 +49,7 @@
documentation, examples and support forums
.br
.SH SECURITY
-Due to the security concerns it is highly recommended to run ppserver.py with an non-trivial secret key (-s command line argument) which should be paired with the matching secret keyword of PP Server class constructor. An alternative way to set a secret key is by assigning
+Due to the security concerns it is highly recommended to run ppserver.py with an non-trivial secret key (\-s command line argument) which should be paired with the matching secret keyword of PP Server class constructor. An alternative way to set a secret key is by assigning
.B pp_secret
variable in the configuration file
.B .pythonrc.py
debian/patches/series 0000644 0000000 0000000 00000000104 12222056124 012021 0 ustar 10_remove_default_password.patch
20_hyphen-used-as-minus-sign.patch
debian/watch 0000644 0000000 0000000 00000000213 10752120126 010207 0 ustar # Compulsory line, this is a version 3 file
version=3
http://www.parallelpython.com/content/view/18/32/ downloads/pp/pp-([\d.]*)\.tar\.gz
debian/compat 0000644 0000000 0000000 00000000002 10752120126 010360 0 ustar 5