Uncategorized

用 Python 来生产: 无需重写代码,即可加速运行

你可能一直在使用 Python 来进行数据科学原型和数据处理工作,但是当把代码投入实际生产时,你需要一些 C 的变种版本。这是为什么呢?从本质上讲,Python 是单线程的,全局锁(GIL)是主要的罪魁祸首,迫使在启动另一个线程之前需要先等待完成一个线程。最终的效果是生成一个非常棒的解释器,但涉及到大型工作时,它可能比糖浆还慢。 大多数 Python 使用者不知道的是,Python 代码的性能瓶颈已经基本消除,根本不需要改变 Python 代码!您可以获得机器语言般的执行速度,解除 GIL 全局锁,并通过利用由 Intel 创建的一组库和工具来使 Python 几乎可以在每个项目中都利用到多线程和多核的优势。 首先,Intel® Python发行版*(IDP)具有大量的软件包可以帮助加速 Python 代码执行速度,它们通过使用 C 函数将 Python 代码的实际执行完全脱离 Python 层,然后调用处理器向量化和并行化以提高性能并缩短执行时间 – 通常达到许多个数量级。 Intel®线程构建模块(TBB)是 OpenMP 的替代产品,它提供编译后的操作系统代码,以便在用户请求并行时分配工作、保持高速缓存热度并平衡负载。TBB 识别它可以拆分的部分并分配给 2…

Read more