使用pythran轻松加速python代码

fluidpythran的Python项目详细描述


概述

python+numpy+pythran是一个很好的组合,可以轻松高效地编写 科学计划和图书馆。

要使用pythran,需要在模块中隔离数值内核函数 是由pythran编译的。PythRon产生的C++代码从不使用 python解释器。这意味着只有在python中可行的部分才能 在pythran文件中完成。有些语言功能不是 由pythran(例如没有类)和大多数扩展支持 软件包不能在pythran文件中使用(基本上只有numpy和一些scipy文件 功能)。

python开发人员在使用pythran时感到沮丧的另一个原因是 与在注释中手动编写pythran函数签名相关,其中 无法自动化。pythran使用c++模板但pythran用户不能 用这个概念思考。我们希望能够表达模板 具有现代python语法的pythran的性质(特别是 类型 注释 )。

最后,另一个限制是不能使用pythran 及时编译,因此需要手动写入所有参数 类型:

使用fluidpythran,我们试图克服这些限制。fluidpythran提供 一些补充的pythran命令和一个小的python api来加速 使用pythran而不编写pythran模块的函数和方法。这个 数字内核的代码可以保存在模块和类中 它们是写的。pythran文件(即pythran编译的文件), 通常由用户编写,由 fluidpythran.

奖励:提前 及时编译!

在运行时,fluidpythran尽可能使用pythrasized函数,但是 让我们再次强调,使用fluidpythran的代码在没有pythran(of 当然没有加速)!

总之,一个快速发展高效科学 使用python的应用程序/库可以是:

  • 使用现代的python编码,标准的numpy/scipy进行计算 你想要的酷库。
  • 根据实际情况分析应用程序,检测瓶颈并应用 使用numpy进行标准优化。
  • 添加几行fluidpythran来编译热点。

实现细节: 在引擎盖下,fluidpythran创建pythran文件 (AOT编译每个模块一个,JIT编译每个函数一个) 它可以在编译、导入或运行时编译,具体视情况而定。音符 如果需要,开发人员仍然可以读取pythran文件。

< div >

Tip

fluidpythran对于测试和基准测试非常方便 pythran(例如,与julia的比较 以及使用numba比较numba与fluidpythran" rel="nofollow">

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常