HyperAI超神经
Back to Headlines

自由线程 Python 第一年:解锁多核计算潜力,推动生态系统前进

17 小时前

上周,CPython开发团队发布了CPython 3.14.0b1版本。本周,PyCon 2025在宾夕法尼亚州的匹兹堡拉开帷幕。这一系列事件标志着Python在支持无全局解释锁(GIL)多线程构建方面取得的重大进展。 无GIL Python的意义 现代硬件设备通常配备多核CPU和GPU,但在GIL锁定的CPython构建中,Python无法充分利用这些计算资源。这是因为GIL限制了多线程并行算法的性能,使得开发者不得不寻找变通方法或使用代价较高的多进程方案来实现并行计算。无GIL的Python则消除了这一限制,允许更高效地使用多线程,并共享数据,从而提高并行计算的效能。 Quansight团队的贡献 在过去的一年中,Quansight团队与Meta的Python运行时团队合作,为多个关键包和项目提供支持,使其能够与无GIL的CPython兼容。这包括: 包装和项目工作流工具:如meson、meson-python、setup-python GitHub Actions工作流、packaging、pip和setuptools。 绑定生成器:如Cython、pybind11、f2py和PyO3。 PyData生态系统的基础包:如NumPy、SciPy、PyArrow、Matplotlib、pandas、scikit-learn和scikit-image。 下载量最高的PyPI依赖包:如Pillow、PyYAML、yarl、multidict和frozenlist。 此外,Quansight还着手支持其他热门但尚未发布无GIL轮的包,如CFFI、cryptography、PyNaCl、aiohttp、SQLAlchemy、grpcio以及机器学习库safetensors和tokenizers。 主要成果 在这一年中,通过与包维护者和其他社区贡献者的共同努力,许多包已经成功修复了无GIL构建中的问题。特别是Cython 3.1.0的发布,官方支持了无GIL构建,大大减少了构建错误的发生。目前,Quansight团队正在进一步解决那些仍存在问题的包,进度可以追踪于他们手动更新的状态表或Hugo van Kemenade的自动跟踪器。 当前挑战 尽管无GIL Python构建已准备好进行实验,但许多包仍需详细审查以发现线程安全问题。许多Python库使用可变数据结构,在没有或很少有线程安全文档的情况下,可能会在多线程环境中表现异常。此外,一些大型遗留包缺乏资源来应对支持自由线程所需的变化,这需要社区共同努力来解决这些问题。 如何参与 如果你感兴趣,可以在Quansight-Labs的GitHub仓库中查看贡献指南,了解生态系统的整体问题,并参与相关讨论。Quansight还推出了一个社区Discord,欢迎加入讨论和支持无GIL构建的工作。 此外,Quansight团队成员将在PyCon 2025上发表演讲,分享他们在移植包到无GIL构建过程中的经验。演讲的视频录制也将在YouTube上发布,供更多的视觉学习者参考。 业内评价 业内专家认为,无GIL Python的推出是Python语言未来发展的重要一步。它不仅提高了计算效率,还为更广泛的开发者群体提供了一个更加灵活和高效的编程环境。Quansight团队在此过程中扮演了关键角色,他们的努力为Python生态系统带来了显著的提升。未来几年,随着更多的包和支持工作的完成,这一变化有望大幅改善Python的性能和可靠性。

Related Links