Author: Maciej Fijalkowski <[email protected]> Branch: extradoc Changeset: r4086:0847e4b90c62 Date: 2012-02-13 23:23 +0100 http://bitbucket.org/pypy/extradoc/changeset/0847e4b90c62/
Log: (fijal, agaynor) start writing slides diff --git a/talk/sea2012/talk.rst b/talk/sea2012/talk.rst new file mode 100644 --- /dev/null +++ b/talk/sea2012/talk.rst @@ -0,0 +1,103 @@ +Fast numeric in Python - NumPy and PyPy +======================================= + +What is this talk about? +------------------------ + +* what is pypy and why +* numeric landscape in python +* what we achieved in pypy +* where we're going + +What is PyPy? +------------- + +* **An efficient implementation of Python language** + +* A framework for writing efficient dynamic language implementations + +* An open source project with a lot of volunteer effort + +* I'll talk today about the first part (mostly) + +PyPy status right now +--------------------- + +* An efficient just in time compiler for the Python language + +* Relatively "good" on numerics (compared to other dynamic languages) + +* Example - real time video processing + +* Some comparisons + +Why would you care? +------------------- + +* "If I write this stuff in C it'll be faster anyway" + +* maybe, but ... + +Why would you care (2) +---------------------- + +* Experimentation is important + +* Implementing something faster, in human time, leaves more time for optimizations and improvements + +* For novel algorithms, being clearly expressed in code makes them easier to evaluate (Python is cleaner than C often) + +* Example - memcached server (?) XXX think about it + +Numerics in Python +------------------ + +XXX numeric expressions, plots etc. + +Problems with numerics in python +-------------------------------- + +* Stuff is reasonably fast, but... + +* Only if you don't actually write much Python + +* Array operations are fine as long as they're vectorized + +* Not everything is expressable that way + +* Numpy allocates intermediates for each operation, trashing caches + +Our approach +------------ + +* Build a tree of operations + +* Compile assembler specialized for aliasing and operations + +* Execute the specialized assembler + +Examples +-------- + +* ``a + a`` would generate different code than ``a + b`` + +* ``a + b * c`` is as fast as a loop + +Status +------ + +* This works reasonably well + +* Far from implementing the entire numpy, although it's in progress + +* Assembler generation backend needs works + +* No vectorization yet + +Status benchmarks +----------------- + +This is just the beginning... +----------------------------- + +* PyPy is an easy platform to experiment with _______________________________________________ pypy-commit mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-commit
