Revision: 10299
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 16, 2008 23:55 by tamuratetsuya
Initial Code
If you need to speed up your Python program there are several possible approaches, with varying degree of effort needed, here is (probably not complete) overview:
1. Rewrite your Python code by parallelizing or optimizing/replacing/tuning algorithm(s), e.g. using:
* Hadoop or Disco
o Open source implementations of MapReduce
* Parallel Python
* Message Passing Interface (MPI)
o Frequently used for numerical programming
* Bulk Synchronous Parallel (BSP)
* RPyC
o RPC for Distributed/Parallel Programming
* Twisted
o Network libraries for Distributed/Parallel Programming
* Profiling Tools
* Threading or Microthreads (Stackless)
2. Use a tool that can speed up your code more or less unchanged
* Psyco
o Just in time compiler, note: this is probably the easiest approach to try
* Pyrex
o Write and compile Python with a flavor of C data structures
* Cython
* PyJs
o Compile (large subset of) Python to Javascript, note: probably more interesting for client development (ajax) than server side.
* Rpython
o Compile (large subset of) Python to native code, note: part of PyPy project
* PyStream
* GPULib
* Shedskin
o Compile (large subset of) Python to C++, some benchmarks
3. Replace (parts of) your Python code with another language
* Simplified Wrapper and Interface Generator (SWIG)
o Use C/C++ from Python
* Fortran to Python Interface Generator (F2PY)
o Use Fortran from Python
* llvm-py
o Code and Compile to Assembler for running on Low-Level Virtual Machine
* CorePy
o Write Assembly Code in Python
* Weave
* PyInline
* Boost.Python
* Cinpy
o C code blended with Python (using ctypes) and runtime compilation with tcc
Initial URL
http://amundblog.blogspot.com/2008/11/tools-for-accelerating-python.html
Initial Description
Initial Title
Tools for Accelerating Python
Initial Tags
python
Initial Language
Python