问题标签 [ipython-parallel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 扩展 IPython 任务调度程序以实现自定义负载平衡
我希望能够为使用 TaskScheduler 的 IPython 并行 LoadBalancedView 实现我自己的负载计算方案。
我正在浏览源代码,这看起来像是一个可能的候选人:
https://github.com/ipython/ipython/blob/master/IPython/parallel/controller/scheduler.py#L604
我不认为我的问题像在这里定义不同的方案(例如 LRU)那么简单,因为我想根据作业类型更改每个作业的负载值。(我可能还需要在这里扩展 Job 以添加一些关于作业类型的元数据以计算负载)。
知道我怎样才能最好地做到这一点吗?我是 iPython 的新手。
python - IPython 并行 LoadBalancedView 任务分配细节
我有一些关于 IPython 并行LoadBalancedView
类的问题,我在文档中找不到这些问题。
- LoadBalancedView 如何处理节点进入和退出池?它会重新计算负载并重新分配吗?否则,一旦节点加入较旧的节点,仍然会备份任务。
- 将任务添加到池中时,是根据负载立即分配任务还是在节点完成任务后“释放”后立即分配任务?我只是好奇绑定分配何时发生,或者是否由于某些节点更快等原因一直在重新洗牌。
谢谢!
python - 无法在 ipython 集群引擎中导入 numba?
我想在使用自定义 numba-fied 函数快速运行的 IPython 集群上运行计算。我尝试使用对象的sync_imports
方法来同步导入dview
。问题是引擎似乎没有正确加载 numba,而 numpy 被导入就好了......这是一个指向问题的简短“最小”代码:
当我运行这段代码时,在 numpy 导入之后发生了一种死锁,过了一会儿我得到了这个错误:
有谁知道导致这种行为的原因?
ipython - 将代码从本地导入到所有远程引擎
我正在并行化 sklearn 网格搜索,扫描三个参数,但我在重构项目以使用 ipython.parallel 时遇到了麻烦。我目前的想法是创建一个简单的函数:
- 接受一个岭参数
- 下载数据集以训练模型
- 训练模型,在 S3 上保存分数和生成的模型?
作为一种并行化网格搜索的方法,这是否有意义?
如果是这样,有没有办法在我的本地机器和远程引擎之间共享代码?
例如,我有一个包含许多不同模块的源代码树:
使用 StarCluster,我在 EC2 上部署了一个集群,并希望并行化在 ridge 参数上运行 sklearn gridsearch 的过程。但是,我没有发现与远程引擎共享所有本地模块的简单方法。是否有这样做的模式,或者我应该如何重组我的思维?
ipython - 使用 StarCluster 时 IPython 笔记本中的 IOError 错误消息
我正在运行一个小型 StarCluster 并使用它来运行 IPython Notebook。每次我在笔记本中编写的代码中出现错误时,都会在笔记本输出的末尾添加以下错误消息:
除此之外,它似乎运行良好,但我不知道为什么会发生这种情况/我如何才能更多地了解它为什么这样做
python - IPython 并行 LoadBalancedView GIL
我使用来自 Ipython.parallel 的 loadbalancedview 在可迭代对象上调用函数,即
func 调用 func2 的事实是否使 func 不能并行执行(即 GIL 是否发挥作用?)我假设当您调用 map 时,每个集群节点都会获得 func 的副本,但它们是否也会获得 func2 的副本. 此外,我使用 functools.partial 的事实是否会导致任何问题?
python - IPython Cell Magic 在客户端和所有引擎中运行此单元
在用于并行执行的 IPython 中,我们有多个引擎。作业被分派给他们使用:%%px
cell magics 在客户端中设置环境,然后 DirectView map_sync
用于运行各种实验。
实验返回结果的命名元组。因此,这个命名元组需要在客户端和每个引擎中声明。
目前,每次我运行它时,我都会运行它两次,一次有%%px
,一次没有。
是否有一个标志%%px
可以使它在本地和每个引擎中运行?
python - IPython 并行编程依赖
我将 iPython 用于一些相对繁重的数值任务,其中的子集或多或少是令人尴尬的并行。这些任务具有非常简单的依赖关系,但我正在努力找出实现它们的最佳方法。基本问题是前面计算的结果必须用在后面的计算中,我想把这些任务单独提交给引擎。
基本上我有
我可以将事物重组为一些按顺序f_12()
调用的函数,f1
并将f2
两个输出作为元组返回(我希望主引擎能够访问所有结果)并异步提交它们,或者我可以使用并行映射f1
开,[in0a, in0b, ...]
但我强烈希望不进行这些重构中的任何一个。
所以我真正想知道的是如何使用view.apply_async()
,以便运行res2a=f2(res1a)
只会res1a=f1(in0a)
在运行后发生(对于 b、c、d、... 任务也是如此)。
基本上,我想使用阻塞apply_async
。使用负载平衡,它应该类似于
但是我如何使第二个明确地依赖于第一个呢?我需要一个with v.temp_flags(follow=res1a)
吗?但是那我需要res1a.get()
在通话中使用吗?这会阻止提交直到它返回吗?
或者,我将如何直接查看?如果我只是将所有“a”任务提交给同一个引擎,但使用,这会阻塞,甚至在返回之前v.apply_async(f2, res1a.get())
都不会提交。get()
python - 并行 IPython 检测列表理解中的闭包
我想并行化一些python代码IPython.parallel
并遇到问题,即IPython在执行并行函数时检测到闭包。
我的环境通过以下方式初始化:
函数定义为:
执行此功能为
产生错误
将列表推导式替换i
为文字数字 orj
不会产生错误,但这不是合适的解决方案,因为在实际代码i
中将是一个循环变量。
有没有办法让这个列表理解工作?
ipython - 关闭 SSH 会话后 ipengine 不继续运行
我正在尝试使用ipcontroller
and运行几个远程服务器ipengine
。因此,我在“master”节点上启动了一个进程ipcontroller
,最后我将在该节点上运行 ipython notebook。
得益于大量可用的教程,在远程主机上运行ipengine
顺利。ipenigne
根据每个主机的 CPU 数量运行后,我使用disown -a
以避免ipengine
在后台关闭运行。但是由于某种原因,它们在关闭 SSH 会话后不会继续运行。我什至使用过nohup
命令,但又是类似的行为。我将不胜感激有关此问题的任何意见。