pool相关内容

尝试访问多处理中的持久性数据时获得不稳定的运行时异常.

受到此解决方案的启发,我正在尝试在Python中建立工作进程的多处理池.这个想法是在工作程序实际开始工作之前将一些数据传递给工作程序,并最终重新使用它们.旨在最大程度减少每次调用工作进程所需的打包数据量(即,减少进程间通信开销).我的 MCVE 看起来像这样: import multiprocessing as mp import numpy as np def create_worker ..
发布时间:2020-05-13 20:12:48 Python

Python多重处理-Pool.map仅运行一项任务(而不是多项任务)

我有一个代码,可以解析大量XML文件(使用xml.sax库)以提取数据以供将来进行机器学习.我希望解析部分可以并行运行(我在服务器上有24个核心,同时还提供一些Web服务,因此我决定使用其中的20个).解析后,我想合并结果.以下代码应该(确实正在)执行我期望的操作,但是并行操作存在问题. def runParse(fname): parser = make_parser() ..
发布时间:2020-05-13 20:11:03 Python

多处理池和队列

我正在对池使用多处理.我需要将结构作为参数传递给必须在单独的进程中使用的函数.我无法使用multiprocessing.Pool的映射功能,因为我既不能复制Pool.Queue,也不能复制Pool.Array.该结构将在运行中用于记录每个终止过程的结果.这是我的代码: import multiprocessing from multiprocessing import Process, Ma ..
发布时间:2020-05-13 20:07:15 Python

并行处理-池-Python

我正在尝试学习如何在Python中使用多重处理. 我读到有关多重处理的文章,并且我试图做这样的事情: 我有下面的类(部分代码),该类具有生成voronoi图的方法: class ImageData: def generate_voronoi_diagram(self, seeds): """ Generate a voronoi diagram wit ..
发布时间:2020-05-13 20:07:03 Python

在python进程中创建和重用对象

我有一个令人尴尬的可并行化问题,其中涉及一堆彼此独立解决的任务.解决每个任务的时间很长,因此这是进行多处理的主要选择. 问题是要解决我的任务,需要创建一个特定的对象,该对象很耗时,但可以重复用于所有任务(例如需要启动一个外部二进制程序),因此在串行版本中我做这样的事情: def costly_function(task, my_object): solution = solve ..
发布时间:2020-05-13 20:05:40 Python

Python多重处理-将字典列表传递给池

这个问题可能是重复的.但是,我在这个话题上读了很多东西,但没有找到与我的情况相符的东西-或至少我不理解它. 很抱歉给您带来麻烦. 我想做的是相当普遍的,将kwargs列表传递给pool.starmap(),以实现多处理. 这是我减轻的情况: def compute(firstArg, **kwargs): # A function that does things ..
发布时间:2020-05-13 20:04:25 Python

多处理-池分配

我注意到python在池分配中的这种行为.即使池中有20个进程,当我对8个进程执行map_async时,也没有抛出所有要执行的进程,而是仅执行了4个.当这四个完成时,它又发送两个,然后当两个完成时,发送一个. 当我向它扔20个以上时,它将全部运行20个,直到重复上述行为后,队列中的数量开始少于20个. 我认为这是有目的的,但是看起来很奇怪.我的目标是尽快处理请求,显然这种行为不适合. ..
发布时间:2020-05-13 20:01:12 Python

内部多处理池处理超时

每当我使用以下代码时,池结果总是返回超时,我在做逻辑上不正确的事情吗? from multiprocessing import Pool, Process, cpu_count def add(num): return num+1 def add_wrap(num): new_num = ppool.apply_async(add, [num]) print new_num. ..
发布时间:2020-05-13 19:58:49 Python

python multiprocessing,管理器启动进程生成循环

我有一个简单的python多处理脚本,该脚本设置了一个工作池,这些工作池试图将工作输出追加到Manager列表.该脚本具有3个调用堆栈:-主调用f1产生几个调用另一个函数g1的工作进程.当尝试调试脚本时(偶然在Windows 7/64 bit/VS 2010/PyTools上),脚本会运行到嵌套的进程创建循环中,从而产生了无数个进程.谁能确定原因?我确定我缺少一些非常简单的东西.这是有问题的代码: ..
发布时间:2020-05-13 19:53:51 Python

Python主处理:处理池较慢?

因此,最近几天我一直在搞弄python的multiprocessing lib,我真的很喜欢处理池.这很容易实现,我可以看到很多用途.我已经做过一些我以前听说过的项目,以熟悉它,最近完成了一个程序,该程序对that子手进行了蛮力的游戏. 我在做一个执行时间比较,将单线程和通过处理池的100万到200万之间的所有质数求和.现在,对于the子手来说,将游戏置于处理池中可以将执行时间提高约8倍(i ..
发布时间:2020-05-13 19:52:29 Python

Python多处理池映射和imap

我有一个multiprocessing脚本,其中的pool.map可以正常工作.问题在于,并非所有进程都需要花费很长时间才能完成,因此某些进程因为要等到所有进程完成才进入睡眠状态(与如果我了解手册和这篇文章)正确地表示,pool.imap并不等待所有进程完成,如果已完成,它正在提供一个新文件进行处理.当我尝试这样做时,脚本将加快要处理的文件的速度,小的文件将按预期方式处理,大的文件(需要更多时间来 ..
发布时间:2020-05-13 19:51:24 其他开发

对python多处理池进行性能分析

我试图在多处理池中的每个进程上运行cProfile.runctx(),以了解源中的多处理瓶颈.这是我要执行的操作的简化示例: from multiprocessing import Pool import cProfile def square(i): return i*i def square_wrapper(i): cProfile.runctx("result = ..
发布时间:2020-05-13 19:49:02 Python