问题标签 [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.

0 投票
0 回答
140 浏览

python - 扩展 IPython 任务调度程序以实现自定义负载平衡

我希望能够为使用 TaskScheduler 的 IPython 并行 LoadBalancedView 实现我自己的负载计算方案。

我正在浏览源代码,这看起来像是一个可能的候选人:

https://github.com/ipython/ipython/blob/master/IPython/parallel/controller/scheduler.py#L604

我不认为我的问题像在这里定义不同的方案(例如 LRU)那么简单,因为我想根据作业类型更改每个作业的负载值。(我可能还需要在这里扩展 Job 以添加一些关于作业类型的元数据以计算负载)。

知道我怎样才能最好地做到这一点吗?我是 iPython 的新手。

0 投票
1 回答
91 浏览

python - IPython 并行 LoadBalancedView 任务分配细节

我有一些关于 IPython 并行LoadBalancedView类的问题,我在文档中找不到这些问题。

  1. LoadBalancedView 如何处理节点进入和退出池?它会重新计算负载并重新分配吗?否则,一旦节点加入较旧的节点,仍然会备份任务。
  2. 将任务添加到池中时,是根据负载立即分配任务还是在节点完成任务后“释放”后立即分配任务?我只是好奇绑定分配何时发生,或者是否由于某些节点更快等原因一直在重新洗牌。

谢谢!

0 投票
0 回答
399 浏览

python - 无法在 ipython 集群引擎中导入 numba?

我想在使用自定义 numba-fied 函数快速运行的 IPython 集群上运行计算。我尝试使用对象的sync_imports方法来同步导入dview。问题是引擎似乎没有正确加载 numba,而 numpy 被导入就好了......这是一个指向问题的简短“最小”代码:

当我运行这段代码时,在 numpy 导入之后发生了一种死锁,过了一会儿我得到了这个错误:

有谁知道导致这种行为的原因?

0 投票
1 回答
229 浏览

ipython - 将代码从本地导入到所有远程引擎

我正在并行化 sklearn 网格搜索,扫描三个参数,但我在重构项目以使用 ipython.parallel 时遇到了麻烦。我目前的想法是创建一个简单的函数:

  • 接受一个岭参数
  • 下载数据集以训练模型
  • 训练模型,在 S3 上保存分数和生成的模型?

作为一种并行化网格搜索的方法,这是否有意义?

如果是这样,有没有办法在我的本地机器和远程引擎之间共享代码?

例如,我有一个包含许多不同模块的源代码树:

使用 StarCluster,我在 EC2 上部署了一个集群,并希望并行化在 ridge 参数上运行 sklearn gridsearch 的过程。但是,我没有发现与远程引擎共享所有本地模块的简单方法。是否有这样做的模式,或者我应该如何重组我的思维?

0 投票
0 回答
416 浏览

ipython - 使用 StarCluster 时 IPython 笔记本中的 IOError 错误消息

我正在运行一个小型 StarCluster 并使用它来运行 IPython Notebook。每次我在笔记本中编写的代码中出现错误时,都会在笔记本输出的末尾添加以下错误消息:

除此之外,它似乎运行良好,但我不知道为什么会发生这种情况/我如何才能更多地了解它为什么这样做

0 投票
1 回答
652 浏览

python - IPython 并行 LoadBalancedView GIL

我使用来自 Ipython.parallel 的 loadbalancedview 在可迭代对象上调用函数,即

func 调用 func2 的事实是否使 func 不能并行执行(即 GIL 是否发挥作用?)我假设当您调用 map 时,每个集群节点都会获得 func 的副本,但它们是否也会获得 func2 的副本. 此外,我使用 functools.partial 的事实是否会导致任何问题?

0 投票
1 回答
763 浏览

python - IPython Cell Magic 在客户端和所有引擎中运行此单元

在用于并行执行的 IPython 中,我们有多个引擎。作业被分派给他们使用:%%pxcell magics 在客户端中设置环境,然后 DirectView map_sync用于运行各种实验。

实验返回结果的命名元组。因此,这个命名元组需要在客户端和每个引擎中声明。

目前,每次我运行它时,我都会运行它两次,一次有%%px,一次没有。

是否有一个标志%%px可以使它在本地和每个引擎中运行?

0 投票
0 回答
139 浏览

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()

0 投票
1 回答
237 浏览

python - 并行 IPython 检测列表理解中的闭包

我想并行化一些python代码IPython.parallel并遇到问题,即IPython在执行并行函数时检测到闭包。

我的环境通过以下方式初始化:

函数定义为:

执行此功能为

产生错误

将列表推导式替换i为文字数字 orj不会产生错误,但这不是合适的解决方案,因为在实际代码i中将是一个循环变量。

有没有办法让这个列表理解工作?

0 投票
1 回答
316 浏览

ipython - 关闭 SSH 会话后 ipengine 不继续运行

我正在尝试使用ipcontrollerand运行几个远程服务器ipengine。因此,我在“master”节点上启动了一个进程ipcontroller,最后我将在该节点上运行 ipython notebook。

得益于大量可用的教程,在远程主机上运行ipengine顺利。ipenigne根据每个主机的 CPU 数量运行后,我使用disown -a以避免ipengine在后台关闭运行。但是由于某种原因,它们在关闭 SSH 会话后不会继续运行。我什至使用过nohup命令,但又是类似的行为。我将不胜感激有关此问题的任何意见。