dis.co多处理python包
discomp的Python项目详细描述
discomp
dis.co多处理python包
discomp是一个使用dis.co服务分发计算作业的包。 它引入了一个类似于多处理python包的api。
有关dis.co本身的更多信息,请查看Dis.co homepage
概述
类discomp.process(名称,目标,参数=)
实例化process类将创建一个新作业,其中一个任务处于“等待状态”,并将其提交给dis.co computing服务
名称
工作的名字。 名称是仅用于标识目的的字符串。它不必是唯一的。
目标
目标是要由正在运行的作业调用的可调用对象。
参数
args是目标调用的参数元组。默认情况下,不向目标传递任何参数。
开始()
开始在其中一台计算机上运行作业。
每个进程对象最多只能调用一次。
加入(超时=无)
join阻塞调用线程,直到作业完成。作业成功完成后,将结果文件下载到新目录中,并在工作目录中指定作业的名称。
当前,超时必须始终为“无”。
一个过程最多应该一次加入。 调用join时可能已经完成了一项工作。但是,只有在调用join时才会下载结果。
类discomp.pool(进程=无)
通过调用pool类的map()方法,实例化pool类将创建一个对象,稍后用于运行在许多计算机中执行一个或多个任务的作业。 pool类不接受任何参数,并且对用于运行作业任务的计算机数没有控制权。 机器的数量是单独确定的。
映射(func,iterable,chunksize=none)
- pool.map将同一函数应用于多组参数。
- 它创建一个作业,将每组参数作为单独的任务在“池”中的一台计算机上运行。
- 它会阻塞,直到结果就绪(即所有作业的任务都完成)。
- 结果将按原始顺序返回(与参数的顺序相对应)。
- 当作业在工作目录中名为函数名的目录下完成时,将自动下载与作业相关的文件(除了用于运行任务的脚本、输入、配置文件)。
- 应该为函数的参数提供iterable。
星图(func,iterable,chunksize=none)
- starmap与pool.map类似,但它可以将同一函数应用于多个参数集。
- 应该为函数的参数提供iterable。iterable的元素也应该是作为参数解包的iterable。 因此,[(1,2),(3,4)]的一个iterable导致了[func(1,2),func(3,4)]。
安装:
- 安装dis.co cli:
curl https://s3.us-east-2.amazonaws.com/disco.cli/install.sh | sh
注册dis.co仪表板:
安装discomp软件包:
pip install discomp
或
pip3 install discomp
用法:
- 您继续编写python脚本,就像在使用多处理包一样,但不是从多处理导入流程和池模块,而是从discomp导入它们。
- 使用dis.co帐户的用户名和密码设置环境变量(请参阅下面的示例)。
示例:
使用process类的一个简单示例:
importosfromdiscompimportProcessos.environ['DISCO_LOGIN_USER']='username@mail.com'os.environ['DISCO_LOGIN_PASSWORD']='password'deffunc(name):print('Hello',name)p=Process(name='MyFirstJobExample',target=func,args=('Bob',))p.start()p.join()
输出:
使用pool类的基本示例:
importosfromdiscompimportPoolos.environ['DISCO_LOGIN_USER']='username@mail.com'os.environ['DISCO_LOGIN_PASSWORD']='password'defpow3(x):print(x**3)return(x**3)p=Pool()results=p.map(pow3,range(10))print(results)
输出:
联系我们:
有关详细信息,请随时与dis.co联系