Meta 积极推动 Python 项目采纳 PEP 703 提案,让全局解释器锁成为可选


Meta 正致力于推动 Python 项目采纳 PEP 703 提案,以改进 Python 代码的多线程性能。PEP 703 指的是 Making the Global Interpreter Lock Optional in CPython,让全局解释器锁在 CPython 中成为可选。

该提案建议向 CPython 添加构建配置 (--disable-gil),使其在没有全局解释器锁的情况下运行 Python 代码,并进行必要的更改以保证解释器线程安全。

根据提案的描述,CPython 的全局解释器锁 (GIL) 阻止了同时多线程执行代码,成为了在多核 CPU 上提高 Python 代码运行效率的一大障碍。

Python 之父最近在社区提到,如果 Meta 或其他科技公司能够让一些具有成熟 CPython 内部经验的工程师来帮助核心开发团队完成这项工作,那就太好了。

Meta  Instagram 团队工程师 Carl Meyer(同时也是 CPython 核心开发者)看到后许下承诺,称如果 PEP 703 提案接受,他们将在 2025 年前投入三个工程师年 (three engineer-years),与核心团队合作去实现 PEP 703。

最后插播一下,Meta 最新发布的产品 Threads 正是采用 CPython 作为后端。详情:Threads 注册量已破三千万,后端基于 CPython 深度“魔改”。

延伸阅读

  • Python 3.12 将能够使用不共享 GIL 的解释器
  • Python 新提案:删除全局解释器锁 GIL,解放多线程性能
  • Faster CPython 公布面向 Python 3.13 的计划:优化解释器和内存管理

相關推薦

2023-10-27

。 PEP 703(Making the Global Interpreter Lock Optional,让全局解释器锁成为可选),简称 no-GIL,也被称为自由线程 (free-threaded)。 根据提案的描述,CPython 的全局解释器锁 (GIL) 阻止了同时多线程执行代码,成为了在多核 CPU 上

2023-01-13

言峰会上,开发者 Sam Gross 带来了新提案:删除全局解释器锁 GIL,解放多线程性能。但由于 GIL 历史悠久,许多官方/非官方的 Python 包和模块都深度融合了 GIL 模块,彻底移除 GIL 功能可能会对生态造成影响。在 2023 年 1

2022-05-18

2022 Python 语言峰会上带来了一个新提案:完全移除 CPython 解释器的 GIL- 全局解释器锁,使 Python 程序获得更快的性能 —— 尤其是多线程程序。 Python 有多个版本,包括 JVM 、 .NET CLR  解释器以及编译器,但该语言的核心实现

2022-05-19

快的运行时,这些优化大部分来自于 PEP 659  :自适应解释器,它运作思路跟 JIT 有点相似,都是识别热点代码,但自适应解释器的工作范围无法脱离字节码。目前 PEP 659 提案的工作基本完成,但 for 循环和二进制操作的动态

2023-10-04

的 debugging/profiling API (PEP 669) 支持具有单独全局解释器锁的分离子解释器 (PEP 684) 优化性能,例如 PEP 709 和对 BOLT 二进制优化器的支持,预计总体性能提高 5%。 改进错误信息 支持 Linux perf 分析器在跟踪过程中报

2023-04-11

了 CPython,允许开发者在一个进程中同时运行多个 Python 解释器。然而,多个解释器在同一进程中运行时,并不能真正地相互隔离。同一进程中的解释器始终共享大量全局状态。这是很多错误的来源,随着越来越多的人使用该功

2023-04-01

Python 指导委员会拒绝了 PEP 582 提案——Python local packages directory,即本地包目录。 此 PEP 提议向 Python 添加一种自动识别__pypackages__目录的机制,并优先导入安装在此位置的包,而不是用户或全局站点包。这将避免创建、激活或

2023-04-12

下:它不是预构建的 Python 软件包,而是预构建的 Python 解释器。 此提案定义了一个标准的打包文件格式来保存预构建的 Python 解释器,并尽可能重用现有的 Python 打包标准。 命名格式:{distribution}-{version}[-{build tag}]-{platform tag}

2022-08-19

程语言,支持在 Java 虚拟机、JavaScript、Python、Lua 和 Ruby 解释器上运行。 Lux 0.7 主要变化 新增 内联函数 支持将配置参数从构建描述 (build description) 传递给编译器 基于配置参数的代码选择 基于编译器版本的代码选择

2024-02-04

Meta 为什么要开源其 AI 技术。 Meta开源其 AI 技术是出于推动技术创新、提升模型质量、建立行业标准、吸引人才、增加透明度和支持其长期战略的考虑。这不仅有助于 Meta 在竞争激烈的 AI 领域保持领先地位,也有助于推动整个

2022-02-25

此前,Python 开发组一直在 Python 官方 Bug 网站  https://bugs.python.org/ (缩写为 bpo 或 BPO) 上进行 Bug 提交、跟踪和处理,该网站使用开源工具 Roundup 作为 Bug 跟踪器。 2 月 18 日, Python 核心开发者 Łukasz Langa 在 Python Discourse 论

2022-06-09

Python 3.10.5 现已发布,这是 Python 3.10 系列的的最新错误修复版本,包含 230 多个错误修复和文档更改。 与 3.9 相比,Python 3.10 中的一些新的主要新特性和变化有: PEP 623  - 弃用并准备删除 PyUnicodeObject 中的 wstr member PEP 604 -

2023-10-26

1 和 Python 3.12 这两个版本中,Python 核心开发团队对 Python 解释器的参考实现 CPython 进行了一系列变革性升级。其结果是,Python 运行时性能对所有人来说都实现了大幅提升,而不仅限于那些选择使用新库或 cutting-edge 语法的少数人

2023-08-08

Python 3.12.0 发布了第 1 个 RC 版本。 开发团队表示,进入候选版本阶段后,只接受经过 review 且修复明确错误的代码。RC2(也是最后一个候选版本)计划于 2023 年 9 月 4 日发布,而 3.12.0 的正式版本计划于 2023 年 10 月 2 日发布。