3 ms·
Thanks for the pointer to Lonestar, I'll review. (PDF link to the relevant paper: http://iss.ices.utexas.edu/Publications/Papers/ispass2009.pdf http://iss.ices
by trentnelson 12y ago
Thanks for the pointer to Lonestar, I'll review. (PDF link to the relevant paper: http://iss.ices.utexas.edu/Publications/Papers/ispass2009.pdf http://iss.ices.utexas.edu/Publications/Papers/ispass2009.pd...)
Re: target problems... the catalyst behind PyParallel can ultimately be tied back to the discussions on python-ideas@ in Sept/Oct 2012 that led to Python 3.4's asyncio.
I wanted to show that, hey, there's a different way you can approach async I/O that, when paired with better kernel I/O primitives, actually allows you to exploit parallelism too (i.e. use all my cores).
I'm particularly interested in problems that are both I/O-bound (or driven) and compute heavy, which is common in the enterprise. The parallel aspect of PyParallel is an area I'm still flushing out (I wanted to get the async stuff working first, and I'm happy with the results). I definitely want to spend the next sprint focusing on using PyParallel for parallel computation problems, where you typically go from sequential execution, fan out to parallel compute, then fan back in to sequential execution. This is common with aggregation-oriented "parallel data" problems.
I'm definitely less familiar with problems that inherently require a lot of cross-talk between threads, like the agglomerative clustering referred to in that paper linked above.
Now, all that being said, I did have some good results simply wrapping Windows' synchronization primitives (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686360.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms68...) and exposing via Python: http://hg.python.org/sandbox/trent/file/0e70a0caa1c0/Lib/async/test/test_primitives.py#l427 http://hg.python.org/sandbox/trent/file/0e70a0caa1c0/Lib/asy...
Things like `async.signal_and_wait(object1, object2)` are actually pretty darn useful. Again, it's thanks to the vibrant set of synchronization primitives provided by Windows.