python统一多处理并行函数
pyumpf的Python项目详细描述
python统一的多处理并行函数
这是一个小型库,旨在将标准库map/reduce函数组合在一起 使用标准库中的多处理模块和pp模块(www.parallelpython.com)。
每个人都有自己的利基,也有自己的优势和劣势。map/reduce函数 在标准库中有利于实现一个功能范例,但是受到gil的限制。 一次只运行一个任务。多处理模块适用于具有多个 CPU,但调试和使用可能会很困难。pp模块非常适合集群,但更重要的是 很难调试和使用。另外,所有这些都有不同的api,因此不能直接替换。
pyumpf可以通过umpf.map和umpf.reduce提供一个统一的接口来解决这个问题,这个接口可以很容易地 扩展为在需要时使用多处理或pp,但也折叠为的内置map/reduce 更简单的调试。
要安装:python setup.py install
例如,请参见umpf_test.py注意,此示例使pp的性能较差。这是因为 它运行在一台机器上,这个例子太小,无法充分利用并行性。 理想情况下,每个任务都应该运行几秒钟,并且具有容易pickle的参数并返回 价值观。
默认情况下,umpf默认为pythons内置的map/reduce。这些是单螺纹的。
要使用多处理,请执行以下操作:
import umpf import multiprocessing as mp umpf.Hub.pool = mp.Pool()
要使用并行python,请执行以下操作:
import umpy import pp umpy.Hub.pool = pp.Server()