[pypy-commit] extradoc extradoc: some changes to the compiler workshop talk
plan_rich
pypy.commits at gmail.com
Mon Jul 11 10:46:21 EDT 2016
Author: Richard Plangger <planrichi at gmail.com>
Branch: extradoc
Changeset: r5651:8a0577f1e4a7
Date: 2016-07-11 09:44 -0500
http://bitbucket.org/pypy/extradoc/changeset/8a0577f1e4a7/
Log: some changes to the compiler workshop talk
diff --git a/talk/compiler-workshop-2016/slides/index.html b/talk/compiler-workshop-2016/slides/index.html
--- a/talk/compiler-workshop-2016/slides/index.html
+++ b/talk/compiler-workshop-2016/slides/index.html
@@ -25,7 +25,7 @@
<div class="reveal">
<div class="slides">
<section>
- <img class="noborder" data-src="img/pypylogo.png" />
+ <img style="border: none; box-shadow: none;" width="500px" data-src="img/pypylogo.png" />
<h2>Python Compiler Workshop</h2>
<p>11. July 2016, Austin Texas</p>
<h3>Matti Picus & Richard Plangger</h3>
@@ -38,7 +38,7 @@
up to <strong>7x</strong> on average
</section>
<section>
- <h1>PyPy's is used</h1>
+ <h1>PyPy is used</h1>
In many differnt commercial settings
</section>
</section>
@@ -46,23 +46,39 @@
<section>
<section>
<h1>What We Bring to the Table</h1>
- Our core is based on cutting-edge JIT compiler
- research, written in Python.
+ A JIT compiler & GC for your language
</section>
<section>
- <h1>Written in Python</h1>
- Being written in Python means we can quickly
- try out (and reject or incorporate) new ideas.
- For instance, our STM work has
- uncovered subtle bugs in CLANG and GCC, or the fact that we can easily try out
- new register allocation strategies.
+ <h2>Written in Python</h2>
+ Quickly try out (and reject or incorporate) new ideas.
+ </section>
+
+ <section>
+ <h2>PyPy STM</h2>
+ <p>PyPy STM, Accept the GIL, but allow concurrent and correct execution</p>
+ <p>Uncovered subtle bugs in CLANG and GCC</p>
+ <small>Done by Armin Rigo & Remi Meier</small>
+ </section>
+ <section>
+ <h2>VecOpt</h2>
+ <p>Optimization to use SIMD instructions in a loop</p>
+ <small>Done by Richard Plangger</small>
+ </section>
+ <section>
+ <h2>CPyExt Emulation</h2>
+ <p>Support a rather complete set of CPyExt</p>
+ <small>Done by Matti Picus & Armin Rigo</small>
+ </section>
+ <section>
+ <h2>VMProf, Reverse Python Debugger, CFFI, Sandboxing, several GCs</h2>
+ <p>And many more in the pipeline ... </p>
</section>
</section>
<section>
<section>
- <h2>Took us some time too</h2>
+ <h2>Took us some time ...</h2>
... but runs on all major platforms <br>
<strong>Linux, Windows, MacOS, ...</strong><br>
including four different CPU architectures <br>
@@ -75,12 +91,22 @@
<p>Flow graphs → Annotation → RTyping → Code generation</p>
<ul>
- <li>+ Whole program optimizations (take that, C)</li>
+ <li>+ Whole program optimizations</li>
<li>+ Deliver features quickly, without sacrificing speed</li>
<li>+ Loosely coupled (JIT, Interp., RPython)</li>
<li>- Takes a while to translate</li>
</ul>
</section>
+
+ <section>
+ <h2>Tracing JIT compiler</h2>
+ <p>Start off in loops and record one iteration</p>
+ <p>Build a tree of traces</p>
+ <ul>
+ <li>+ Simple and efficient type specialization</li>
+ <li>+ Optimization pass easier</li>
+ <li>- Code duplication</li>
+ </section>
</section>
<section>
<section>
@@ -93,13 +119,6 @@
</section>
<section>
- <h2>PyPy is extremly "under-funded"</h2>
- We are not pushing data science on PyPy at all,<br>
- slowly moving forward on a volunteer basis.
- <p>→ C-API compatibility</p>
- </section>
-
- <section>
<h2>Does PyPy run out of the box?</h2>
More help in identifying and resolving small issues<br>
@@ -107,11 +126,18 @@
</section>
<section>
+ <h2>PyPy is extremly "under-funded"</h2>
+ We are not pushing data science on PyPy at all,<br>
+ <p>→ C-API compatibility</p>
+ <small>Slowly moving forward on a volunteer basis</small>
+ </section>
+
+ <section>
<h2>NumPy</h2>
- We are also working on Micro NumPy, which provides the kernels for numerical operations.
- It is very usable, but still some features are missing. We would love to have a
- partner/company that would help us to complete NumPy for PyPy.
+ <p>Several limitations made us to redo part of the work</p>
+ <p>Usable, still features missing</p>
+ <small>Slowly moving forward on a volunteer basis</small>
</section>
<section>
@@ -124,14 +150,27 @@
</section>
<section>
<section>
- <h2>Opinionated aspects</h2>
+ <h2>Some Aspects</h2>
+ <p>with strong opinion</p>
+ </section>
+ <section>
+ <h4>Let's only apply</h4>
+ static compiler techniques to speed up dynamic languages
+ </section>
+ <section>
+ <h4>You need static type information</h4>
+ to optimize your program
+ </section>
+ <section>
+ <h4>Method based JIT compilers</h4>
+ is the only concept that works <strong>*cough*</strong>
</section>
<section>
<h4>Writing a program in statically compiled language</h4>
does not mean the dev time / speedup ratio is appropriate
</section>
<section>
- neither does it mean you program is fast
+ neither does it mean you program is "fast"
</section>
<section>
<h4>Exposing details of your VM impl.</h4>
@@ -141,20 +180,12 @@
and caused PyPy a lot of troubles
</section>
<section>
- <h4>Dynamic typed languages</h4>
+ <h4>Dynamically typed languages</h4>
are slow?
</section>
<section>
and cannot be used for big programs?
</section>
- <section>
- <h4>Method based JIT compilers</h4>
- is the only concept that works <strong>*cough*</strong>
- </section>
- <section>
- <h4>Let's apply</h4>
- static compiler techniques to speed up dynamic langues
- </section>
</section>
<section>
<h4>Questions?</h4>
More information about the pypy-commit
mailing list