Google 正在赞助一个开源项目,以将 Python 的速度提高 5 倍。
为什么并发是一个如此困难的问题?
LLVM 会解决并发问题吗?
除了多核之外,还有其他解决方案可用于硬件进步吗?
Google 正在赞助一个开源项目,以将 Python 的速度提高 5 倍。
为什么并发是一个如此困难的问题?
LLVM 会解决并发问题吗?
除了多核之外,还有其他解决方案可用于硬件进步吗?
LLVM是几样东西——一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并以中间语言输出结果。此中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。
并发的问题在于,虽然它在科学计算中使用了很长时间,但它最近才在消费者应用程序中变得普遍。因此,虽然众所周知如何编写科学计算程序以实现出色的性能,但编写一个擅长并发的邮件用户代理/文字处理器是完全不同的事情。此外,大多数当前的操作系统在设计时都考虑到了单处理器,并且它们可能没有为多核处理器做好充分准备。
LLVM 在并发方面的好处是你有一个中间输出,如果将来并发方面有进步,那么通过更新你的解释器,你可以立即在所有 LLVM 编译的程序中获得这些好处。如果您已编译为独立的可执行文件,这并不容易。所以 LLVM 本身并没有解决并发问题,但它为未来的增强打开了大门。
当然,像量子计算机、基因计算机等硬件还有更多可能的进步。但我们必须等待它们成为现实。
切换到 LLVM 本身并不能解决并发问题。这是通过摆脱Global Interpreter Lock来单独解决的。
我不确定我对此有何感想。我主要使用线程来处理阻塞 I/O,而不是利用多核处理器(为此,我将使用该multiprocessing
模块来生成单独的进程)。
所以我有点喜欢 GIL;它让我的生活更轻松,不必考虑棘手的同步问题。
LLVM 负责代码生成的细节,因此它允许他们以更通用、可移植、可维护的方式重写 Psyco。这反过来又允许他们重写 CPython 核心,这让他们可以试验备用 GC 和其他改进 python 对并发支持所需的东西。
换句话说,LLVM 并没有解决并发问题,它只是解放了你的双手,让你可以解决它。