python分布式计算框架-Parallel Python

本文翻译自:https://www.parallelpython.com/

概述

  1. Parallel Python是一个python模块,提供了在SMP(具有多个处理器或核心的操作系统)和群集上并行执行python代码的机制。
  2. Parallel Python具有轻量级、易安装、易与其他python软件集成的特性。
  3. Parallel Python是用纯Python语言写的开源跨平台的模块。

特征

  • Python代码在集群或SMP上并行执行。
  • 是一种易于理解且容易实现的基于任务的并行化技术(容易以并行的方式转换成串行应用程序)。
  • 自动检测最佳配置(工作进程数的默认值为处理器的个数)。
  • 处理器动态分配(工作进程数可以在程序运行时进行更改)。
  • 具有相同功能的后续作业的开销较低(实现透明缓存以减少开销)。
  • 动态负载均衡(任务被分配给运行中的处理器)。
  • 容错机制(如果其中一个计算节点的任务失败,则将任务重新分配到其他节点上)。
  • 自动发现计算资源。
  • 动态分配计算资源(容错机制和自动发现计算资源两种特征决定的)。
  • 基于SHA的网络连接身份验证。
  • 具有跨平台的可移植性和互通性(Windows,Linux,Unix,Mac OS X)。
  • 具有跨体系架构的可移植性和互通性(x86,x86-64等)。
  • 开源。

动机

    如今,用python写的应用种类越来越丰富包括业务逻辑、数据分析、科学计算,这与市场上多核多线程计算机和群集的广泛使用一起催生了并行执行python代码的需求。

    为SMP计算机编写并行代码最简单有效地方式是使用线程,不过,好像如果在程序中使用'thread' 或 'threading'模块,则就不可以并行的执行python字节码了(虚拟机为Cpython的版本),原因是Python解释器是由全局解释器锁(GIL)控制的,GIL是一个互斥锁,它只允许一个线程来控制Python解释器,因此,即使在SMP计算机上,此锁一次也只能执行一条python字节码指令,也即,在任意时刻,只有一个线程在解释器中运行。

    Parallel Python模块克服了上述的限制并且提供了一种简单的方式去写并行的python程序。ppsmp在内部使用进程和IPC(进程间通信)来组织并行计算。 并行计算的所有细节和复杂性都得到了充分解决,您的应用程序仅负责提交任务并获取计算结果即可。

    值得一提的是,用Parallel Python编写的软件甚至可以直接通过局域网或Internet连接的许多计算机上并行工作。 跨平台的可移植性和动态负载平衡使Parallel Python即使在异构平台和多平台集群上也可以有效地并行化计算。

安装

    任意平台:下载模块并将其解压缩到本地目录。 运行安装脚本:python setup.py install

    Windows:下载并执行Windows安装程序二进制文件

参考文档

样例

Parallel Python用法示例

下载

Parallel Python下载

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值