Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 134|回復: 0
打印 上一主題 下一主題

Python 多重处理和并行编程指南

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
跳轉到指定樓層
樓主
發表於 2024-1-13 17:42:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
加快计算速度是每个人都希望实现的目标。如果您的脚本运行速度比当前运行时间快十倍怎么办?在本文中,我们将了解 Python 多重处理和一个名为multiprocessing. 我们将讨论什么是多处理、它的优点以及如何通过使用并行编程来提高 Python 程序的运行时间。 Pause Next Unmute Current Time 0:12 / Duration 2:00 Fullscreen 好吧,我们走吧! 并行性简介 在深入研究 Python 代码之前,我们必须先谈谈并行计算,这是计算机科学中的一个重要概念。 通常,当您运行 Python 脚本时,您的代码在某个时刻会变成一个进程,并且该进程在 CPU 的单个核心上运行。但现代计算机有多个核心,那么如果您可以使用更多核心进行计算会怎样呢?事实证明,你的计算速度会更快。 现在让我们将此作为一般原则,但稍后在本文中,我们将看到这并不普遍正确。 学习使用 JavaScript 编码 在不涉及太多细节的情况下,并行性背后的想法是以可以使用 CPU 的多个内核的方式编写代码。 为了让事情变得更容易,让我们看一个例子。



并行和串行计算 想象一下,你有一个巨大的问题需要解决,而你却孤身一人。您需要计算八个不同  电话号码数据库  数字的平方根。你做什么工作?好吧,你没有太多选择。您从第一个数字开始,然后计算结果。然后,你就和其他人一起继续。 如果你有三个擅长数学的朋友愿意帮助你怎么办?他们每个人都会计算两个数字的平方根,你的工作会更容易,因为工作量在你的朋友之间平均分配。这意味着您的问题将得到更快的解决。 好吧,一切都清楚了吗?在这些示例中,每个朋友代表 CPU 的一个核心。在第一个示例中,整个任务由您按顺序解决。这称为串行计算。在第二个示例中,由于您总共使用四个核心,因此您正在使用并行计算。并行计算涉及使用并行进程或在处理器中的多个内核之间划分的进程。 串行和并行计算图 并行编程模型 我们已经确定了什么是并行编程,但是我们如何使用它呢?嗯,我们之前说过,并行计算涉及处理器的多个核心之间执行多个任务,这意味着这些任务是同时执行的。在进行并行化之前,您应该考虑几个问题。例如,是否有任何其他优化可以加快我们的计算速度? 现在,我们理所当然地认为并行化是最适合您的解决方案。并行计算主要有以下三种模型: Learn to Code with JavaScript 完全平行。




任务可以独立运行,彼此之间不需要通信。 共享内存并行性。进程(或线程)需要通信,因此它们共享全局地址空间。 消息传递。进程需要在需要时共享消息。 在本文中,我们将说明第一个模型,这也是最简单的。 Python 多处理:Python 中基于进程的并行性 在 Python 中实现并行性的一种方法是使用多处理模块。该multiprocessing模块允许您创建多个进程,每个进程都有自己的 Python 解释器。因此,Python 多处理实现了基于进程的并行性。 您可能听说过其他库,例如threading,它也是 Python 内置的,但它们之间存在重大差异。该multiprocessing模块创建新进程,同时threading创建新线程。 在下一节中,我们将了解使用多处理的优点。 使用多重处理的好处 以下是多处理的一些好处: 处理高 CPU 密集型任务时更好地利用 CPU 与线程相比,对子进程有更多的控制 易于编码 第一个优势与性能有关。由于多处理会创建新进程,因此您可以通过将任务分配给其他核心来更好地利用 CPU 的计算能力。

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|Comsenz Inc.

GMT+8, 2026-9-13 08:16 , Processed in 0.032198 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表