python-benchmarks

A set of benchmark problems and implementations for Python

  • 所有者: numfocus/python-benchmarks
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

python-benchmarks

A set of benchmark problems and implementations for Python.

Results

numfocus.github.io/python-benchmarks

Motivation

This repository is the result of a discussion of started by
@aterrel at SciPy 2013 where people interested in
the development of compiler technologies for the Python programming language
shared design decisions.

The goal of this repository to gather Python implementations of realistic use
cases where:

  • naive code written with the CPython interpreter is too
    slow to be of practical use,

  • an implementation of the algorithm cannot be efficiently vectorized using
    NumPy primitives (for instance by involving nested for-loops)

Initial use cases focus on data processing tasks such as machine
learning
and signal processing.

For each benchmark, we would like to gather:

  • a naive pure python implementation (optionally using NumPy for large
    homogeneous numerical datastructures) run using CPython

  • variants of the Python version that should be able to run the naive pure
    Python version with minimal code change:

    • JIT compiler packaged as a library for CPython such as:

    • JIT compiler implemented in an alternative Python interpreter such as:

    • Python to C/C++ code translation + compiled extension for the CPython
      interpreter such as done by:

  • pure Python programs that explicitly represent the computation as a graph of
    Python objects and use code generation and a compiler to dynamically build a
    compiled extension such as done by Theano

  • alternative language implementations in Cython, C or Fortran with Python
    bindings to serve as speed reference.

Running

To run all the benchmarks:

python run_benchmarks.py

To run the benchmarks of a specific folder:

python run_benchmarks.py --folders pairwise

To run only the benchmarks with specific platforms:

python run_benchmarks.py --platforms numba parakeet cython

To ignore previously collected data:

python run_benchmarks.py --ignore-data

To see all the tracebacks of the collected errors:

python run_benchmarks.py --log-level debug

To open a browser on the generated HTML report page:

python run_benchmarks.py --open-report

To publish the generated report to github (assuming you want to push to
origin):

make github

Or to another remote alias:

WEB_ALIAS_REPO=upstream make github

Dependencies

Using pip

  • Some dependencies use llvmpy that require to have
    llvm built with the REQUIRES_RTTI=1 environment variable. Under OSX you
    can install llvm with HomeBrew:

    brew install llvm --rtti

  • Install the dependencies from the requirements.txt file:

    pip install -r requirements.txt

Note: some packages (pythran and ply) have a depency on SciPy which is
complicated and slow to install from source because of the need of a gfortran
compiler and a large C++ code base. It is recommended to install a binary
package for SciPy (see http://scipy.org/install.html for instructions).

Using conda / Anaconda

TODO

Non CPython dependencies

You can also install PyPy from http://pypy.org

主要指标

概览
名称与所有者numfocus/python-benchmarks
主编程语言CSS
编程语言Python (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2013-07-07 21:30:47
推送于2023-01-17 14:04:05
最后一次提交2013-11-22 17:21:54
发布数0
用户参与
星数64
关注者数21
派生数23
提交数125
已启用问题?
问题数7
打开的问题数7
拉请求数19
打开的拉请求数1
关闭的拉请求数2
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?