跳转到主要内容

简化IPython集群的启动和使用,支持多个调度器。

项目描述

https://travis-ci.org/roryk/ipython-cluster-helper.svg https://zenodo.org/badge/3658/roryk/ipython-cluster-helper.svg

使用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)

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

ipython-cluster-helper-0.6.4.tar.gz (22.8 kB 查看哈希值)

上传时间 源代码

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面