Author: Armin Rigo <ar...@tunes.org>
Branch: extradoc
Changeset: r5817:3e9c42adda30
Date: 2017-07-13 16:55 +0200
http://bitbucket.org/pypy/extradoc/changeset/3e9c42adda30/

Log:    First draft of the talk

diff --git a/talk/ep2017/pypy-whats-new/Makefile 
b/talk/ep2017/pypy-whats-new/Makefile
new file mode 100644
--- /dev/null
+++ b/talk/ep2017/pypy-whats-new/Makefile
@@ -0,0 +1,6 @@
+slides.pdf: slides.tex author.latex
+       pdflatex $<
+
+slides.tex: slides.rst
+       rst2beamer.py slides.rst > slides.tex
+       sed 's/\\date{}/\\input{author.latex}/' -i slides.tex || exit
diff --git a/talk/ep2017/pypy-whats-new/author.latex 
b/talk/ep2017/pypy-whats-new/author.latex
new file mode 100644
--- /dev/null
+++ b/talk/ep2017/pypy-whats-new/author.latex
@@ -0,0 +1,7 @@
+\definecolor{rrblitbackground}{rgb}{0.4, 0.0, 0.0}
+
+\title[What's New in PyPy]{PyPy meets Python 3 and Numpy (and other What's New 
topics)}
+\author[Armin Rigo]{Armin Rigo}
+
+\institute{EuroPython 2017}
+\date{July 2017}
diff --git a/talk/ep2017/pypy-whats-new/graphs.png 
b/talk/ep2017/pypy-whats-new/graphs.png
new file mode 100644
index 
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9e5b0156179767c78b72f414147959bec8e982c0
GIT binary patch

[cut]

diff --git a/talk/ep2017/pypy-whats-new/slides.rst 
b/talk/ep2017/pypy-whats-new/slides.rst
new file mode 100644
--- /dev/null
+++ b/talk/ep2017/pypy-whats-new/slides.rst
@@ -0,0 +1,245 @@
+===========================================================
+PyPy meets Python 3 and Numpy (and other What's New topics)
+===========================================================
+
+
+What's New In PyPy
+==================
+
+1. Python 3.5
+
+2. Numpy, Cython, Pandas, ...
+
+3. pypy-stm?
+
+4. RevDB: reverse debugging
+
+5. Others...
+
+
+What is PyPy
+============
+
+* PyPy is another implementation of Python
+
+* Supports only Python 2.7... up to this year
+
+* Comes with a JIT, good performance
+
+* Mostly, drop-in replacement
+
+
+
+PyPy 3.5
+============================================================
+
+PyPy 3.5
+==========
+
+* Python 3.5 support released in **beta**
+
+* Drop-in replacement for ``python3.5``
+
+* Thanks to Mozilla for funding this work!
+
+
+PyPy 3.5
+==========
+
+* Async HTTP benchmarks:
+
+.. image:: graphs.png
+   :scale: 21%
+
+
+PyPy 3.5 status
+===============
+
+* Roughly complete 3.5 support (plus f-strings!)
+
+* Reasonably good performance
+
+* Tested mostly on Linux so far
+
+* Non-beta to be released "soon" (i.e. some time in 2017 I guess)
+
+* Python 3.6 to follow
+
+
+Scientific stack
+============================================================
+
+Scientific stack
+================
+
+Numpy or Numpypy?
+
+* Numpy = the standard numpy library
+
+* Numpypy = our own partial reimplementation
+
+
+Scientific stack
+================
+
+Numpy or Numpypy?
+
+* Numpy = the standard numpy library  *(use this)*
+
+* Numpypy = our own partial reimplementation  *(deprecated)*
+
+
+Scientific stack
+================
+
+* Numpy works (99.9%)
+
+* On both PyPy 2.7 and PyPy 3.5
+
+* The rest of the scientific stack mostly works too (Pandas etc.)
+
+
+Cython, cpyext
+================
+
+* Cython mostly works
+
+* Any CPython C extension module mostly works
+
+* This is all thanks to ``cpyext``, our CPython C API emulation layer
+
+
+Performance?
+==============
+
+* Numpy/Pandas/etc. are all slow-ish at the Python-C boundary
+
+* Less so than last year
+
+* Complex algorithms written inside Numpy in C or Fortran have the same
+  speed, of course
+
+
+Performance?
+==============
+
+* Basically: try it out on your own code
+
+
+
+Software Transactional Memory
+============================================================
+
+Software Transactional Memory
+=============================
+
+* ``pypy-stm``: getting rid of the Global Interpreter Lock
+
+* ...unfortunately, this approach does not seem to work :-(
+
+
+Software Transactional Memory
+=============================
+
+Unstable performance:
+
+* "Conflicts" between threads are hard to find
+
+* Fix one conflict, usually only to uncover the next one
+
+* As long as there is one, performance is bad
+
+* Continue developing the program, and you'll often reintroduce conflicts
+
+
+PyPy-nogil?
+===========
+
+* Thinking instead about a GIL-free but non-STM PyPy
+
+
+
+Reverse Debugger
+============================================================
+
+Reverse Debugger
+================
+
+* The essential tool you need once a year
+
+
+Reverse Debugger
+================
+
+* Debugger with the ability to go forward *and backward in time*
+
+* Watchpoints to know when a value changes when going in either
+  direction
+
+* http://bitbucket.org/pypy/revdb
+
+
+
+Others
+============================================================
+
+JIT improvements
+======================
+
+* Reductions in the warm-up time
+
+* Consumes less memory, too
+
+
+VMProf
+=====================
+
+* ``pip install vmprof``
+
+* Works on CPython and on PyPy
+
+* A "good" high-performance profiler for Python code
+
+* The PyPy version shows the machine code generated by the JIT
+
+
+CFFI improvements
+=======================
+
+* CFFI: calling C from Python (from CPython or PyPy)
+
+* Biggest improvement of last year is *embedding*
+
+* Use CFFI to embed Python inside another program---much easier than
+  with the CPython C API, and works identically on CPython or PyPy too
+
+
+Next year?
+=================================================================
+
+Next year?
+==========
+
+* Polish PyPy 3.5 / 3.6
+
+* Polish Numpy and the scientific stack
+
+* Play with PyPy-nogil
+
+* Port RevDB to PyPy 3.5
+
+.
+
+
+Question & answers
+==================
+
+* Polish PyPy 3.5 / 3.6
+
+* Polish Numpy and the scientific stack
+
+* Play with PyPy-nogil
+
+* Port RevDB to PyPy 3.5
+
+Thank you!  PyPy main site: http://pypy.org/
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to