Author: Armin Rigo <[email protected]> Branch: extradoc Changeset: r4960:98ba962a18f1 Date: 2013-03-15 19:11 +0100 http://bitbucket.org/pypy/extradoc/changeset/98ba962a18f1/
Log: The final talk, with pdf diff --git a/talk/pycon2013/pypy_without_gil/Makefile b/talk/pycon2013/pypy_without_gil/Makefile --- a/talk/pycon2013/pypy_without_gil/Makefile +++ b/talk/pycon2013/pypy_without_gil/Makefile @@ -3,8 +3,8 @@ # http://bitbucket.org/antocuni/env/src/619f486c4fad/bin/inkscapeslide.py -talk.pdf: talk.rst author.latex title.latex stylesheet.latex - rst2beamer --stylesheet=stylesheet.latex --documentoptions=14pt talk.rst talk.latex || exit +talk.pdf: talk.rst author.latex stylesheet.latex + rst2beamer.py --input-encoding=utf8 --output-encoding=utf8 --stylesheet=stylesheet.latex --documentoptions=14pt talk.rst talk.latex || exit sed 's/\\date{}/\\input{author.latex}/' -i talk.latex || exit #sed 's/\\maketitle/\\input{title.latex}/' -i talk.latex || exit pdflatex talk.latex || exit diff --git a/talk/pycon2013/pypy_without_gil/author.latex b/talk/pycon2013/pypy_without_gil/author.latex --- a/talk/pycon2013/pypy_without_gil/author.latex +++ b/talk/pycon2013/pypy_without_gil/author.latex @@ -4,5 +4,5 @@ \author[arigo, fijal] {Armin Rigo \\ Maciej Fijałkowski} -\institute{Pycon US 2013} +\institute{PyCon US 2013} \date{March 15 2013} diff --git a/talk/pycon2013/pypy_without_gil/talk.pdf b/talk/pycon2013/pypy_without_gil/talk.pdf new file mode 100644 index 0000000000000000000000000000000000000000..42a99f8e0181cc640fe47ec8ff46d3fe59db3af6 GIT binary patch [cut] diff --git a/talk/pycon2013/pypy_without_gil/talk.rst b/talk/pycon2013/pypy_without_gil/talk.rst --- a/talk/pycon2013/pypy_without_gil/talk.rst +++ b/talk/pycon2013/pypy_without_gil/talk.rst @@ -7,9 +7,19 @@ Intro ----- -* PyPy is a Python interpreter with stuff (like JIT, STM, ...) +* PyPy is a Python interpreter with stuff -* No PyPy talk this year, find us around, come to BoF +* No general PyPy talk this year, find us around, come to the BoF (tomorrow 2pm) + + +This is about... +---------------- + +* This talk is about using multiple cores to achieve better performance + +* in Python (or any other existing, non-trivial, non-functional, + non-designed-for-this-problem, language) + Problem ------- @@ -126,9 +136,7 @@ * ``__pypy__.thread.atomic`` -:: - with atomic: - print "hello", username +* ``with atomic:`` ``print "hello",`` ``username`` * the illusion of serialization @@ -156,15 +164,20 @@ and stop progress in the other threads -* __pypy__.thread.last_abort_info() -> traceback-like information +* ``__pypy__.thread.last_abort_info()`` -> traceback-like information Alternative - HTM ----------------- -XXX +* Intel Haswell (released soon) has got HTM -Higher level: not threads ---------------------------- +* great for the "remove the GIL" part + +* not so great for large transactions, at least for now + + +Higher level: Threads Are Bad +----------------------------- - based on (and fully compatible with) threads @@ -173,45 +186,56 @@ - but opens up unexpected alternatives - * we can run multiple threads but at the same time use ``atomic`` - * with the GIL-based idea of ``atomic`` it doesn't make sense: - we have multiple threads but they're all using ``atomic``, i.e. - only one at a time will ever run... except no :-) +Higher level: Atomic +-------------------- +* we can run multiple threads but at the same time use ``atomic`` +* with the GIL-based idea of ``atomic`` it wouldn't make sense + - multiple threads + + - but they're all using ``atomic`` -- xxx memory usage good + - i.e. only one at a time will ever run + - ...except no :-) +Transactions +------------ -- transaction.py +* ``transaction.py``: example of wrapper hiding threads - * demo +* illusion of serial execution: can "sanely" reason about algorithms - * illusion of serial execution: can "sanely" reason about algorithms - * "Conflict tracebacks" +Transaction conflicts +--------------------- - * Might need to debug them --- but they are performance bugs, not - correctness bugs +* "Conflict tracebacks" - * The idea is that we fix only XX% of the bugs and we are done +* Might need to debug them --- but they are performance bugs, not + correctness bugs - * Maybe some new "performance debugger" tools might help too +* The idea is that we fix only XX% of the bugs and we are done +* Maybe some new "performance debugger" tools might help too -- TigerQuoll, 1st March: same idea with JavaScript (for servers) - * various models possible: +We're not the only ones +----------------------- - . events dispatchers +TigerQuoll, 1st March: same idea with JavaScript (for servers) - . futures +Various models possible: - . map/reduce, scatter/gather +* events dispatchers + +* futures + +* map/reduce, scatter/gather Event dispatchers @@ -243,3 +267,5 @@ --- * http://pypy.org + +* http://bit.ly/pypystm _______________________________________________ pypy-commit mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-commit
