Commits

Armin Rigo committed fc3667a

Updates

  • Participants
  • Parent commits 5c1254c

Comments (0)

Files changed (4)

talk/fosdem2014/Makefile

+# Note to myself (arigo): run in the 64-bit environment
+
+pypy-stm.pdf: pypy-stm.tex
+	pdflatex pypy-stm.tex
+
+pypy-stm.tex: pypy-stm.rst
+	rst2beamer.py --stylesheet=stylesheet.latex --documentoptions=14pt --input-encoding=utf8 --output-encoding=utf8 $< | python expand-itemize.py > pypy-stm.tex
+
+clean:
+	rm -f pypy-stm.tex pypy-stm.pdf

talk/fosdem2014/expand-itemize.py

+import sys
+
+def expand(in_file, out_file):
+    for line in in_file:
+        line = line.replace(r'\begin{itemize}',
+                            r'\begin{itemize}\setlength{\itemsep}{10pt}')
+        out_file.write(line)
+
+if __name__ == '__main__':
+    expand(sys.stdin, sys.stdout)

talk/fosdem2014/pypy-stm.rst

 
 * PyPy dev, CPython dev
 
+* This talk applies to Python or any similar language
+
 
 Problem
 =======
 Transactional Memory
 ====================
 
-* Recent research
+* Recent research (past ~10 years)
 
 * Optimistically runs multiple threads even if they
   are supposed to be waiting on the same lock
 
-* High overheads (but working on it)
+* Usually, high overheads
 
 
 Expected results
 ================
 
-* Runs multiple threads despite having a single GIL
+* Runs multiple threads despite a single GIL
 
 * Does not remove the GIL, but solves the original problem anyway
 
 
-Kinds of Transactional Memory
-=============================
+Transactional Memory
+====================
 
 * STM: Software Transactional Memory
 
 Status
 ======
 
-* STM is still at least 2x slower (speed on a single core)
+* STM is still at least 2x slower (on one core)
 
-* HTM in Ruby with Intel Haswell CPUs: not bad but
+* HTM: tested in Ruby with Intel Haswell CPUs, not bad but
   still disappointing (imo)
 
 
 STM C7
 ======
 
-* Our group's research
+* c7 is our group's research (there were a lot of previous
+  research that failed to give good results)
 
 * Hope: much less than 2x slower for "PyPy-like" usages
 
 
 * One bytecode?  Obscure for the regular Python programmer
 
-* Larger atomic sections: ``with atomic:``
+* Larger atomic sections:
 
+::
 
-So...
-=====
+   with atomic:
+      ...
 
-* New way to synchronize multiple threads: ``with atomic:``
+
+Larger atomic sections
+======================
+
+* New way to synchronize multiple threads
 
 * All ``atomic`` blocks appear to run serialized
 
 
 * Works even if you don't use threads!
 
-* If the Twisted reactor was modified to start a pool of threads,
-  and to run all events in ``with atomic:``
+* If the Twisted reactor (say) was modified to start a pool of threads,
+  and to run all events in "``with atomic:``"
 
 * ...Then the end result is the same, for any Twisted program
 
 * The thread pool added behind the scene lets a STM/HTM-enabled
   Python run on several cores
 
-* The ``with atomic:`` means that the semantics of the Twisted
+* The "``with atomic:``" means that the semantics of the Twisted
   program didn't change
 
 
 
 * You need to figure out where the conficts are
 
-* Maybe using some debugger-like tool that reports conflicts
+* Maybe using some debugger-like tools that report conflicts
 
-* Then you need small rewrites to avoid them
+* Then you need (hopefully small) rewrites to avoid them
 
 
 What is the point?
 ==========
 
 * Mostly theoretical for now: there is a risk it won't work in
-  practice (I bet it will ``:-)``)
+  practice [1]
 
 * Expect progress in the following months: http://morepypy.blogspot.com/
+
+::
+
+    -
+  
+[1] I bet it will, eventually ``:-)``

talk/fosdem2014/stylesheet.latex

+\usetheme{Warsaw}
+\usecolortheme{whale}
+\setbeamercovered{transparent}
+\definecolor{darkgreen}{rgb}{0, 0.5, 0.0}
+\newcommand{\docutilsrolegreen}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\docutilsrolered}[1]{\color{red}#1\normalcolor}
+\addtobeamertemplate{block begin}{}{\setlength{\parskip}{35pt plus 1pt minus 1pt}}
+
+\newcommand{\green}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\red}[1]{\color{red}#1\normalcolor}