pool相关内容

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

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

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

如何对“AttributeError: __exit__"进行故障排除在 Python 中进行多处理?

我尝试重写一些 csv 读取代码,以便能够在 Python 3.2.2 的多个内核上运行它.我尝试使用多处理的 Pool 对象,该对象是我从工作示例中改编而来的(并且已经为我的项目的另一部分工作).我遇到了一条难以解读和排除故障的错误消息. 错误: Traceback(最近一次调用最后一次):文件“parser5_nodots_parallel.py",第 256 行,在 ..
发布时间:2022-01-12 12:34:24 Python

带有悲情的 Python 多处理

我正在尝试使用 Python 的 pathos 将计算指定到单独的进程中,以便使用多核处理器加速它.我的代码组织如下: 类:def foo(自我,姓名):...setattr(自我,姓名,某事)...def 嘘(自我):对于列表中的名称:self.foo(名字) 由于我在使用 multiprocessing.Pool 时遇到了酸洗问题,所以我决定尝试一下 pathos.我尝试过,如先前主题中所 ..
发布时间:2022-01-12 12:33:51 Python

回调函数在多处理 map_async 中如何工作?

调试代码花了我一晚上的时间,终于发现了这个棘手的问题.请看下面的代码. 来自多处理导入池def myfunc(x):return [i for i in range(x)]池=池()A=[]r = pool.map_async(myfunc, (1,2), callback=A.extend)r.wait() 我以为我会得到 A=[0,0,1],但输出是 A=[[0],[0,1]].这对我来说 ..
发布时间:2022-01-12 12:32:43 Python

Python:在使用多处理池时使用队列写入单个文件

我有数十万个文本文件,我想以各种方式进行解析.我想将输出保存到单个文件而不会出现同步问题.我一直在使用多处理池来执行此操作以节省时间,但我不知道如何组合池和队列. 以下代码将保存文件名以及文件中连续“x"的最大数量.但是,我希望所有进程都将结果保存到同一个文件中,而不是像我的示例中那样保存到不同的文件中.对此的任何帮助将不胜感激. 导入多处理使用 open('infilenamess.tx ..
发布时间:2022-01-12 12:22:52 Python

Python多处理——跟踪pool.map操作的过程

我有一个函数可以执行一些模拟和返回一个字符串格式的数组. 我想运行模拟(函数)不同的输入参数值,超过 10000 个可能的输入值,并将结果写入单个文件. 我正在使用多处理,特别是 pool.map 函数并行运行模拟. 自整个过程运行模拟功能超过10000次需要很长的时间,我真的很想跟踪整个操作的过程. 我认为下面我当前代码中的问题是,pool.map 运行该函数 10000 ..
发布时间:2022-01-12 12:19:56 Python

如何让 Pool.map 采用 lambda 函数

我有以下功能: def copy_file(source_file, target_dir):经过 现在我想使用 multiprocessing 来一次执行这个函数: p = 池(12)p.map(lambda x: copy_file(x,target_dir), file_list) 问题是,lambda 不能被腌制,所以这失败了.解决此问题的最简洁(pythonic)方法是什么? ..
发布时间:2022-01-12 12:17:41 Python

在 Python 中将多个参数传递给 pool.map() 函数

我需要一些方法来使用 pool.map() 中接受多个参数的函数.根据我的理解, pool.map() 的目标函数只能有一个可迭代的参数,但是有没有一种方法可以传递其他参数?在这种情况下,我需要传入一些配置变量,例如我的 Lock() 和日志信息到目标函数. 我试图做一些研究,我认为我可以使用部分函数来让它工作?但是我不完全理解这些是如何工作的.任何帮助将不胜感激!这是我想做的一个简单示例: ..
发布时间:2022-01-12 12:14:58 Python

如何将队列引用传递给 pool.map_async() 管理的函数?

我想要一个长时间运行的进程通过队列(或类似的东西)返回它的进度,我将把它提供给进度条对话框.当过程完成时,我还需要结果.此处的测试示例失败并出现 RuntimeError: Queue objects should only be shared between processes through inheritance. 导入多处理,时间定义任务(参数):计数 = 参数 [0]队列 = 参数 [ ..
发布时间:2022-01-12 12:14:34 Python

在 python 中填充队列和管理多处理

我在 python 中遇到了这个问题: 我需要不时检查的 URL 队列 如果队列已满,我需要处理队列中的每个项目 队列中的每个项目都必须由单个进程处理(多处理) 到目前为止,我设法像这样“手动"实现了这一目标: while 1:self.updateQueue()而不是 self.mainUrlQueue.empty():域 = self.mainUrlQueue.get()# ..
发布时间:2022-01-12 12:12:14 Python

我可以在 Pool.imap 调用的函数中使用多处理队列吗?

我正在使用 python 2.7,并尝试在自己的进程中运行一些 CPU 繁重的任务.我希望能够将消息发送回父进程,以使其了解进程的当前状态.多处理队列似乎很适合这个,但我不知道如何让它工作. 所以,这是我的基本工作示例减去队列的使用. import multiprocessing as mp进口时间定义 f(x):返回 x*x定义主():池 = mp.Pool()结果 = pool.ima ..
发布时间:2022-01-12 12:11:50 Python

在 Python 多处理中将 Pool.map 与共享内存数组结合起来

我有一个非常大的(只读)数据数组,希望由多个进程并行处理. 我喜欢 Pool.map 函数,并希望使用它来并行计算该数据上的函数. 我看到可以使用 Value 或 Array 类在进程之间使用共享内存数据.但是当我尝试使用它时,我得到一个 RuntimeError: 'SynchronizedString objects should only be shared between pr ..
发布时间:2022-01-12 12:07:29 Python

Python 进程池非守护进程?

是否可以创建一个非守护进程的 python 池?我希望一个池能够调用一个内部有另一个池的函数. 我想要这个,因为守护进程无法创建进程.具体会导致报错: AssertionError: 守护进程不允许有子进程 例如,考虑 function_a 有一个运行 function_b 的池的场景,该池有一个运行 function_c 的池.此函数链将失败,因为 function_b 正在守护进程中 ..
发布时间:2022-01-12 12:07:03 Python

python的多处理池的键盘中断

如何使用 python 的多处理池处理 KeyboardInterrupt 事件?这是一个简单的例子: 来自多处理导入池从时间导入睡眠从系统导入退出def slow_square(i):睡觉(1)返回 i*i定义去():池 = 池(8)尝试:结果 = pool.map(slowly_square, range(40))除了键盘中断:# **** 这部分永远不会执行.****池.终止()print ..
发布时间:2022-01-12 12:06:34 Python

无法腌制 <type 'instancemethod'>当使用多处理 Pool.map()

我正在尝试使用 multiprocessing 的 Pool.map() 函数同时划分工作.当我使用以下代码时,它工作正常: 导入多处理定义 f(x):返回 x*x定义去():池 = 多处理.池(进程 = 4)打印 pool.map(f, range(10))如果 __name__== '__main__' :去() 但是,当我在更面向对象的方法中使用它时,它就不起作用了.它给出的错误信息是: ..
发布时间:2022-01-12 12:04:41 Python

带有代理支持的多线程蜘蛛的 Python 包?

除了使用 urllib 之外,有谁知道最有效的包可以快速、多线程下载可以通过 http 代理操作的 URL 吗?我知道一些,例如 Twisted、Scrapy、libcurl 等,但我对它们的了解不够,无法做出决定,甚至他们是否可以使用代理.有人知道最适合我的目的吗?谢谢! 解决方案 在 python 中实现这个很简单. urlopen() 函数有效透明地使用代理不需要认证.在一个 ..
发布时间:2021-12-31 19:25:27 Python

您如何确定由 'std::map' 创建的节点的大小以与 'boost::pool_allocator' 一起使用(以跨平台方式)?

更新 根据评论、回答和其他研究,我得出的结论是,set 和 map 在节点开销方面通常没有区别.我接下来的问题是: 如何确定节点开销以方便使用boost::pool_allocator 作为自定义分配器? 而且,进一步的更新:节点开销可能永远不会超过 4 个指针的大小,因此只需为 sizeof(T), sizeof(T)+sizeof(int), sizeof(T) + 2*si ..
发布时间:2021-12-24 15:36:25 C/C++开发