问题标签 [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 投票
0 回答
115 浏览

python-2.7 - 使用 Windows 10 在 python 2.7.13/14 上的 pathos cpickle 错误

基于使用 pathos 和 dill 的示例多进程,我遇到了 cPickle 错误。我像www3cam那样做;加上一点点……通过删除 pathos、dill、multiprocess 和 pyreadline。然后pip install pathos --no-cache-dir小心地删除上面提到的那些侧包后点击。全新安装、冷重启 PC 以及稍后更新 Anacoda2……装有 cPickles 的罐子……还在,Frank Zappa 继续唱着他的“Titties and Beer”歌曲。

修改后的代码1

也许应该像这里的示例“捕获和打印 PyQt5 回溯?

下面的代码片段让我思考和好奇是否必须为莳萝做类似的事情?

最新错误:

文件“c:\python\anac2\lib\site-packages\pathos\multiprocessing.py”,第 137 行,在地图中 return _pool.map(star(f), zip(*args)) # chunksize File “c:\ python\anac2\lib\site-packages\multiprocess\pool.py”,第 251 行,在 map 中返回 self.map_async(func, iterable, chunksize).get() 文件“c:\python\anac2\lib\site- packages\multiprocess\pool.py",第 567 行,在 get raise self._value cPickle.PicklingError: Can't pickle : attribute lookup builtin .function failed

有关此错误的更多信息位于:我的 cPickle 转储

0 投票
2 回答
206 浏览

python - 类中的 Pathos 多处理产生乱码的标准输出

我正在尝试在我编写的类中使用多处理来加速计算。我正在使用 pathos.multiprocessing 和 dill,并在 ProcessingPool 上使用地图。我已经在控制台中测试了多处理的功能,它按预期执行。我遇到的问题是,当我尝试在我的代码中实现它时,只要它调用 pool.map 我正在使用的终端就会开始吐出荒谬的废话。输出可以识别为来自代码,但我不知道它是如何打印的。其中一些来自我在下面定义的方法,其中包括当前日期时间。胡说八道,我看到它正在打印当前时间,在调用 pool.map 之后,所以这不仅仅是重复打印的东西,它是新的输出。

My_func 比我下面的要复杂一些,但作为第一步,我将其更改为下面写的字面意思,但问题仍然存在。

此外,Ctr-C 确实会触发 KeyboardInterrupt,但不会完全停止程序。我在 Windows 10 上使用 Visual Studio 和 python 2.7.13。

0 投票
1 回答
1123 浏览

python-3.x - Python pathos 进程池非守护进程?

如何在 python3 中使用 pathos 而不是 multiprocessing 模块实现非守护进程?

更具体地说,我指的是: Python Process Pool non-daemonic?

这篇文章的答案是通过多处理模块实现非守护进程。不幸的是,这个模块不允许在其他对象中腌制 lambda 函数,但 pathos 在 Python 2 中可以:

输出:

在 Python 3 中,pathos 模块相对于 Python 2 发生了变化,例如 pathos.multiprocessing.Pool.Process 不再是一个类,而是一个函数,因此不能再将它用于继承(见上文)。- 我缺少任何悲伤的文档吗?

如何使上述代码在 Python 3 中的 pathos 中工作?

作为上述特定示例的一种解决方法,可以简单地回退到多处理 NoDaemonPool 实现,并为守护程序子进程使用 pathos:

然而,这种变通方法不是一个解决方案,因为 (i) 它同时导入了 pathos 和 multiprocessing,更重要的是 (ii) 它不能腌制,例如,如果 myproc 被定义为

非常感谢,最好的,塞巴斯蒂安

0 投票
1 回答
2187 浏览

python-3.5 - pathos ImportError: __import__ not found

我在 Linux 上运行以下代码 - 在虚拟环境中使用 Python 3.5 的 Ubuntu,并收到以下错误。它适用于线程和列表理解部分,但我在让多处理工作时遇到问题。

这是代码,它适用于线程池,并且适用于列表理解

0 投票
1 回答
5766 浏览

python - Python 多处理窗口和 jupyter

我正在尝试使用pathos包运行一些多处理例程。这是我的代码:

我正在尝试在 Win 10 上运行它并使用 Jupyter 笔记本。

代码未运行并生成以下错误:

此代码在 Ubuntu 16.04 上运行良好。关于如何修复它的任何建议?

0 投票
0 回答
780 浏览

python - 用完 RAM python - 它去哪里了

这是我的大概工作流程

它生成以下输出

然后错误:

some_function进行一些次要处理,并且不会创建任何可以挂在内存中的全局变量。

我不明白为什么可用内存量正在减少以及为什么内存不足?

0 投票
0 回答
214 浏览

python - 优化:使用 pathos 多处理将大数组传递给映射的正确方法

我需要对大型数组的元素执行一个函数,并且我想使用多处理优化代码,以便我可以利用超级计算机上的所有内核。

这是我在这里提出的问题的后续行动。

我使用了代码:

如果我导入并使用 40*40*40 数组,那么它只需要 8 秒的挂墙时间和 < 3 分钟的 cpu 时间。

但是,导入和使用 100*100*100 数组意味着代码不会在超过 5 小时的 cpu 时间或 10 分钟的 walltime,甚至超过 1 小时的 walltime 内完成运行。

我猜想通过 map 传递这么大的数组有问题,但我还没有找到解决方案。使用 CProfile 问题似乎是

“thread.lock”对象的“获取”方法

将函数应用于大量元素的正确方法是什么?

请注意,我不能简单地将数组分成几部分,因为数组中每个元素的函数值也取决于该元素周围的值。

0 投票
0 回答
198 浏览

python-2.7 - Pathos ThreadPool() 返回无序序列

我正在为我的机器学习预测一些数据。然后,我使用 pathos ThreadPool 同时预测多个数据。例子

当我使用 ThreadPool().map(predict,data) 它返回错误的 json 序列:

有没有办法管理序列?

0 投票
2 回答
6077 浏览

python - pathos:并行处理选项 - 有人可以解释其中的差异吗?

我正在尝试在 python 下运行并行进程(在 ubuntu 上)。

我开始使用多处理,它适用于简单的示例。
然后出现了泡菜错误,所以我切换到悲情。我对不同的选项有点困惑,所以写了一个非常简单的基准测试代码。

我得到大约
- 0.001s 使用纯串行代码,没有并行,
- 0.100s 使用multiprocessing选项,
- 0.100s 使用pathos.multiprocessing
- 4.470s 使用pathos.pools
-AssertionError错误pathos.parallel

我从http://trac.mystic.cacr.caltech.edu/project/pathos/browser/pathos/examples.html复制了如何使用这些不同的选项

我知道对于这样一个简单的示例,并行处理比普通的串行代码要长。我不明白的是悲情的相对表现。

我检查了讨论,但不明白为什么pathos.pools会这么长,以及为什么会出错(不确定最后一个选项的性能如何)。

我还尝试了一个简单的平方函数,甚至pathos.multiprocessingmultiprocessing

有人可以解释这些不同选项之间的区别吗?

此外,我在远程计算机上运行该选项,运行centOS pathos.multiprocessing,性能multiprocessing.

根据租用计算机的公司的说法,它应该像家用计算机一样工作。我知道,如果没有更多关于机器的详细信息,可能很难提供信息,但如果您对它的来源有任何想法,那将有所帮助。

0 投票
1 回答
754 浏览

python - 有没有办法知道一个 pathos/multiprocessing worker 已经完成了?

我想知道工人什么时候完成,以便我可以释放资源作为任何工人的最后行动。或者,我也可以在主进程上释放这些资源,但我需要在每个工作人员之后一个一个地释放这些资源(与在所有工作人员完成后释放一次相反)。

我正在运行我的工作人员,跟踪进度和使用的 PID:

由于负载平衡,很难知道哪个工作将是工作人员的最后一个工作。有什么方法可以知道一些工人已经不活跃了?

我正在使用 pathos 0.2.0 版。