multiprocessing相关内容

共享内存中用于多处理的大型 numpy 数组:这种方法有问题吗?

多处理是一个很棒的工具,但使用大内存块并不是那么直接.您可以在每个进程中加载​​块并将结果转储到磁盘上,但有时您需要将结果存储在内存中.最重要的是,使用花哨的 numpy 功能. 我已经阅读/谷歌了很多,并想出了一些答案: 在共享内存中使用numpy数组进行多处理 在多处理进程之间共享大型只读 Numpy 数组 Python 多处理全局 numpy 数组 如何如何在 ..
发布时间:2022-01-12 13:10:06 Python

在进程之间进行通信时,队列比管道有什么优势?

使用 2 管道上的">队列a> 在进程之间进行通信? 我打算使用 multiprocessing python 模块. 解决方案 最大的胜利是队列是进程和线程安全的.管道不是:如果两个不同的进程试图读取或写入管道的同一端,就会发生不好的事情.队列也比管道处于更高的抽象级别,这在您的特定情况下可能是也可能不是优势. ..
发布时间:2022-01-12 13:09:57 服务器开发

子 multiprocessing.Process 没有打印输出,除非程序崩溃

我在使用 Python 多处理模块时遇到问题.我正在使用 Process 类来生成一个新进程,以便利用我的第二个核心.第二个过程将一堆数据加载到 RAM 中,然后耐心等待而不是消耗. 我想看看那个进程用 print 命令打印了什么,但是,我没有看到它打印的任何东西.我只看到父进程打印的内容.现在这对我来说很有意义,因为他们生活在两个不同的过程中.第二个进程不会产生自己的 shell/标准输出 ..
发布时间:2022-01-12 13:09:16 Python

multiprocessing.Queue 项目的最大大小?

我正在使用 Python 处理一个相当大的项目,该项目需要将计算密集型后台任务之一卸载到另一个核心,以便不会降低主要服务的速度.在使用 multiprocessing.Queue 来传达工作进程的结果时,我遇到了一些明显奇怪的行为.为 threading.Thread 和 multiprocessing.Process 使用相同的队列以进行比较,线程工作得很好,但在放入大项目后进程无法加入队列.观 ..
发布时间:2022-01-12 13:09:07 Python

multiprocessing pool.map 按特定顺序调用函数

如何让 multiprocessing.pool.map 按数字顺序分配进程? 更多信息: 我有一个程序可以处理几千个数据文件,为每个文件绘制一个图.我正在使用 multiprocessing.pool.map 将每个文件分发到处理器,并且效果很好.有时这需要很长时间,在程序运行时查看输出图像会很好.如果 map 进程按顺序分发快照,这会容易得多;相反,对于我刚刚执行的特定运行,分析的前 ..
发布时间:2022-01-12 13:08:57 Python

多处理返回“打开的文件太多";但是使用 `with...as` 可以解决这个问题.为什么?

我使用 this answer 以便在 Linux 机器上运行 Python 中的多处理并行命令. 我的代码做了类似的事情: 导入多处理导入日志def 周期(偏移量):# 做东西定义运行():对于 process_per_cycle 中的 nprocess:logger.info("用 %d 个进程开始循环", nprocess)偏移量 = 列表(范围(nprocess))pool = m ..
发布时间:2022-01-12 13:08:49 Python

Python - 从可执行文件运行时,Multiprocessing.processes 成为主进程的副本

我刚刚在我的程序中发现了一个奇怪的错误,它与它使用 Python 的多处理模块有关.当我从机器上的源代码运行程序时,一切正常.但是我一直在使用 pyinstaller 将它构建成一个可执行文件,并且由于某种原因,当我运行从我的代码构建的可执行文件时,多处理的行为发生了巨大的变化.具体来说,当我尝试运行我的代码的多处理部分时,而不是做它应该做的,似乎是我的程序主窗口的副本弹出,每个进程一个.更糟糕的 ..
发布时间:2022-01-12 13:08:28 Python

使用递归 process.nexttick 是否让其他进程或线程工作?

从技术上讲,当我们执行以下代码(recursive process.nexttick)时,CPU 使用率将达到 100% 或接近.问题是想象我在一台有一个 CPU 的机器上运行,并且有另一个节点 HTTP 服务器进程在工作,它是如何影响它的? 执行递归 process.nexttick 的线程是否让 HTTP 服务器工作? 如果我们有两个递归 process.nexttick 线程,它 ..
发布时间:2022-01-12 13:08:22 其他开发

如何使用 Python 多处理池处理 tarfile?

我正在尝试使用 multiprocessing.Pool 处理 tar 文件的内容.我能够在多处理模块中成功使用 ThreadPool 实现,但希望能够使用进程而不是线程,因为它可能会更快并消除为 Matplotlib 处理多线程环境所做的一些更改.我收到一个错误,我怀疑与进程不共享地址空间有关,但我不确定如何修复它: Traceback(最近一次调用最后一次):文件“test_tarfile. ..
发布时间:2022-01-12 13:08:15 Python

分析 python 多处理池

我正在尝试在多处理池中的每个进程上运行 cProfile.runctx(),以了解我的源中的多处理瓶颈是什么.这是我正在尝试做的一个简化示例: 来自多处理导入池导入 cProfile定义方(i):返回 i*idef square_wrapper(i):cProfile.runctx("结果 = square(i)",globals(), locals(), "file_"+str(i))# Na ..
发布时间:2022-01-12 13:08:05 Python

将 defaultdict 与多处理一起使用?

只是实验和学习,我知道如何创建一个可以通过多个进程访问的共享字典,但我不确定如何保持字典同步.我相信 defaultdict 说明了我遇到的问题. 从集合导入 defaultdictfrom multiprocessing import Pool, Manager, Process#test 没有多处理s = '密西西比州'd = defaultdict(int)对于 k in s:d[k] + ..
发布时间:2022-01-12 13:07:44 Python

python pool apply_async 和 map_async 不会阻塞完整队列

我对 python 还很陌生.我正在使用多处理模块读取标准输入上的文本行,以某种方式转换它们并将它们写入数据库.这是我的代码片段: 批处理 = []池 = 多处理.池(20)我 = 0对于我,枚举(sys.stdin)中的内容:批处理附加(内容)如果 len(batch) >= 10000:pool.apply_async(插入, args=(batch,i+1))批处理 = []pool.ap ..

multiprocessing.value 语法清晰吗?

我想使用 multiprocessing.Value 在多个进程中使用变量,但 Python 文档中的语法并不清楚.谁能告诉我应该使用什么类型(我的变量是一个字母),以及将变量名放在哪里? 编辑 我尝试使用管理器在进程之间共享我的信件.但我现在唯一拥有的是在 Python Shell 中打印的 Value('ctypes.c_char_p', '(The key you hit her ..
发布时间:2022-01-12 13:07:11 Python

我们可以在 docker 中运行多进程程序吗?

我有一些像这样使用多进程的代码: 导入多处理从多处理导入池池 = 池(进程 = 100)结果 = []对于 job_list 中的工作:结果.追加(pool.apply_async(处理工作,(工作)))池.close()pool.join() 这个程序正在对非常大的数据集进行大量计算.所以我们需要多进程同时处理工作以提高性能. 有人告诉我,对于托管系统,一个 docker 容器只是一个 ..
发布时间:2022-01-12 13:06:47 其他开发

Python多处理附加列表

关于使用 Multiprocessing.Pool() 在多个进程之间共享变量的问题. 如果我从多个进程中更新全局列表,我会遇到任何问题吗?IE.如果两个进程同时尝试更新列表. 我看过关于在类似事情上使用锁的文档,但我想知道是否有必要. 编辑: 我共享这个变量的方式是在我的回调函数中使用一个全局变量,'success' 在目标函数完成后,我将所有成功的操作附加到: TOT ..
发布时间:2022-01-12 13:06:37 Python