[pypy-commit] extradoc extradoc: Tweaks
arigo
noreply at buildbot.pypy.org
Tue Jul 22 18:01:40 CEST 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: extradoc
Changeset: r5370:3190704f9cd2
Date: 2014-07-22 18:01 +0200
http://bitbucket.org/pypy/extradoc/changeset/3190704f9cd2/
Log: Tweaks
diff --git a/talk/ep2014/stm/talk.html b/talk/ep2014/stm/talk.html
--- a/talk/ep2014/stm/talk.html
+++ b/talk/ep2014/stm/talk.html
@@ -488,7 +488,7 @@
<div class="slide" id="transactional-memory">
<h1>Transactional Memory</h1>
<ul class="simple">
-<li>like GIL, but instead of locking, each thread runs optimistically</li>
+<li>like GIL, but instead of blocking, each thread runs optimistically</li>
<li>"easy" to implement:<ul>
<li>GIL acquire -> transaction start</li>
<li>GIL release -> transaction commit</li>
@@ -507,7 +507,7 @@
<ul class="simple">
<li>application-level locks still needed...</li>
<li>but <em>can be very coarse:</em><ul>
-<li>even two big transactions can hopefully run in parallel</li>
+<li>even two big transactions can optimistically run in parallel</li>
<li>even if they both <em>acquire and release the same lock</em></li>
</ul>
</li>
@@ -546,6 +546,7 @@
<li>current status:<ul>
<li>basics work</li>
<li>best case 25-40% overhead (much better than originally planned)</li>
+<li>parallelizing user locks not done yet</li>
<li>tons of things to improve</li>
<li>tons of things to improve</li>
<li>tons of things to improve</li>
@@ -563,18 +564,38 @@
<li>counting primes</li>
</ul>
</div>
+<div class="slide" id="benefits">
+<h1>Benefits</h1>
+<ul class="simple">
+<li>Keep locks coarse-grained</li>
+<li>Potential to enable parallelism:<ul>
+<li>in CPU-bound multithreaded programs</li>
+<li>or as a replacement of <tt class="docutils literal">multiprocessing</tt></li>
+<li>but also in existing applications not written for that</li>
+<li>as long as they do multiple things that are "often independent"</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="slide" id="issues">
+<h1>Issues</h1>
+<ul class="simple">
+<li>Performance hit: 25-40% everywhere (may be ok)</li>
+<li>Keep locks coarse-grained:<ul>
+<li>but in case of systematic conflicts, performance is bad again</li>
+<li>need to track and fix them</li>
+<li>need tool support (debugger/profiler)</li>
+</ul>
+</li>
+</ul>
+</div>
<div class="slide" id="summary">
<h1>Summary</h1>
<ul class="simple">
<li>Transactional Memory is still too researchy for production</li>
-<li>Potential to enable parallelism:<ul>
-<li>as a replacement of <tt class="docutils literal">multiprocessing</tt></li>
-<li>but also in existing applications not written for that</li>
-<li>as long as they do multiple things that are "often independent"</li>
-</ul>
-</li>
-<li>Keep locks coarse-grained:<ul>
-<li>need to track and fix issues in case of systematic conflicts</li>
+<li>But it has the potential to enable "easier parallelism"</li>
+<li>Still alpha but slowly getting there!<ul>
+<li>see <a class="reference external" href="http://morepypy.blogspot.com/">http://morepypy.blogspot.com/</a></li>
</ul>
</li>
</ul>
diff --git a/talk/ep2014/stm/talk.rst b/talk/ep2014/stm/talk.rst
--- a/talk/ep2014/stm/talk.rst
+++ b/talk/ep2014/stm/talk.rst
@@ -122,7 +122,7 @@
Transactional Memory
--------------------
-* like GIL, but instead of locking, each thread runs optimistically
+* like GIL, but instead of blocking, each thread runs optimistically
* "easy" to implement:
@@ -145,7 +145,7 @@
* but *can be very coarse:*
- - even two big transactions can hopefully run in parallel
+ - even two big transactions can optimistically run in parallel
- even if they both *acquire and release the same lock*
@@ -186,6 +186,7 @@
- basics work
- best case 25-40% overhead (much better than originally planned)
+ - parallelizing user locks not done yet
- tons of things to improve
- tons of things to improve
- tons of things to improve
@@ -201,22 +202,46 @@
* counting primes
+Benefits
+--------
+
+* Keep locks coarse-grained
+
+* Potential to enable parallelism:
+
+ - in CPU-bound multithreaded programs
+
+ - or as a replacement of ``multiprocessing``
+
+ - but also in existing applications not written for that
+
+ - as long as they do multiple things that are "often independent"
+
+
+Issues
+------
+
+* Performance hit: 25-40% everywhere (may be ok)
+
+* Keep locks coarse-grained:
+
+ - but in case of systematic conflicts, performance is bad again
+
+ - need to track and fix them
+
+ - need tool support (debugger/profiler)
+
+
Summary
-------
* Transactional Memory is still too researchy for production
-* Potential to enable parallelism:
+* But it has the potential to enable "easier parallelism"
- - as a replacement of ``multiprocessing``
+* Still alpha but slowly getting there!
- - but also in existing applications not written for that
-
- - as long as they do multiple things that are "often independent"
-
-* Keep locks coarse-grained:
-
- - need to track and fix issues in case of systematic conflicts
+ - see http://morepypy.blogspot.com/
Part 2 - Under The Hood
More information about the pypy-commit
mailing list