multiprocessing相关内容

如何在python中将文件描述符从父对象传递给子对象?

我正在使用多处理模块,并使用池来启动多个工作程序.但是在父进程中打开的文件描述符在工作进程中关闭.我要他们打开..!有什么方法可以传递要在父母和孩子之间共享的文件描述符? 解决方案 我不知道一种在进程之间共享文件描述符的方法. 如果存在,则很可能是特定于操作系统的. 我的猜测是您需要在另一个级别上共享数据. ..
发布时间:2020-05-13 19:31:45 Python

多处理模块和pyro的比较?

我将 pyro 用于计算群集上并行作业的基本管理.我刚刚移到一个群集,负责在每个计算节点上使用所有内核. (在以前的群集中,每个核心都是一个单独的节点.)python multiprocessing 模块似乎就像一个很好的选择.我注意到它也可以用于远程过程通信.如果有人使用这两种框架进行远程过程通信,我将不胜感激,听听他们如何相互竞争.多处理模块的明显好处是它是从2.6内置的.除此之外,我很难说出 ..
发布时间:2020-05-13 19:31:42 Python

Python多处理仅利用一个核心

我正在尝试标准python文档中的代码段,以了解如何使用多处理模块.该代码将粘贴在此消息的末尾. 我在四核计算机上的Ubuntu 11.04上使用Python 2.7.1(根据系统监视器,由于超线程,它为我提供了八个核) 问题:所有工作负载似乎都安排在一个核心上,尽管启动了多个进程,但利用率接近100%.有时,所有工作负载都会迁移到另一个核心,但是工作负载永远不会在其中分布. 任何想法为何 ..
发布时间:2020-05-13 19:31:37 Python

星图结合tqdm?

我正在做一些并行处理,如下: with mp.Pool(8) as tmpPool: results = tmpPool.starmap(my_function, inputs) 其中输入看起来像: [(1,0.2312),(5,0.52)...] 即int和float的元组. 代码运行良好,但是我似乎无法将其包裹在加载栏(tqdm)上,例如可以通过以下imap方法 ..

python multiprocessing参数:深层复制?

from multiprocessing import Process # c is a container p = Process(target = f, args = (c,)) p.start() 我假定将c的深层副本传递给函数f,因为在新进程的情况下,浅表副本是没有意义的(新进程无法访问调用进程中的数据) 但是该深层副本如何定义? copy.deepcopy()文档中有一整套注释 ..
发布时间:2020-05-13 19:31:32 Python

带有多处理的Python装饰器失败

我想在一个函数上使用装饰器,然后将其传递给多处理池.但是,该代码失败,并显示"PicklingError:无法进行腌制:属性查找__builtin__ .function失败".我不太明白为什么它在这里失败.我确信这很简单,但是我找不到.下面是一个最小的“工作"示例.我认为使用functools函数足以完成这项工作. 如果我注释掉功能修饰,它可以正常工作.我在这里误解了multiproces ..
发布时间:2020-05-13 19:31:30 Python

Python多重处理永远不会加入

我正在使用multiprocessing,特别是使用Pool来剥离几个“线程"来完成我所进行的一系列缓慢的工作.但是,由于某些原因,即使所有孩子似乎都已死亡,我也无法重新加入主线程. 已解决:该问题的答案似乎是仅启动多个Process对象,而不是使用Pool.原因尚不十分清楚,但我怀疑剩余的过程是池的管理者,并且在过程完成时不会死.如果还有其他人有这个问题,那就是答案. 主线程 ..
发布时间:2020-05-13 19:31:24 Python

python-multiprocessing BaseManager注册的类在Ctrl-C之后立即失去连接

我遇到了一些问题,我怀疑这是我的python程序无法正确处理的限制,在我按Ctrl-C之后,我的程序无法立即调用BaseManager的注册类的方法,甚至没有实现为从multiprocessing.Process继承的类会受到影响.我有一些我想从Ctrl-C之后无法正确执行的过程中调用的方法. 例如,以下代码无法在Ctrl-C之后调用TestClass的mt实例. from multi ..
发布时间:2020-05-13 19:31:22 Python

关于使用Queue()/deque()和类变量进行通信和“毒丸"的处理与线程的关系.

我想创建一个在While True循环中永久运行的线程或进程. 我需要以队列(multiprocessing.Queue()或collections.deque())的形式向工作人员发送和接收数据.我更喜欢使用collections.deque(),因为它明显更快. 我还必须最终能够杀死该工作程序(因为它在True循环中运行.这是一些测试代码,我将它们组合在一起以尝试理解Threads ..

检索使用multiprocessing.Pool.map启动的进程的退出代码

我正在使用python multiprocessing模块并行化一些计算量大的任务. 显而易见的选择是使用Pool worker,然后使用map方法. 但是,进程可能会失败.例如,它们可能被oom-killer静默杀死.因此,我希望能够检索使用map启动的进程的退出代码. 另外,出于记录目的,我希望能够知道为执行Iterable中的每个值而启动的进程的PID. 解决方案 如果您 ..
发布时间:2020-05-13 19:31:15 Python

使用多重处理解析非常大的XML文件

我有一个巨大的XML文件,我对如何处理它有点不知所措.这是60 GB,我需要阅读. 我在想是否可以使用多处理模块读取python文件? 有人可以向我指出这样做的示例吗? 谢谢 解决方案 对于这种大小的文件,建议您使用流式XML解析器.在Python中,这将是cElementTree或lxml.etree中的iterparse方法: http://effbot.org ..
发布时间:2020-05-13 19:31:12 Python

在多处理中启动嵌套流程

我有一个主文件,它启动多个进程,而其中一个进程又启动多个进程.我在启动嵌套的过程集时遇到问题. 我在一个文件中包含以下代码: # parallel_test.py import Queue import multiprocessing import time import threading def worker(q): while not q.empty(): ..
发布时间:2020-05-13 19:31:10 Python

多重处理-生产者/消费者设计

我正在使用多处理模块来分解一个非常大的任务.它在大多数情况下都有效,但是我必须在设计中缺少一些明显的东西,因为这样很难有效地分辨出何时处理了所有数据. 我有两个独立的任务在运行;一个养活了另一个.我猜这是一个生产者/消费者问题.我在所有进程之间使用共享的Queue,其中生产者填充队列,而使用者从队列中读取并进行处理.问题在于数据量有限,因此在某些时候每个人都需要知道所有数据均已处理,以便系统 ..
发布时间:2020-05-13 19:31:05 Python

如何在Python中使用多重处理并行求和循环

我很难理解如何使用Python的多处理模块. 我有一个从1到n的总和,其中n=10^10太大了,无法放入列表中,这似乎是许多使用多重处理的在线示例的推力. 是否可以将范围“拆分"为一定大小的分段,然后对每个分段进行求和? 例如 def sum_nums(low,high): result = 0 for i in range(low,high+1): ..
发布时间:2020-05-13 19:31:03 Python

如何在Python3中的current.futures中检测异常?

由于并发的Futures模块,我刚开始使用python3.我想知道是否可以检测到错误.我想使用并发期货进行并行编程,如果有更有效的模块,请告诉我. 我不喜欢多重处理,因为它太复杂并且没有太多的文档资料.但是,如果有人可以编写一个不带类的Hello World,那就好了,该函数使用多处理并行计算,以便于理解. 这是一个简单的脚本: from concurrent.futures i ..