问题标签 [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.
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 转储。
python - 类中的 Pathos 多处理产生乱码的标准输出
我正在尝试在我编写的类中使用多处理来加速计算。我正在使用 pathos.multiprocessing 和 dill,并在 ProcessingPool 上使用地图。我已经在控制台中测试了多处理的功能,它按预期执行。我遇到的问题是,当我尝试在我的代码中实现它时,只要它调用 pool.map 我正在使用的终端就会开始吐出荒谬的废话。输出可以识别为来自代码,但我不知道它是如何打印的。其中一些来自我在下面定义的方法,其中包括当前日期时间。胡说八道,我看到它正在打印当前时间,在调用 pool.map 之后,所以这不仅仅是重复打印的东西,它是新的输出。
My_func 比我下面的要复杂一些,但作为第一步,我将其更改为下面写的字面意思,但问题仍然存在。
此外,Ctr-C 确实会触发 KeyboardInterrupt,但不会完全停止程序。我在 Windows 10 上使用 Visual Studio 和 python 2.7.13。
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 被定义为
非常感谢,最好的,塞巴斯蒂安
python-3.5 - pathos ImportError: __import__ not found
我在 Linux 上运行以下代码 - 在虚拟环境中使用 Python 3.5 的 Ubuntu,并收到以下错误。它适用于线程和列表理解部分,但我在让多处理工作时遇到问题。
这是代码,它适用于线程池,并且适用于列表理解
python - Python 多处理窗口和 jupyter
我正在尝试使用pathos包运行一些多处理例程。这是我的代码:
我正在尝试在 Win 10 上运行它并使用 Jupyter 笔记本。
代码未运行并生成以下错误:
此代码在 Ubuntu 16.04 上运行良好。关于如何修复它的任何建议?
python - 用完 RAM python - 它去哪里了
这是我的大概工作流程
它生成以下输出
然后错误:
some_function
进行一些次要处理,并且不会创建任何可以挂在内存中的全局变量。
我不明白为什么可用内存量正在减少以及为什么内存不足?
python - 优化:使用 pathos 多处理将大数组传递给映射的正确方法
我需要对大型数组的元素执行一个函数,并且我想使用多处理优化代码,以便我可以利用超级计算机上的所有内核。
这是我在这里提出的问题的后续行动。
我使用了代码:
如果我导入并使用 40*40*40 数组,那么它只需要 8 秒的挂墙时间和 < 3 分钟的 cpu 时间。
但是,导入和使用 100*100*100 数组意味着代码不会在超过 5 小时的 cpu 时间或 10 分钟的 walltime,甚至超过 1 小时的 walltime 内完成运行。
我猜想通过 map 传递这么大的数组有问题,但我还没有找到解决方案。使用 CProfile 问题似乎是
“thread.lock”对象的“获取”方法
将函数应用于大量元素的正确方法是什么?
请注意,我不能简单地将数组分成几部分,因为数组中每个元素的函数值也取决于该元素周围的值。
python-2.7 - Pathos ThreadPool() 返回无序序列
我正在为我的机器学习预测一些数据。然后,我使用 pathos ThreadPool 同时预测多个数据。例子
当我使用 ThreadPool().map(predict,data) 它返回错误的 json 序列:
有没有办法管理序列?
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.multiprocessing
比multiprocessing
有人可以解释这些不同选项之间的区别吗?
此外,我在远程计算机上运行该选项,运行centOS pathos.multiprocessing
,性能比multiprocessing
.
根据租用计算机的公司的说法,它应该像家用计算机一样工作。我知道,如果没有更多关于机器的详细信息,可能很难提供信息,但如果您对它的来源有任何想法,那将有所帮助。
python - 有没有办法知道一个 pathos/multiprocessing worker 已经完成了?
我想知道工人什么时候完成,以便我可以释放资源作为任何工人的最后行动。或者,我也可以在主进程上释放这些资源,但我需要在每个工作人员之后一个一个地释放这些资源(与在所有工作人员完成后释放一次相反)。
我正在运行我的工作人员,跟踪进度和使用的 PID:
由于负载平衡,很难知道哪个工作将是工作人员的最后一个工作。有什么方法可以知道一些工人已经不活跃了?
我正在使用 pathos 0.2.0 版。