[IPython-dev] Musings: syntax for high-level expression of parallel (and other) execution control

Hans Meine hans_meine at gmx.net
Tue Sep 8 05:15:07 EDT 2009


On Sunday 06 September 2009 09:14:46 Prabhu Ramachandran wrote:
> Thanks for the interesting links and thread.  Just FYI, last year I had
> occasion to solve, relatively elegantly, a set of pretty sticky problems
> for mayavi2 using decorators and generators.  [...]
> They allow us to do relatively simple but neat things very elegantly.

Seconded.

> The Kamaelia project (http://www.kamaelia.org) is also very interesting
> for its use of generators, microprocesses, components and very
> specifically concurrency.

Let me throw kaa into the pot, which is a set of libraries for media 
programming, but kaa.base contains really interesting coroutine-stuff!
Let me quote http://doc.freevo.org/2.0/Kaa:
> The kaa framework includes a mainloop facility with an API for signals and
> callbacks, timers, process and thread management, file descriptor monitoring
> (with INotify support), inter-process communication, as well as a rich,
> practically magical API for asynchronous programming (see
> http://doc.freevo.org/2.0/SourceDoc/Async)

Maybe the threaded decorator is similar to what Fernando has in mind:
(I thought I mentioned kaa here before, but I guess I did not give any code 
examples..)

@kaa.threaded()
def do_blocking_task():
   [...]
   return 42

@kaa.coroutine()
def do_something_else():
   try:
      result = yield do_blocking_task()
   except:
      print "Exception raised in thread"
 
   print "Thread returned", result

Have a nice day,
  Hans




More information about the IPython-dev mailing list