Note: The official CorePy website is now online. This page is the original synthetic programming site.

CorePy: Synthetic Programming in Python

Synthetic Programming is a new approach to generating high-performance computational kernels directly from scripting languages. Bypassing the traditional compiler tool-chain, synthetic programming provides low level access to the processor instruction sets and the basic tools required to build and execute highly specialized instruction sequences on data managed by scripting languages.

CorePy is a synthetic programming environment for Python running on PowerPC and Cell processors with Linux or OS X. Using CorePy, developers can create kernels using the complete PowerPC, AltiVec/VMX, and Cell SPU instruction sets and execute them serially or in parallel on all available processing cores.

CorePy is under active development and we are seeking input from potential users to help guide future development efforts. If you are interested in using CorePy, or have suggestions that would make CorePy an attractive solution for your applications, do not hesitate to contact Chris with your feedback!

While much more than a replacement for assembly programming, one user's comment sums up most people's reaction to a few hours with CorePy:

    "CorePy makes assembly fun again!" (Alex Breuer)

CorePy 1.0 - Alpha Release

CorePy is now available via anonymous subversion access. It is currently available for evaluation purposes only.

The alpha release contains full support for programming PowerPC and Cell processors directly from Python on Linux and OS X.

Download/installation instructions and user's guide

BLAST on IBM's Cell BE with Synthetic Programming at SuperComputing 2006
(formatted for 16x9 displays)

Slides/Poster: BLAST on the Cell PDF
Poster: Synthetic Programming Overview PDF (good intro to SP)

Synthetic Programming at SciPy

Talk Abstract: Synthetic Programming with Python
Talk Slides: Synthetic Programming with Python PDF

Synthetic Programming Environment Research Papers

Paper Preprints:
    Runtime Synthesis of High-Performance Code from Scripting Languages PDF
    Christopher Mueller and Andrew Lumsdaine. Dynamic Language Symposium 2006

    Expression and Loop Libraries for High-Performance Code Synthesis PDF
    Christopher Mueller and Andrew Lumsdaine. LCPC2006

Chris Mueller

Open Systems Lab / Computer Science Department
Indiana University
215 Lindley Hall
Bloomington, IN 47405