Python并行编程之 Parallel Python文档页

Parallel Python文档页

原文: http://www.parallelpython.com/content/view/15/30/

目录

1   PP 1.4.2 模块API

class

Server

class Server

并行Python SMP执行服务器类

方法定义:

__del__(self)

__init__(self,ncpus=’autodetect’,ppservers=(),secret=None,loglevel=30,logstream=<open file ‘<stderr>’,mode ‘w’>)

创建服务器实例

ncpus – 本机要启动的工作进程数量,如果省略则为处理器数量

ppservers – 可用的PP服务器

secret – 网络连接密码,省略则使用缺省密码,简易在所有连接中使用一个自定义密码

loglevel – logging模块的日志级别

logstream – 日志目标

使用ncpus=1则所有任务串行执行。要获取最好性能则使用’autodetect’值,或手动设置CPU数量。

get_ncpus(self)

获取工作进程数量

get_stats(self)

返回所有工作执行状态字典

print_stats(self)

打印工作执行状态,用于集群测试标准。

set_ncpus(self,ncpus=’autodetect’)

设置工作进程数量

ncpus – 工作进程数量,如果省略则设置为系统处理器数量

submit(self,func,args=(),depfuncs=(),modules=(),callback=None,callbackargs=(),group=’default’,globals=None)

提交函数到执行队列

func – 需要执行的函数

args – func函数的执行参数tuple

depfuncs – 待执行函数需要调用的函数tuple

modules – 需要被import导入的模块名字tuple

callback – 在函数执行完成之后的回调函数,参数为callbackargs+(result,)

callbackargs – 附加的回调函数参数

group – 工作组,用于当 wait(group) 被调用,等待工作组全部工作结束时

globals – 字典,所有模块和函数共享与导入的,例如 globals=globals()

wait(self,group=None)

等待工作组中所有工作结束,如果忽略group参数则等待所有工作结束

数据和其他属性:

default_port = 6000

default_secret = ‘epo20pdosl;dksldkmm’

Data

copyright = ‘Copyright (c) 2005-2007 Vitalii Vanovschi. All rights reserved’

version = ‘1.4.2’

2   快速开始,SMP

  1. 导入pp模块:

    import pp
  2. 启动PP执行服务器,按照处理器数量指定工作进程数:

    job_server=pp.Server()
  3. 提交需要进行并行计算的任务:

    f1=job_server.submit(func1,args1,depfuncs1,modules1)
    f2=job_server.submit(func2,args2,depfuncs2,modules2)
    f3=job_server.submit(func3,args3,depfuncs3,modules3)
    # ...etc...
  4. 取回结果:

    r1=f1()
    r2=f2()
    r3=f3()
    # ...etc...

查找如何使任务并行化,参考例子 例子

3   快速开始,集群

  1. 在各个计算节点上启动并行Python执行服务器:

    node-1> ./ppserver.py
    node-2> ./ppserver.py
    node-3> ./ppserver.py
  2. 导入pp模块:

    import pp
  3. 创建集群中计算节点列表(就是运行ppserver.py的机器):

    ppservers=("node-1","node-2","node-3")
  4. 使用计算节点列表和其他参数来启动执行服务器:

    job_server=pp.Server(ppservers=ppservers)
  5. 提交并行执行任务,同SMP的例子

  6. 取回结果,同SMP的例子

4   高级指南,集群

  1. 在各个计算节点上启动并行Python计算服务器,监听本地35000端口,仅接受密码正确的连接:

    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"
  2. 导入pp模块,同SMP例子

  3. 创建集群中计算节点列表,就是运行ppserver.py的机器:

    ppservers=("node-1:35000","node-2:35000","node-3:35000")
  4. 启动pp执行服务器,同时指定集群列表和验证密码:

    job_server=pp.Server(ppservers=ppservers,secret="mysecret")
  5. 提交并行计算任务,同SMP例子

  6. 取回结果,同SMP例子

  7. 显示执行状态:

    job_server.print_stats()

5   命令行参数,ppserver.py

Usage: ppserver.py [-hd] [-i interface] [-p port] [-w nworkers] [-s secret]
Options:
-h                 : 显示这个帮助信息
-d                 : 调试
-i interface       : 监听所用的网口
-p port            : 监听端口
-w nworkers        : 工作进程数量
-s secret          : 认证密码

Leave a Reply