Parallel Python 分布式计算模块

我要开发同款
欢哥2013年11月02日
155阅读

技术信息

授权协议
GPL

作品详情

ParallelPytho是Pytho进行分布式计算的开源模块,能够将计算压力分布到多核CPU或集群的多台计算机上,能够非常方便的在内网中搭建一个自组织的分布式计算平台。先从多核计算开始,普通的Pytho应用程序只能够使用一个CPU进程,而通过ParallelPytho能够很方便的将计算扩展到多个CPU进程中

示例代码:

#!/usr/bi/pytho#File:sum_primes.py#Author:VItaliiVaovschi#Desc:Thisprogramdemostratesparallelcomputatioswithppmodule#Itcalculatesthesumofprimeumbersbelowagiveitegeriparallel#ParallelPythoSoftware:https://www.parallelpytho.comimportmath,sys,timeimportppdefisprime():"""RetursTrueifisprimeadFalseotherwise"""ifotisistace(,it):raiseTypeError("argumetpassedtois_primeisotof'it'type")if<2:returFalseif==2:returTruemax=it(math.ceil(math.sqrt()))i=2whilei<=max:if%i==0:returFalsei+=1returTruedefsum_primes():"""Calculatessumofallprimesbelowgiveiteger"""retursum([xforxixrage(2,)ifisprime(x)])prit"""Usage:pythosum_primes.py[cpus][cpus]-theumberofworkerstoruiparallel,ifomitteditwillbesettotheumberofprocessorsithesystem"""#tupleofallparallelpythoserverstocoectwithppservers=()#ppservers=("10.0.0.1",)ifle(sys.argv)>1:cpus=it(sys.argv[1])#Createsjobserverwithcpusworkersjob_server=pp.Server(cpus,ppservers=ppservers)else:#Createsjobserverwithautomaticallydetectedumberofworkersjob_server=pp.Server(ppservers=ppservers)prit"Startigppwith",job_server.get_cpus(),"workers"#Submitajobofcalulatigsum_primes(100)forexecutio.#sum_primes-thefuctio#(100,)-tuplewithargumetsforsum_primes#(isprime,)-tuplewithfuctiosowhichfuctiosum_primesdepeds#("math",)-tuplewithmoduleameswhichmustbeimportedbeforesum_primesexecutio#Executiostartsassooasoeoftheworkerswillbecomeavailablejob1=job_server.submit(sum_primes,(100,),(isprime,),("math",))#Retrievestheresultcalculatedbyjob1#Thevalueofjob1()isthesameassum_primes(100)#Ifthejobhasotbeefiishedyet,executiowillwaithereutilresultisavailableresult=job1()prit"Sumofprimesbelow100is",resultstart_time=time.time()#Thefollowigsubmits8jobsadtheretrievestheresultsiputs=(100000,100100,100200,100300,100400,100500,100600,100700)jobs=[(iput,job_server.submit(sum_primes,(iput,),(isprime,),("math",)))foriputiiputs]foriput,jobijobs:prit"Sumofprimesbelow",iput,"is",job()prit"Timeelapsed:",time.time()-start_time,"s"job_server.prit_stats()#ParallelPythoSoftware:https://www.parallelpytho.com

功能介绍

Parallel Python是Python进行分布式计算的开源模块,能够将计算压力分布到多核CPU或集群的多台计算机上,能够非常方便的在内网中搭建一个自组织的分布式计算平台。先从多核计算开始,...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论