multiprocessing相关内容

使用带有 multiprocessing.Pool 的锁时遇到问题:酸洗错误

我正在构建一个 python 模块来从大量文本中提取标签,虽然它的结果质量很高,但它的执行速度非常慢.我试图通过使用多处理来加速这个过程,这也很有效,直到我尝试引入一个锁,以便一次只有一个进程连接到我们的数据库.我一生都无法弄清楚如何完成这项工作-尽管进行了很多搜索和调整,但我仍然收到 PicklingError: Can't pickle : attrib ..
发布时间:2022-01-12 12:38:43 Python

如何限制没有终端或多处理库的python脚本使用的CPU数量?

我的主要问题是这里.由于还没有人给出解决方案,我决定找到一种解决方法.我正在寻找一种方法来使用 python 代码限制 python 脚本 CPU 使用率(不是优先级,而是 CPU 内核的数量).我知道我可以使用多处理库(池等)来做到这一点,但我不是使用多处理运行它的人.所以,我不知道该怎么做.我也可以通过终端执行此操作,但此脚本正在由另一个脚本导入.不幸的是,我没有通过终端调用它的奢侈. ..

Python 在并行进程之间共享字典

我想在我的进程之间共享一个字典,如下所示: 定义 f(y,x):y[x]=[x*x]如果 __name__ == '__main__':池 = 池(进程 = 4)输入 = 范围(10)y={}结果 = pool.map(f,y,inputs) y 返回 {}.我怎样才能让它发挥作用? 谢谢, 解决方案 这看起来你正在使用 multiprocessing 模块.你没有说,这是一个重 ..
发布时间:2022-01-12 12:38:27 Python

如何在 Python 进程之间共享数据?

我正在使用多处理为我的 Python 应用程序创建一个子进程.我想在我的父进程和子进程之间共享数据.需要说明的是,我需要异步共享这个,也就是说子进程和父进程会在代码运行期间更新数据. 最好的方法是什么? 解决方案 这是python文档中的一个简单示例 - from multiprocessing import Process, Queue定义 f(q):q.put([42, 无, ..
发布时间:2022-01-12 12:38:17 Python

具有多处理功能的 Python 装饰器失败

我想在随后将传递给多处理池的函数上使用装饰器.但是,代码因“PicklingError: Can't pickle : attribute lookup __builtin__.function failed"而失败.我不太明白为什么它在这里失败.我确信这很简单,但我找不到.下面是一个最小的“工作"示例.我认为使用 functools 函数就足以让它工作. 如果我注释掉函数装饰,它可以正常工 ..
发布时间:2022-01-12 12:38:08 Python

在执行 I/O 密集型任务时,20 个进程中的 400 个线程优于 4 个进程中的 400 个线程

实验代码 下面是实验代码,它可以启动指定数量的工作进程,然后在每个进程内启动指定数量的工作线程,并执行获取 URL 的任务: 导入多处理导入系统进口时间导入线程导入 urllib.request定义主():进程 = int(sys.argv[1])线程 = int(sys.argv[2])urls = int(sys.argv[3])# 启动流程工作者.in_q = multiproces ..
发布时间:2022-01-12 12:38:00 Python

如何解决 python 多处理 matplotlib savefig() 问题?

我想通过多处理模块为许多图形加速 matplotlib.savefig(),并尝试对并行和序列之间的性能进行基准测试. 以下是代码: # -*- 编码:utf-8 -*-"""并行和顺序比较matplotlib savefig()的时间"""将 numpy 导入为 np将 matplotlib.pyplot 导入为 plt导入多处理进口时间def gen_fig_list(n):''' 生 ..
发布时间:2022-01-12 12:37:51 其他开发

如何在导入的模块中使用 multiprocessing.Pool?

我无法在这里实施建议:同时对两个列表应用两个函数. 我猜是因为该模块是由另一个模块导入的,因此我的 Windows 产生了多个 python 进程? 我的问题是:我如何在没有 if if __name__ == "__main__": 的情况下使用下面的代码 args_m = [(mortality_men,my_agents,墓地,家庭,公司,年份,代理人)男性代理人]args_ ..
发布时间:2022-01-12 12:37:44 Python

父进程退出时如何让子进程存活?

我想使用 multiprocessing 模块来完成这个. 当我这样做时,例如: $ python my_process.py 我启动一个父进程,然后让父进程产生一个子进程, 然后我希望父进程自行退出,但子进程继续工作. 请允许我写一个错误代码来解释我自己: from multiprocessing import Process定义 f(x):使用 open('out.d ..
发布时间:2022-01-12 12:37:36 Python

Python 多处理标准输入

在 python 3.4 windows 7 上编写和测试的所有代码. 我正在设计一个控制台应用程序,并且需要从命令行(win os)使用标准输入来发出命令并更改程序的操作模式.该程序依赖于多处理来处理 cpu 绑定负载以分散到多个处理器. 我正在使用 stdout 来监视该状态和一些基本的返回信息,并使用 stdin 来发出命令以根据返回的控制台信息加载不同的子进程. 这是我发 ..
发布时间:2022-01-12 12:37:20 其他开发

不能腌制静态方法 - 多处理 - Python

我正在对我使用类的代码应用一些并行化.我知道如果没有与 Python 提供的任何其他方法不同,就不可能选择一个类方法.我在这里找到了解决方案.在我的代码中,我必须使用类进行并行化的部分.在这里,我发布了一个非常简单的代码,仅代表我的结构(相同,但我删除了方法内容,这是很多数学演算,对我得到的输出来说微不足道).问题是因为我可以腌制一种方法(shepard_interpolation),但使用另一种 ..
发布时间:2022-01-12 12:37:05 Python

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

由于它的并发期货模块,我刚刚转向 python3.我想知道是否可以让它检测错误.我想使用并发期货来并行程序,如果有更高效的模块请告诉我. 我不喜欢多处理,因为它太复杂而且没有多少文档可用.但是,如果有人可以编写一个没有类的 Hello World,只使用多处理并行计算的函数,这样它就很容易理解了,那就太好了. 这是一个简单的脚本: from concurrent.futures 导入 ..

如何使用多处理循环遍历一大串 URL?

问题:检查超过 1000 个 url 的列表并获取 url 返回码(status_code). 我的脚本可以运行,但速度很慢. 我认为必须有一种更好的、pythonic(更漂亮)的方式来执行此操作,我可以在其中生成 10 或 20 个线程来检查 url 并收集 resonses.(即: 200 ->www.yahoo.com404->www.badurl.com... 输入文件:U ..

Python 多处理性能仅随着使用的内核数的平方根而提高

我正在尝试在 Python (Windows Server 2012) 中实现多处理,但无法达到我期望的性能改进程度.特别是对于一组几乎完全独立的任务,我希望通过增加内核实现线性改进. 我知道——尤其是在 Windows 上——打开新进程会产生开销 [1],而且底层代码的许多怪癖可能会阻碍一个干净的趋势.但理论上,对于完全并行化的任务,趋势最终仍应接近线性 [2];或者,如果我正在处理部分串 ..
发布时间:2022-01-12 12:36:42 Python

多处理的 Python ssl 问题

我想从多个客户端子进程通过 TLS TCP 套接字将数据从客户端发送到服务器,因此我与所有子进程共享同一个 ssl 套接字.与一个子进程通信,但如果我使用多个子进程,TLS 服务器会崩溃并显示 ssl.SSLError (SSL3_GET_RECORD:decryption failed or bad record mac). 更具体:不依赖于哪个进程首先调用SSLSocket.write( ..
发布时间:2022-01-12 12:36:35 Python

如果 Parent 在 Python 中被杀死,则杀死子进程

我从 python 脚本中生成 5 个不同的进程,如下所示: p = multiprocessing.Process(target=some_method,args=(arg,))p.start() 我的问题是,当父进程(主脚本)以某种方式被杀死时,子进程继续运行. 当父进程被杀死时,有没有办法杀死像这样产生的子进程? 编辑:我正在尝试这个: p = multiprocessin ..
发布时间:2022-01-12 12:36:25 Python

结合 itertools 和多处理?

我有一个 256x256x256 Numpy 数组,其中每个元素都是一个矩阵.我需要对这些矩阵中的每一个进行一些计算,并且我想使用 multiprocessing 模块来加快速度. 这些计算的结果必须像原来的一样存储在一个256x256x256数组中,这样矩阵在元素[i,j,k]处的结果原数组中的元素必须放在新数组的[i,j,k]元素中. 为此,我想创建一个列表,可以用伪方式编写为 [ ..
发布时间:2022-01-12 12:36:09 Python

多核 CPU、多线程和上下文切换?

假设我们有一个具有 20 个内核的 CPU 和一个具有 20 个 CPU 密集型线程且彼此独立的进程:每个 CPU 内核一个线程.我试图弄清楚在这种情况下是否发生上下文切换.我相信这是因为操作系统中的系统进程也需要 CPU 时间. 我知道有不同的 CPU 架构,有些答案可能会有所不同,但请您解释一下: 上下文切换是如何发生的,例如在 Linux 或 Windows 以及一些已知的 CP ..
发布时间:2022-01-12 12:35:59 其他开发

星图与tqdm结合?

我在做一些并行处理,如下: 使用 mp.Pool(8) 作为 tmpPool:结果 = tmpPool.starmap(my_function, 输入) 输入如下所示:[(1,0.2312),(5,0.52) ...]即,int 和 float 的元组. 代码运行良好,但我似乎无法将其包裹在加载栏 (tqdm) 周围,例如可以使用 imap 方法完成,如下所示: tqdm.tqdm(m ..