multiprocessing相关内容

python multiprocessing:某些函数完成后不返回(队列内容太大)

我正在使用多处理的“进程和队列". 我并行启动了几个函数,大多数函数表现良好:它们完成了,它们的输出进入了Queue,它们显示为.is_alive()== False.但是由于某些原因,一些功能无法正常工作.即使函数的最后一行(显示"Finished"的打印语句)完成后,它们也始终显示.is_alive()== True.无论我启动的功能集是什么,都会发生这种情况,即使只有一个功能也是如此.如果不 ..
发布时间:2020-05-13 19:25:25 Python

SQLAlchemy和多个进程的连接问题

我在一个由启动子进程的主进程组成的项目中使用PostgreSQL和SQLAlchemy.所有这些过程都通过SQLAlchemy访问数据库. 我遇到可重复的连接失败:前几个子进程正常工作,但是过一会儿出现连接错误.这是MWCE: from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import C ..
发布时间:2020-05-13 19:25:22 Python

Python Multiprocessing.Pool延迟迭代

我想知道python的Multiprocessing.Pool类与map,imap和map_async一起工作的方式.我的特殊问题是,我想映射一个创建大量内存对象的迭代器,而不希望将所有这些对象同时生成到内存中.我想看看各种map()函数是否会使我的迭代器变干,或者仅在子进程缓慢前进时才智能地调用next()函数,因此我修改了一些测试,例如: def g(): for el in xra ..
发布时间:2020-05-13 19:25:13 Python

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

我需要某种方式来使用pool.map()中的一个函数,该函数接受多个参数.根据我的理解,pool.map()的目标函数只能有一个可迭代的参数,但是有没有办法我也可以传入其他参数呢?在这种情况下,我需要传递一些配置变量,例如Lock()并将信息记录到目标函数中. 我试图做一些研究,我认为我也许可以使用部分函数来使其起作用?但是,我不完全理解它们是如何工作的.任何帮助将不胜感激!这是我想做的一个 ..
发布时间:2020-05-13 19:25:11 Python

显示Python多处理池映射调用的进度?

我有一个脚本可以通过imap_unordered()调用成功完成多处理池任务集: p = multiprocessing.Pool() rs = p.imap_unordered(do_work, xrange(num_tasks)) p.close() # No more work p.join() # Wait for completion 但是,我的num_tasks大约为250, ..
发布时间:2020-05-13 19:25:09 Python

python服务器中进程之间的共享列表

我有简单的 UDPServer ,它可以与多处理一起使用. 我想创建一个列表,其中包含有关所有客户端的信息. 我使用 Manager ,但是我不明白如何在列表中添加信息-我需要传输Manager的对象来处理,但是如何处理?我使用新属性的方法行不通. import multiprocessing from socketserver import UDPServer, Forking ..
发布时间:2020-05-13 19:25:04 Python

多处理在进程之间共享不可序列化的对象

有三个可能重复的问题(但过于具体): 如何正确为已经存在的对象设置多处理代理对象 与进程(多进程)共享对象 我可以在Future内使用ProcessPoolExecutor吗? 通过回答此问题,可以回答所有其他三个问题. 希望我能说清楚: 一旦我通过多处理创建的某个过程中创建了一个对象: 如何将对该对象的引用传递给其他进程? (不是很重要),如何确保在保存引用时此过程 ..
发布时间:2020-05-13 19:25:01 Python

“块大小" Python的multiprocessing.Pool.map中的参数

例如,如果我有一个带有2个处理器的池对象: p=multiprocessing.Pool(2) 我想遍历目录中的文件列表并使用map函数 有人可以解释一下此函数的chunksize: p.map(func, iterable[, chunksize]) 例如,如果我将块大小设置为10,是否意味着每10个文件应使用一个处理器处理? 解决方案 查看因此,在您的示例中, ..
发布时间:2020-05-13 19:24:56 Python

多处理启动了太多的Python VM实例

我正在编写一些多处理代码(Python 2.6.4,WinXP),这些代码会生成运行后台任务的进程.在处理一些琐碎的示例时,我遇到了一个问题,即即使我只告诉它产生一个固定的数字,我的代码也不断产生新的进程. 程序本身运行良好,但是如果我在Windows TaskManager中查看,则会不断看到新的"python.exe"进程出现.它们只是在程序运行时不断产生(最终使我的机器饿死). ..
发布时间:2020-05-13 19:24:54 Python

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

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

如何让Pool.map接受lambda函数

我具有以下功能: def copy_file(source_file, target_dir): pass 现在,我想使用multiprocessing一次执行此功能: p = Pool(12) p.map(lambda x: copy_file(x,target_dir), file_list) 问题是,不能腌制lambda,因此失败了.解决此问题的最简洁的方法是什么 ..
发布时间:2020-05-13 19:24:50 Python

将100%的内核与多处理模块一起使用

我有两段代码用于学习Python 3.1中的多处理.我的目标是使用所有可用处理器中的100%. 但是,此处的代码段在所有处理器上仅达到30%-50%. 总有办法“强制" python使用全部100%吗? 操作系统(Windows 7、64位)是否限制了Python对处理器的访问? 当下面的代码段运行时,我打开任务管理器并观察处理器的峰值,但从未达到并维持100%. 除此之外,我还可以看到在此 ..
发布时间:2020-05-13 19:24:47 Python

Python多重处理模块的.join()方法到底在做什么?

了解Python 多重处理(来自在 2008年的旧教程中指出:在下面的代码中没有p.join()调用,“子进程将处于空闲状态而不会终止,成为必须手动杀死的僵尸". from multiprocessing import Process def say_hello(name='world'): print "Hello, %s" % name p = Process(target= ..
发布时间:2020-05-13 19:24:42 Python

Python 3中的Concurrent.futures与Multiprocessing

Python 3.2引入了并发期货,这似乎有些先进较旧的线程和多重处理模块的组合. 与较旧的多处理模块相比,将此功能用于CPU绑定任务有什么优点和缺点? 本文建议他们更容易使用-是这样吗? 解决方案 我不会称呼concurrent.futures更“高级"-这是一个更简单的界面,无论是否您将多个线程或多个进程用作基础并行化头. 因此,就像几乎所有“简单接口"实例一样,都需 ..
发布时间:2020-05-13 19:24:40 Python

多处理池示例不起作用并冻结内核

我正在尝试并行化脚本,但是由于未知的原因,内核只是冻结而没有引发任何错误. 最小工作示例: from multiprocessing import Pool def f(x): return x*x p = Pool(6) print(p.map(f, range(10))) 有趣的是,如果我在另一个文件中定义函数然后将其导入,则一切正常.我如何才能使它工作而无需另一 ..