[pypy-svn] r40412 - pypy/extradoc/talk/warsaw2007

fijal at codespeak.net fijal at codespeak.net
Mon Mar 12 20:25:39 CET 2007


Author: fijal
Date: Mon Mar 12 20:25:37 2007
New Revision: 40412

Added:
   pypy/extradoc/talk/warsaw2007/
   pypy/extradoc/talk/warsaw2007/talk.txt
Log:
Add preliminary version of my talk


Added: pypy/extradoc/talk/warsaw2007/talk.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/warsaw2007/talk.txt	Mon Mar 12 20:25:37 2007
@@ -0,0 +1,211 @@
+===================
+Massive parallelism
+===================
+
+:Authors: Maciej Fijalkowski
+:Location: Warsaw Univeristy
+:Date: 13.III.2007
+
+Writing concurrent programs
+===========================
+
+* threads
+
+* events
+
+* everyone has it's own problems
+
+Threads problems
+================
+
+* deadlock
+
+* hard to debug
+
+* implicit, non-voluntary scheduling
+
+Events problems
+===============
+
+* strange programming style
+
+* deferred problems
+
+Alternative approach
+====================
+
+* concept of greenlet (microthread)
+
+* way more functionall
+
+* scales better
+
+* composable
+
+Implementation overview
+=======================
+
+* copies stack to heap
+
+* explicit, voluntary scheduling
+
+* can employ many policies of scheduling
+
+Goodies built on top (1)
+========================
+
+* tasklets
+
+* communication over channels
+
+* (example)
+
+Goodies built on top (2)
+========================
+
+* cooperative I/O
+
+* oneof, allof
+
+* cannot use blocking I/O
+
+* doesn't work on win32
+
+* scales well (application built on top)
+
+Composable greenlets
+=====================
+
+* keep different parent greenlet for different tasks
+
+* composable!
+
+Implementation - RPython
+=========================
+
+* Restricted subset of python
+
+* full type inference (static, implicit typing)
+
+* translated to C/LLVM/CLI/JVM/JavaScript
+
+* fast (~20-50x faster than python)
+
+Implementation - flowgraphs
+============================
+
+* flowing of live python objects
+
+* allows of a wide range of metaprogramming
+
+* creates flow graph
+
+* (demo)
+
+Implementation - annotation
+============================
+
+* top to bottom type inference
+
+* explicit type declarations only for topmost functions
+
+* python type system
+
+Implementation - rtyping
+=========================
+
+* changes type system to low-level one
+
+* two type-systems: lltype (C) and ootype (CLI)
+
+Flow graphs transformation
+===========================
+
+* stackless transform
+
+* we create different return values for blocks
+
+* no direct stack access, no magic, plain C
+
+Use case - python console
+===================================
+
+* ajax using pypy's toolkit
+
+* pypy-c to play
+
+* multiple consoles
+
+* web server
+
+* dispatching of http/console
+
+* very easy
+
+Use case - distribution
+=================================
+
+* (demo)
+
+Multimethods
+=============
+
+* multiple implementation of types
+
+* so called sliced multimethods
+
+* works quite well (benchmarks)
+
+Transparent proxy
+==================
+
+* just another implementation for types
+
+* also works for interpreter-level types
+
+* provides a controllable object
+
+* (demo)
+
+* ~300 LOC
+
+* easy :)
+
+Distribution
+=============
+
+* works quite well on top of tproxy
+
+* doesn't need to serialize types
+
+* sends small packets
+
+* can access any possible object
+
+* ~500 LOC
+
+* (demo)
+
+Back to use case
+=================
+
+* distributed computations
+
+* easy to debug
+
+* server over http without changes
+
+More PyPy!
+===========
+
+* translator toolchain (prolog interp, js interp)
+
+* taint object space
+
+* JIT
+
+* sponsored by EU as STReP
+
+* open source (MIT license)
+
+* Summer of Code



More information about the Pypy-commit mailing list