Author: Armin Rigo <ar...@tunes.org>
Branch: extradoc
Changeset: r4148:9b2e5807749c
Date: 2012-03-10 08:05 -0800
http://bitbucket.org/pypy/extradoc/changeset/9b2e5807749c/

Log:    Change the approach in the lighting talk.

diff --git a/talk/pycon2012/lightningtalk-tm.txt 
b/talk/pycon2012/by-example/tm.txt
copy from talk/pycon2012/lightningtalk-tm.txt
copy to talk/pycon2012/by-example/tm.txt
diff --git a/talk/pycon2012/lightningtalk-tm.txt 
b/talk/pycon2012/lightningtalk-tm.txt
--- a/talk/pycon2012/lightningtalk-tm.txt
+++ b/talk/pycon2012/lightningtalk-tm.txt
@@ -1,60 +1,288 @@
 
 
-Transactional Memory
---------------------
 
 
 
-Software Transactional Memory: STM
-Hardware Transactional Memory: HTM
+    Garbage Collection
+    ------------------
 
 
+    PascalCon 1982
 
-             |
-thread 1     |XXXXXXXXXXXXXXXXXXXXXXXXXXXX...
-             |
-             +------------------------------> time
 
 
 
-             |
-thread 1     |[XX]         [X]           [X]
-thread 2     |    [XX]            [XX]  
-thread 3     |        [XXX]   [XX]    [X]
-             +------------------------------> time
 
 
-             |
-thread 1     |[XX][X][X]
-thread 2     |[XX][XX]  
-thread 3     |[XXX][XX][X]
-             +------------------------------> time
 
 
+    you call malloc()
 
-             |
-thread 1     |[XX][X-oups-[X][X]
-thread 2     |[XX][XX]
-thread 3     |[XX-oups-[XXX][XX][X]
-             +------------------------------> time
+    you don't need to call free()
 
 
 
-             |
-thread 1     |[XXXXXXXXXX] [XXXXXXXXXXXXXX] [...
-             |
-             +------------------------------> time
 
 
 
-             |
-thread 1     |[XXXXXXXXXX] [...
-thread 2     |[XXXXXXXXXXXXXXXXX]
-             +------------------------------> time
 
 
 
-             |
-thread 1     |[XXXXXXXXXX] [...
-thread 2     |[XXX-oups-[XXXXXXXXXXXXXXXXX]
-             +------------------------------> time
+
+
+    costly, so likely just for a
+    fraction of the malloc()s
+
+
+
+
+
+
+
+
+
+    open issues:
+
+    integration is hard:
+
+    pointers between GC-managed
+    and explicitly-managed memory
+
+
+
+
+
+
+
+
+
+    "solution": put everything
+    in the GC-managed memory
+
+
+
+
+
+
+
+
+
+
+
+
+    theoretical answer:
+    horrible for performance
+    (memory and speed)
+
+
+
+
+
+
+
+
+
+
+
+    for the foreseeable future:
+    just a solution of convenience
+
+    not for real programmers
+
+
+
+
+
+
+
+
+    real programmers can live with
+    the mess of explicit memory
+    management
+
+
+
+
+
+
+
+    ...30 years later:
+    
+    PyCon 2012
+    ----------
+
+
+
+
+
+
+
+
+
+
+    Garbage Collection is automatic
+    and everywhere
+
+
+    (but was hard work to get right)
+
+
+
+
+
+
+
+
+
+
+    we don't talk about Garbage Collection
+
+
+
+
+
+
+
+
+
+
+
+
+
+    instead we talk about how to use
+    multiple cores
+
+
+
+
+
+
+
+
+
+
+
+
+    mess with locks, reentrant locks,
+    semaphores, events, ...
+
+
+
+
+
+
+
+
+
+    in Python we have the GIL
+
+    but *also* the threading module
+
+
+
+
+
+
+
+
+
+
+
+
+
+    i.e. also, if we want, the mess
+
+
+
+
+
+
+
+    Transactional Memory
+    --------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+    promises to give multicore usage
+
+
+
+
+
+
+
+
+    performance issues
+
+
+         and
+
+
+    hard integration issues:
+
+    co-operation between transactional
+    and non-transactional code, I/O, etc
+
+
+
+
+
+
+
+
+    "solution": run everything in
+    Transactional Memory
+
+
+
+
+
+
+
+
+    your app answers to "events"
+    (web requests, anything)
+
+    we can run these events
+    mostly in parallel
+
+    we care for sync issues under the hood
+
+
+
+
+
+
+    "solution"
+
+
+    hard work, but likely worth
+    removing the quotes :-)
+
+
+
+
+
+
+
+
+
+
+    STM
+
+    http://pypy.org/
+
+
+
+
+
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to