谷歌正在赞助一个开源项目,旨在将Python速度提高5倍。
为什么并发是一个难题?
LLVM是否将解决并发问题?
除了多核硬件升级,还有其他解决方案吗?
谷歌正在赞助一个开源项目,旨在将Python速度提高5倍。
为什么并发是一个难题?
LLVM是否将解决并发问题?
除了多核硬件升级,还有其他解决方案吗?
LLVM是几个部分的结合体-一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并输出结果到中间语言。这种中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。
并发编程的问题在于,虽然它在科学计算中已被使用很长时间,但最近才在消费应用程序中变得普遍。因此,尽管人们广泛知道如何编写科学计算程序以实现出色的性能,但编写邮件用户代理/文字处理器以实现良好的并发性能完全是另一回事。而且,大多数当前的操作系统都是针对单处理器设计的,它们可能没有完全为多核处理器做好准备。
LLVM相对于并发性的好处在于你有一个中间输出,如果未来有关并发方面的进展,那么通过更新你的解释器,您即可立即获得所有LLVM编译程序中的这些好处。如果您编译成独立的可执行文件,则不太容易做到这一点。因此,LLVM本身并不能解决并发问题,但它为未来的增强留下了一扇开放的大门。
当然,硬件方面还有更多可能的进步,如量子计算机、基因计算机等。但我们必须等待它们成为现实。
转向LLVM本身并不能解决并发问题。 该问题正在通过另外一种方式解决,即消除全局解释器锁定。
我不确定自己对此感觉如何; 我主要使用线程来处理阻塞I/O,而不是利用多核处理器(为此,我会使用multiprocessing
模块来生成单独的进程)。
因此,我有点喜欢全局解释器锁定; 它使我的生活变得更加轻松,不必考虑复杂的同步问题。
LLVM负责代码生成的琐碎细节,因此它使得他们可以以更通用、可移植和可维护的方式重写Psyco。这反过来又使他们能够重写CPython核心,从而使他们能够尝试使用备用GC和其他必要的东西来改善Python对并发的支持。
换句话说,LLVM并没有解决并发问题,而是释放了你的手让你自己去解决。