[pypy-commit] extradoc extradoc: (fijal, agaynor) start writing slides

fijal noreply at buildbot.pypy.org
Mon Feb 13 23:23:42 CET 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
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


More information about the pypy-commit mailing list