简化ipython集群启动并用于多个调度程序。
ipython-cluster-helper的Python项目详细描述
使用ipython在 群集,支持多个调度程序。优化ipython默认值为 处理更大的集群和同步进程。
示例
假设您编写了一个程序,它以几个文件作为参数 并对它们执行某种长时间运行的计算。你的 最初的实现使用了循环,但速度太慢了
fromyourmoduleimportlong_running_functionimportsysif__name__=="__main__":forfinsys.argv[1:]:long_running_function(f)
如果您可以访问其中一个受支持的调度程序,则可以轻松地 使用ipython cluster helper在5个节点上并行化程序
fromcluster_helper.clusterimportcluster_viewfromyourmoduleimportlong_running_functionimportsysif__name__=="__main__":withcluster_view(scheduler="lsf",queue="hsph",num_jobs=5)asview:view.map(long_running_function,sys.argv[1:])
就这样!无需安装。
要运行本地群集以进行测试,请将run\u local作为额外的 群集查看功能的参数
withcluster_view(scheduler=None,queue=None,num_jobs=5,extra_params={"run_local":True})asview:view.map(long_running_function,sys.argv[1:])
工作原理
ipython cluster helper创建一个一次性并行ipython概要文件, 启动群集并返回视图。在程序退出时它关闭 群集并删除一次性配置文件。
支持的调度程序
平台LSF(“LSF”),太阳电网发动机(“SGE”),扭矩(“扭矩”),泥浆(“泥浆”)。
学分
很酷的部分是从bcbio-nextgen上撕下来的。
贡献者
- 布拉德·查普曼(@chapmanb)
- 马里奥·乔瓦奇尼(@mariogiov)
- 瓦伦丁·斯文森(@vals)
- 罗马山谷(头脑风暴)
- Rory Kirchner(@roryk)
- Luca Beltrame(@lbeltrame)
- 詹姆斯·波特(@porterjamesj)
- 比利·齐格(@billy ziege)
- ink1(@ink1)
- @MJDELLWO
- @马提亚斯-K
- 安德鲁·奥勒(@oleraj)
- 阿兰·佩特(@peteut)
- 两个都是matt de(@mdeboth)
- 弗拉德·萨维列夫(@vlad saveliev)