[pypy-commit] extradoc extradoc: update
mattip
pypy.commits at gmail.com
Thu Apr 28 04:52:21 EDT 2016
Author: Matti Picus <matti.picus at gmail.com>
Branch: extradoc
Changeset: r5640:e8ac394f3c2e
Date: 2016-04-28 11:51 +0300
http://bitbucket.org/pypy/extradoc/changeset/e8ac394f3c2e/
Log: update
diff --git a/talk/pycon-il-2016/Makefile b/talk/pycon-il-2016/Makefile
--- a/talk/pycon-il-2016/Makefile
+++ b/talk/pycon-il-2016/Makefile
@@ -1,13 +1,10 @@
# pip install rst2beamer
-# WARNING: to work, it needs this patch for docutils
-# https://sourceforge.net/tracker/?func=detail&atid=422032&aid=1459707&group_id=38414
+talk.pdf: talk.latex
+ pdflatex talk.latex
-talk.pdf: talk.tex
- pdflatex talk.tex
-
-talk.tex: talk.rst author.latex stylesheet.latex
- rst2beamer --stylesheet=stylesheet.latex --documentoptions=14pt --input-encoding=utf8 --output-encoding=utf8 $< > talk.latex
+talk.latex: talk.rst author.latex stylesheet.latex *.png
+ rst2beamer --stylesheet=stylesheet.latex --documentoptions=12pt --input-encoding=utf8 --output-encoding=utf8 $< > talk.latex
sed 's/\\date{}/\\input{author.latex}/' -i talk.latex || exit
diff --git a/talk/pycon-il-2016/ndarray.png b/talk/pycon-il-2016/ndarray.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..30c7c55cd501c36f9d322596b3a481c0de63a9fc
GIT binary patch
[cut]
diff --git a/talk/pycon-il-2016/speed.png b/talk/pycon-il-2016/speed.png
index 63b771ce59358bbcb28efbba84a43f03328b4554..d4a72a103291365508bc5813d04a6acbc1d9f402
GIT binary patch
[cut]
diff --git a/talk/pycon-il-2016/talk.pdf b/talk/pycon-il-2016/talk.pdf
index 27f0b7ce06dde8f973e1eb3c65f491c87a2d1604..51c1443ef77403e7affefca9ed3b4d748cf0c7c2
GIT binary patch
[cut]
diff --git a/talk/pycon-il-2016/talk.rst b/talk/pycon-il-2016/talk.rst
--- a/talk/pycon-il-2016/talk.rst
+++ b/talk/pycon-il-2016/talk.rst
@@ -4,54 +4,18 @@
PyPy 2016
=========
-Introduction
-------------
+Python means four things:
+-------------------------
Python is
-* A syntax or two
+* A syntax or six `(2 * 3 = 6)`
-* An interpreter
+* An interpreter to run code written in the syntax
* A set of standard libraries shipped with the interpreter
-* A vibrant number of communitis that shares code
-
-PyPy
-----
-
-* PyPy is an interpreter written in RPython
-
-* Speed is one of its main advantages
-
-* Compatible (mostly)
-
-Speed
------
-
-.. image:: speed.png
- :scale: 50%
- :align: center
-
-How ?
------
-
-* Tracing Just-In-Time compiler
-
-* Optimizes loops
-
-* Traces one iteration of a loop
-
-* Produces a linear trace of execution
-
-* Inlines almost everything
-
-* The trace is then optimized and compiled
-
-* Removes overhead
-
-Prove It
---------
+* A vibrant number of communities that share code
Techniques to achieve performant Python
---------------------------------------
@@ -70,33 +34,100 @@
* Use PyPy
+PyPy
+----
+
+* PyPy is an interpreter written in RPython
+
+* It ships with the standard library
+
+* Speed is one of its main advantages
+
+* Compatible (mostly) via pip install
+
+* Not the only alternative interpreter
+
+Speed (Applause)
+----------------
+
+.. image:: speed.png
+ :scale: 50%
+ :align: center
+
+Speed continued
+---------------
+
+* Benchmarking, statistics, politics
+
+* Did I mention warmup time?
+
+How ?
+-----
+
+* Tracing Just-In-Time compiler
+
+* Optimizes loops
+
+* Traces one iteration of a loop
+
+* Produces a linear trace of execution
+
+* The trace is then **optimized** and compiled
+
+Why is this fast?
+-----------------
+
+* Inlining
+
+* Promotion
+
+* Unrolling
+
+* Strategies
+
+ - Convert sequences to arrays
+
+ - Vectorization
+
+Prove It
+--------
+
+* profiling
+
+* jitviewer
+
Why not PyPy?
-------------
-* Python III
+* Python and the community
* Third-party library support
-PyPy and C (1/2)
+* No easy packaging (like Winpython or Anaconda)
+
+ - Opportunity???
+
+PyPy and C (1/3)
----------------
-* PyPy and CFFI
+* PyPy and CFFI (Armin Rigo, Maciej Fijałkowski)
-* CFFI is the easiest tool to I've used so far
-
-* Very fast on PyPy, fast enough on CPython
-
-* Used by NumPyPy
+* CFFI is easy, just massage the headers and that's it
* Use CFFI to call python from C
- This means you can create your own C API in pure Python !
-PyPy and C (2/2)
+PyPy and C (2/3)
----------------
* CFFI enables embedded Python (and PyPy) in a C application (uWSGI)
+* Very fast on PyPy, fast enough on CPython
+
+PyPy and C (3/3)
+----------------
+
* What about C-API (glad you asked)
* Actively worked on right now
@@ -106,6 +137,8 @@
* Leaks way too many implementation details (refcounting, PyObject structure fields)
+* C allows you to cheat (private, read-only)
+
* Makes it hard to improve Python while supporting 100% of the API
* PyPy 5.0 introduced a major rewrite
@@ -117,7 +150,7 @@
* https://bitbucket.org/pypy/numpy + pypy
-* I have been working on it since 2011
+* I have been working on it since 2011, together with many others
* Replaces ndarray, umath with builtin modules
@@ -126,11 +159,21 @@
* Most of numpy is there: object dtypes, ufuncs
* linalg, fft, random all via cffi
+* Should be as fast as Numpy, faster for smaller arrays
NumPyPy performance
-------------------
-* Should be as fast as Numpy, faster for smaller arrays
+* From http://rpubs.com/mikefc/60129
+
+.. image:: ndarray.png
+ :scale: 35%
+ :align: center
+
+* numpypy in blue, numpy in red
+
+NumPyPy future
+--------------
* Lazy evaluation ?
@@ -141,7 +184,7 @@
* https://github.com/rguillebert/pymetabiosis
-* Work in progress
+* Proof of concept (Romain Guillebert)
* Allows you to use any CPython module on PyPy (scipy for example)
@@ -226,12 +269,12 @@
* Native numpy (tweaked) passes 90% of tests
-* How to leverage the JIT?
+* How to leverage the JIT and NumPyPy?
Why this makes sense
--------------------
-* Advantages and disadvantages of RPython
+* Advantages of RPython
* Advantages of a JIT (vectorization)
@@ -242,11 +285,21 @@
* Get PyPy at pypy.org (or from your favorite distribution)
-* Try it
+* Use it in a virtualenv
-* Give us feedback (good or bad)
+* Give us feedback (good or bad) #pypy on IRC
-Thank You
+Thank You
---------
-Questions ?
+Questions ? Examples:
+
+* What about this other interpreter I heard of?
+
+* How can I get involved?
+
+* What about commercial involvement?
+
+* How can I get support?
+
+* What about Python 3.5?
More information about the pypy-commit
mailing list