问题标签 [pathos]

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 投票
1 回答
1725 浏览

python - 如何运行嵌套的、分层的 pathos 多处理地图?

在构建了关于 dill 序列化/酸洗代码的重要部分之后,我还尝试使用 pathos 多处理来并行化我的计算。Pathos 它是莳萝的自然延伸。

尝试运行嵌套时

在另一个里面ProcessingPool().map,然后我收到:

例如:

产量

我尝试使用amap(...).get()但没有成功。这是在pathos 0.2.0上。

允许嵌套并行化的最佳方法是什么?

更新

在这一点上我必须诚实,并承认我已经"daemonic processes are not allowed to have children"从悲痛中删除了这个断言。我还构建了一些级联KeyboardInterrupt到工人和工人的东西......下面的部分解决方案:

似乎可以在控制台和 IPython 笔记本(带有停止按钮)上工作,但不确定在所有极端情况下它是否 100% 正确。

0 投票
0 回答
760 浏览

python - Pathos、Dask、futures,哪一种用于并行集群应用?

我在这里很困惑。我有一个 CPU 受限的应用程序,所以我开始使用多进程实现并行化来克服 GIL 问题。

我第一次尝试使用multiprocessingfutures但遇到了酸洗问题,所以我选择了pathos使用哪个dill作为pickle替代品。

一切正常,但我想知道我是否正在使用最“面向未来”的解决方案。我也见过dask,但我不知道它是否会在酸洗类问题的情况下起作用(参见Python: (Pathos) Multiprocessing vs. class methods)。从文档中,它使用了futures所以我假设它不会完成这项工作。

其次,我希望能够一次使用两台服务器,并且我已经看到pathos(也dask)可以做到这一点,但我不明白这是如何工作的。这个答案https://stackoverflow.com/a/26948258/6522112仅显示如何使用一台服务器。使用2个或更多怎么样?我找不到任何关于此的示例,尽管如包装信息所述,这似乎是可能的。

谢谢你的帮助!

0 投票
1 回答
666 浏览

python - Pathos 处理池递归限制

我有一个任务要与悲情并行。当我运行非并行版本时,它运行得很好。但是,运行 1 个进程的 pathos 池会导致 RuntimeError:超出最大递归深度。

例如:

在我尝试调试为什么会发生此错误时,我尝试映射一个对象的列表。这无需多处理即可工作

t1.getValue要应用的昂贵功能在哪里。我有一个完整的列表,这些函数适用于相同的两个参数。这是并行处理的用武之地。但是以下引发错误:

有趣的是它getValue不是递归的。我知道这有时会在达到堆栈限制时发生。

如何确定getValue导致错误的哪一部分导致多处理工作?我被卡住了,因为我不知道如何从这一点上调试它。将数据传递给进程时,这是否可能实际上是由酸洗错误引起的?getValue确实在幕后处理了一些大型结构。

0 投票
1 回答
235 浏览

python-2.7 - 使用 pathos.multiprocessing 时出现 cPickle 错误?

我正在尝试使用多处理来加快 pandas excel 的阅读速度。但是,当我使用多处理时,我收到错误 cPickle.PicklingError: Can't pickle : attribute lookup __builtin__.function failed

当我尝试运行以下命令时: import dill from pathos.multiprocessing import ProcessPool

pathos.multiprocessing 不是旨在解决这个问题吗?我在这里忽略了什么吗?

编辑:完整的错误代码跟踪到

0 投票
0 回答
48 浏览

python-2.7 - cPickle 错误与 pathos 多处理?

我正在尝试使用多处理来加快 pandas excel 的阅读速度。但是,当我使用多处理时,我收到错误 cPickle.PicklingError: Can't pickle : attribute lookup __builtin__.function failed

当我尝试运行以下命令时: import dill from pathos.multiprocessing import ProcessPool

pathos.multiprocessing 不是旨在解决这个问题吗?我在这里忽略了什么吗?

编辑:悲情作者说它不是重复的。glob.glob(/*) 是我没有提供存储文件的目录,因为它与问题无关。

0 投票
1 回答
612 浏览

linux - Pathos:在 Linux 上强制生成

我有可以在 Windows 上运行的 Python 代码,但是在 Linux 上运行时它只是挂起。我正在使用 JPype,所以我怀疑多个共享进程尝试使用同一管道访问 Java 可能存在一些问题(创建了不同的进程但挂在 JPype 行)。有什么方法可以强制在 Pathos 中生成以复制 Windows 实现?(例如,常规多处理库中的 set_start_method 或 get_context?)

谢谢。

0 投票
1 回答
1477 浏览

python - 将python多处理与类函数一起使用时出现酸洗错误

我有三个脚本,scheduler.py这是一个基于multiprocessing.Processand的并行任务运行multiprocessing.Pipe器,第二个脚本是simulation.pyx一个包含一些我想通过并行执行的类和函数的脚本scheduler.py,最后是一个小的主脚本,我在其中创建一个实例并行化类scheduler.py,将它传递给类simulation.pyx并运行整个事情。

当目标并行函数位于顶层时,simulation.pyx一切正常,但是一旦我尝试使用scheduler.py类函数,simulation.pyx就会出现酸洗错误。

由于代码有几千行,我只给出一些概念代码:

small_main_script.py



simulation.pyx

问题是,如果我使用无用的虚拟函数,比如

并将它放在顶层,即在类之外,并行化工作正常,但是一旦我把它放在类中,Main我就会得到一个酸洗错误。如果我使用在类中定义的真实目标函数Main并且我不想将其移动到顶层,我会得到同样的错误。以下是我sleep(self,job)在类中使用虚拟函数时发生的情况Main。当它在课堂之外时,它工作得很好。

我正在使用 Python 2.7

更新

我设法进一步隔离了这个问题。使用第三方包时pathos multiprocessing,我可以腌制类函数。现在的问题似乎是在使用作为类实例的函数参数时出现错误。

0 投票
0 回答
709 浏览

python - 使用 pathos.multiprocessing 的 AssertionError

我正在使用python 2.7。这是我的一些代码:

但是,当我运行它时,我得到一个空白AssertionError

此错误似乎类似于此问题中描述的错误,尽管那里的修复更为明显。我运行了上面的代码删除pool.close()pool.join()但得到了相同的结果。

想法?

0 投票
0 回答
431 浏览

python - 如何使用嵌套池将所有 cpus 与 pathos 一起使用

回答有关用于多处理的嵌套池的问题:

https://stackoverflow.com/a/40852258/6522112

我提出的代码没有按照我想要的方式响应。也就是说 ifThreadingPool(8)ProcessingPool(3),我预计进程数是 24,但我只有 3 个!所以我继续使用这个https://stackoverflow.com/a/8963618/6522112,它通过将守护进程标志设置为 False 来允许嵌套进程池。这非常有效,但是:

  1. 只得到 3 个进程而不是 24 个进程是否正常?
  2. 我用这个黑客做对了吗?
  3. 最终目标是使用集群上的多个节点来执行此操作。这会阻止它吗?
  4. 我不确定map要考虑的类型,但似乎只有imap组合才能发挥作用。有什么见解吗?

这是使用pathos来自@MikeMcKerns 而不是简单的多处理的修改后的代码:

如果你想使用它要小心,你必须终止内部池,否则你会得到僵尸:

0 投票
1 回答
1749 浏览

python - 当我使用 pathos 时出现 importerror

我尝试使用 pathos 进行多处理,但是当我启动该
过程时,我得到了ImportError:no module named pp,请帮助我。我从 github 下载 pathos,通过 python setup.py 安装python version 2.7.8,,