multiprocessing相关内容

Python多处理池在加入时挂起?

我正在尝试在多个文件上并行运行一些 python 代码.构造基本上是: def process_file(filename, foo, bar, baz=biz):# 做一些可能失败并导致异常的事情如果 __name__ == '__main__':# 设置代码设置参数 foo、bar 和 bizpsize = multiprocessing.cpu_count()*2池=多处理.池(进程=ps ..
发布时间:2022-01-12 13:03:11 Python

来自 concurrent.futures 的 ProcessPoolExecutor 比 multiprocessing.Pool 慢

我正在试验 Python 3.2 中引入的新的闪亮 concurrent.futures 模块,并且我注意到,几乎使用相同的代码,使用 concurrent.futures 中的 Pool 比使用 multiprocessing.Pool. 这是使用多处理的版本: def hard_work(n):#这里真的很辛苦经过如果 __name__ == '__main__':从多处理导入池,cp ..
发布时间:2022-01-12 13:02:57 Python

跨多处理 python 共享 pandas 数据框字典

我有一本 python pandas 数据框字典.这本词典的总大小约为 2GB.但是,当我在 16 个多进程中共享它时(在子进程中我只读取 dict 的数据而不修改它),它需要 32GB 内存.所以我想问一下我是否可以在不复制的情况下跨多处理共享这本字典.我试图将其转换为 manager.dict().但似乎时间太长了.实现这一目标的最标准方法是什么?谢谢. 解决方案 我发现的最佳解决方案 ..
发布时间:2022-01-12 13:02:48 Python

有效地将函数并行应用于分组的 pandas DataFrame

我经常需要将一个函数应用到一个非常大的DataFrame(混合数据类型)的组中,并希望利用多个内核. 我可以从组中创建一个迭代器并使用多处理模块,但效率不高,因为每个组和函数的结果都必须为进程之间的消息传递进行腌制. 有什么方法可以避免酸洗甚至完全避免 DataFrame 的复制?看起来多处理模块的共享内存功能仅限于 numpy 数组.还有其他选择吗? 解决方案 从上面的评论看 ..
发布时间:2022-01-12 13:02:41 Python

如何将调试器附加到 python 子进程?

我需要调试由 multiprocessing.Process() 生成的子进程.pdb 调试器似乎不知道分叉并且无法附加到已经运行的进程. 是否有任何更智能的 python 调试器可以附加到子进程? 解决方案 Winpdb 差不多就是这个定义更智能的 Python 调试器.它明确支持下叉,不确定它是否能很好地与配合使用multiprocessing.Process() 但值得一试. ..
发布时间:2022-01-12 13:02:35 Python

具有多处理功能的 Celery 并行分布式任务

我有一个 CPU 密集型 Celery 任务.我想使用跨大量 EC2 实例的所有处理能力(核心)来更快地完成这项工作(具有多处理功能的 celery 并行分布式任务 - 我认为). 线程、多处理、分布式计算、分布式并行处理这些术语都是我的术语试图更好地理解. 示例任务: @app.task对于 list_of_millions_of_ids 中的项目:id = item # 在这里 ..
发布时间:2022-01-12 13:02:27 Python

如果第二个线程等待第一个线程的终止,是否需要内存屏障?

假设线程 Alpha 正在写入变量 A 而没有锁定.第二个线程 Beta 正在等待 Alpha 终止,然后依次读取变量 A. A的内容会不会是新鲜的?内存写入可以延迟到线程生命周期之外吗?等待线程 Alpha 终止的标准机制不会隐含地充当内存屏障吗? 更新 1 有没有不包括内存屏障的等待示例? 解决方案 几乎可以肯定(用于等待线程终止的 API 需要为自己的目的使用内存屏 ..

如何让 PyQt 窗口在其“X"时调用方法?关闭按钮被选中

我试图在选择 PyQt 窗口的“X"关闭按钮时调用一个方法.轻快地,我有一个对象 QtGui.QWidget 的类,我希望它在使用“X"关闭按钮关闭窗口时调用它的一个方法,以便结束一些子进程.这怎么可能? 代码如下所示.我想调用的类interface的方法是stylusProximityControlOff().此方法会终止一个可能有点混乱的子进程,但这是一个单独的问题. 无论如何,如 ..
发布时间:2022-01-12 13:01:51 其他开发

一旦任何一个进程在python中找到匹配项,如何让所有pool.apply_async进程停止

我有以下代码,它利用多处理来遍历一个大列表并找到匹配项.一旦在任何一个进程中找到匹配项,如何让所有进程停止?我看过一些例子,但我似乎都不适合我在这里所做的事情. #!/usr/bin/env python3.5导入系统,itertools,多处理,functools字母 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12234567 ..
发布时间:2022-01-12 13:01:46 Python

如何从 Process- 或 Thread 实例返回值?

所以我想运行一个函数,它既可以在网上搜索信息,也可以直接从我自己的 mysql 数据库中搜索信息.第一个过程会很耗时,第二个相对较快. 考虑到这一点,我创建了一个启动此复合搜索 (find_compound_view) 的进程.如果该过程相对较快地完成,则意味着它存在于数据库中,因此我可以立即呈现结果.否则,我将渲染“drax_retrieving_data.html". 我想出的愚蠢 ..

Python 多处理将子进程的标准输出重定向到 Tkinter 文本

我正在尝试使用 Tkinter GUI 来启动子进程并将其 stdout/stderr 输出显示到 Text 小部件.最初,我认为 sys.stdout 可以通过设置“sys.stdout = text_widget"轻松重定向到文本小部件,但似乎不是.报错:“Text instance has no attribute 'flush'". 我在网上查了一下,得到了一些解决方案,比如使用队列 ..
发布时间:2022-01-12 13:01:29 Python

多处理不起作用(oserror:[Errno 22] Invalid argument)

我正在使用 python3.5.2,我正在尝试学习多处理,但它对我不起作用它没有显示任何错误或任何事情它只是正常完成程序而没有做任何我已经问过的事情如果您想查看我的问题以了解更多详细信息,请在此处 多处理不启动 我尝试了所有方法,但当我搜索时,我发现很多人都有同样的问题,每个人都告诉他们这是 IDLE 问题,所以我尝试并打开了没有 IDLE 的 python 文件和现在谢天谢地,我收到 ..
发布时间:2022-01-12 13:01:13 Python

子进程中的 Python 用户输入

我正在尝试创建一个可以通过 raw_input() 或 input() 获取输入的子进程,但是在要求输入时,我遇到了线性错误 EOFError: EOF 的结束. 我这样做是为了在 python 中试验多处理,我记得这很容易在 C 中工作.是否有一种解决方法,而不使用从主进程到子进程的管道或队列?我真的很想让孩子处理用户输入. def child():打印'测试'message = raw ..
发布时间:2022-01-12 13:01:07 其他开发

共享数组在 python 多处理中未正确共享

我正在 Python 中尝试多处理,并尝试在两个进程之间共享一个字符串数组.这是我的python代码: from multiprocessing import Process, Array, Value导入 ctypes定义 f1(a, v):for i, l in enumerate(['a', 'b', 'c']):a[i] = l*3v.值 += 1打印 "f1 : ", a[:], v. ..
发布时间:2022-01-12 13:00:58 Python

具有单个函数的 Python 多处理

我有一个当前正在运行的模拟,但 ETA 大约需要 40 小时 - 我正在尝试通过多处理来加速它. 它本质上迭代了一个变量 (L) 的 3 个值,以及第二个变量 (a) 的 99 个值.使用这些值,它实际上运行了一个复杂的模拟并返回 9 个不同的标准偏差.因此(尽管我还没有这样编码)它本质上是一个函数,它接受两个值作为输入 (L,a) 并返回 9 个值. 这是我拥有的代码的精髓: ST ..
发布时间:2022-01-12 13:00:40 Python

多处理中的error_callback.Python 2中的池apply_async?

multiprocessing.Pool 类的 函数apply_async 在Python 3 中具有参数error_callback.但是Python 2 中没有这个论点. 有什么技巧可以在 Python 2 中实现相同的功能吗?理想情况下,我想编写在 Python 2 和 3 中运行的代码. 解决方案 我还没试过python3.但对我来说,为了捕捉子进程中的错误,我将在子进程中 ..
发布时间:2022-01-12 13:00:30 Python

Python 3.4 多处理递归 Pool.map()

我正在 Ubuntu 14.04 上使用 Python 3.4 进行开发.我试图做递归 Pool.map().在我调用 g() 之后,它挂在那里并且永远不会返回. import multiprocessing as mp池 = mp.Pool()定义 d(x):返回 x/2.0定义 f(x):w = pool.map(d, x)返回 w定义 g():v = pool.map(f, [[1, 2] ..
发布时间:2022-01-12 13:00:22 Python