multiprocessing相关内容

多处理池是否为每个进程提供相同数量的任务,或者它们是否被分配为可用?

当您 map 一个可迭代对象到一个 multiprocessing.Pool 时,迭代会在开始时为池中的每个进程分成一个队列,或者是否有一个公共队列当进程空闲时从哪个任务中获取? def generate_stuff():对于范围内的 foo(100):收益 foo定义进程(moo):打印哞池 = 多处理.池()pool.map(func=process, iterable=generate_ ..
发布时间:2022-01-12 12:43:14 Python

块大小与 Python 中的多处理/pool.map 无关?

我尝试利用 python 的池多处理功能. 独立于我如何设置块大小(在 Windows 7 和 Ubuntu 下 - 后者见下文,具有 4 个内核),并行线程的数量似乎保持不变. 来自多处理导入池从多处理导入 cpu_count导入多处理进口时间定义 f(x):print("准备睡觉", x, multiprocessing.current_process())时间.sleep(20)pr ..

在 Python 中并行化四个嵌套循环

我有一个相当简单的嵌套 for 循环,它遍历四个数组: 对于 a_grid 中的 a:对于 b_grid 中的 b:对于 c_grid 中的 c:对于 d_grid 中的 d:do_some_stuff(a,b,c,d) # 执行计算并写入文件 也许这并不是在 4D 网格上执行计算的最有效方式.我知道 joblib 能够并行化两个嵌套的 for 循环,例如 this,但我无法将其推广到四个嵌套 ..
发布时间:2022-01-12 12:42:31 Python

我可以以某种方式与子进程共享一个异步队列吗?

我想使用队列将数据从父进程传递到通过 multiprocessing.Process 启动的子进程.但是,由于父进程使用 Python 的新 asyncio 库,队列方法需要是非阻塞的.据我了解, asyncio.Queue 用于任务间通信,不能用于进程间通信.另外,我知道 multiprocessing.Queue 有 put_nowait() 和 get_nowait() 方法,但我实际上需要 ..
发布时间:2022-01-12 12:42:23 Python

.NET 的多线程与多处理:糟糕的 Parallel.ForEach 性能

我编写了一个非常简单的“字数统计"程序,它读取文件并计算文件中每个单词的出现次数.以下是部分代码: 类阿拉基{私有静态列表输入 = 新列表();私有静态无效执行(int threadcount){ParallelOptions 选项 = 新的 ParallelOptions();options.MaxDegreeOfParallelism = 线程数;Parallel.For ..
发布时间:2022-01-12 12:42:11 C#/.NET

创建数据库连接并维护多个进程(多处理)

与我发布的另一篇文章类似,这篇文章回答了该帖子并创建了一个新问题. 回顾:我需要更新空间数据库中的每条记录,其中我有一个点数据集覆盖多边形数据集.对于每个点要素,我想分配一个键以将其与它所在的多边形要素相关联.因此,如果我的点“纽约市"位于多边形 USA 内,并且对于美国多边形“GID = 1",我将为我的点纽约市分配“gid_fkey = 1". 好的,这是使用多处理实现的.我注意到 ..
发布时间:2022-01-12 12:41:54 Python

Python 多处理:在第一个子错误时中止映射

当其中一个孩子中止和/或抛出异常时,中止多处理的正确方法是什么? 我发现了各种各样的问题(通用多处理错误处理, 如何在出现异常时关闭多处理池但没有答案,...),但没有关于如何停止对子异常进行多处理的明确答案. 例如,我期望以下代码: def f(x):睡眠(x)打印(f“f({x})")返回 1.0/(x - 2)定义主():使用 Pool(4) 作为 p:尝试:r = p.map ..
发布时间:2022-01-12 12:41:05 Python

为什么在 python 中对 asyncio 服务器的多个请求的时间会增加?

我用套接字编写了一个 pythonic 服务器.它应该同时(并行)接收请求并并行响应它们.当我向它发送多个请求时,回复的时间比我预期的要长. 服务器: 导入日期时间导入异步,timeit导入json,回溯从异步导入 get_event_loop请求列表 = []循环 = asyncio.get_event_loop()async def handleData(reader, writer) ..

Python多处理帮助在条件下退出

我在 Python 中的多处理方面大吃一惊,但我没有任何运气来围绕这个主题.基本上我有一个运行耗时的程序.我需要在 1 到 100 的范围内运行它,但是一旦满足我正在寻找的条件,我想中止所有进程.条件是返回值 == 90. 这是一段非多进程的代码.谁能给我一个例子,说明他们如何将其转换为多进程函数,一旦满足“90"的条件,代码将退出所有进程? def Addsomething(i):Sum ..
发布时间:2022-01-12 12:40:31 Python

Windows上的python多处理

我是 python 编程的新手,需要一些帮助来理解 python 解释器流程,尤其是在多处理的情况下.请注意,我在 Windows 10 上运行 python 3.7.1.这是我的简单实验代码和输出. 导入多处理进口时间def calc_square(数字,q):对于 n 的数字:q.put(n*n)time.sleep(0.2)q.put(-1)print('退出函数')print('现在在主 ..
发布时间:2022-01-12 12:40:24 Python

交互式 Python 中的多处理包

我有以下代码test.py: #multiprocessing 在交互式 Python 中进口时间从多处理导入过程,管道def MyProcess(a):而(1):时间.sleep(1)a.send("tic")如果 __name__ == "__main__":a, b = 管道()p = 进程(目标 = MyProcess,参数 =(a,))p.start()而(1):味精=b.recv() ..
发布时间:2022-01-12 12:40:09 Python

Python multiprocessing.Pool() 不会使用 100% 的每个 CPU

我正在研究 Python 中的多处理.例如,考虑 Python 多处理中给出的示例 文档(我在示例中将 100 更改为 1000000,只是为了消耗更多时间).当我运行它时,我确实看到 Pool() 正在使用所有 4 个进程,但我没有看到每个 CPU 都移动到 100%.如何实现每个CPU的使用率100%? 来自多处理导入池定义 f(x):返回 x*x如果 __name__ == '__main ..
发布时间:2022-01-12 12:39:48 Python

Windows 上的多处理中断

我在 Linux 上使用 Python 进行开发,但从未真正见过 Windows 出现此类问题.我正在使用 multiprocessing 库来加速计算,这对我在 Linux 上非常有效. 然而,在 Windows 上,事情并不顺利: * [INFO] 使用 2 个线程解析 1 个文件回溯(最近一次通话最后):文件“main.py",第 170 行,在 master = ..
发布时间:2022-01-12 12:39:39 Python

如何将生成器用作具有多处理映射功能的可迭代对象

当我使用生成器作为带有 multiprocessing.Pool.map 函数的可迭代参数时: pool.map(func, iterable=(x for x in range(10))) 在 func 被调用之前,生成器似乎已经完全耗尽. 我想生成每个项目并将其传递给每个进程,谢谢 解决方案 multiprocessing.map 在处理之前将没有 __len__ 方法的可迭 ..
发布时间:2022-01-12 12:39:30 Python

使用多处理读取多个文件

我需要阅读一些非常大的文本文件(100+ Mb),用正则表达式处理每一行并将数据存储到一个结构中.我的结构继承自 defaultdict,它有一个读取 self.file_name 文件的 read(self) 方法. 看这个非常简单(但不是真实的)示例,我没有使用正则表达式,但我正在拆分行: 导入多处理从集合导入 defaultdict定义单容器():返回列表()类容器(默认字典):"" ..
发布时间:2022-01-12 12:39:04 Python