简化IPython集群的启动和使用,支持多个调度器。
项目描述
使用IPython在集群上快速轻松地并行化Python函数,支持多个调度器。优化IPython默认设置以处理更大的集群和并发进程。
示例
假设您编写了一个程序,该程序接受几个文件作为参数并在它们上执行某种长时间运行的计算。您原始的实现使用了一个循环,但它太慢了
from yourmodule import long_running_function
import sys
if __name__ == "__main__":
for f in sys.argv[1:]:
long_running_function(f)
如果您有权访问支持的调度器之一,可以使用ipython-cluster-helper轻松地将您的程序并行化到5个节点上
from cluster_helper.cluster import cluster_view
from yourmodule import long_running_function
import sys
if __name__ == "__main__":
with cluster_view(scheduler="lsf", queue="hsph", num_jobs=5) as view:
view.map(long_running_function, sys.argv[1:])
就这样!无需设置。
为了测试目的运行本地集群,请将run_local作为cluster_view函数的额外参数传递
with cluster_view(scheduler=None, queue=None, num_jobs=5,
extra_params={"run_local": True}) as view:
view.map(long_running_function, sys.argv[1:])
工作原理
ipython-cluster-helper创建一个可丢弃的并行IPython配置文件,启动一个集群并返回一个视图。程序退出时,它会关闭集群并删除可丢弃的配置文件。
支持的调度器
平台LSF(“lsf”)、Sun Grid Engine(“sge”)、Torque(“torque”)、SLURM(“slurm”)。
致谢
这个项目的部分灵感来自bcbio-nextgen。
贡献者
Brad Chapman (@chapmanb)
Mario Giovacchini (@mariogiov)
Valentine Svensson (@vals)
Roman Valls (@brainstorm)
Rory Kirchner (@roryk)
Luca Beltrame (@lbeltrame)
James Porter (@porterjamesj)
Billy Ziege (@billyziege)
ink1 (@ink1)
@mjdellwo
@matthias-k
Andrew Oler (@oleraj)
Alain Péteut (@peteut)
Matt De Both (@mdeboth)
Vlad Saveliev (@vladsaveliev)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
ipython-cluster-helper-0.6.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 322b32c7252498ffb48eae2f81617a501dc8a273d84ceeb8daebf6493ba7d5d0 |
|
MD5 | 3f1dc937c0bfe18d03265c25aa282cea |
|
BLAKE2b-256 | 5a589a63fa4168eb27801317dba2ccbe578da8e93f3b44e2b2c4fc59b4b3a9d0 |