[Python-ideas] Type Hinting - Performance booster ?
Sturla Molden
sturla.molden at gmail.com
Sat Dec 27 03:41:00 CET 2014
More information about the Python-ideas mailing list
Sat Dec 27 03:41:00 CET 2014
- Previous message: [Python-ideas] Type Hinting - Performance booster ?
- Next message: [Python-ideas] Fwd: improve compatibility
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Antoine Pitrou <solipsis at pitrou.net> wrote: > I don't see how that's optimistic. Most workloads are intrinsically > serial, not parallel. Henry Ford invented a solution to parallelization of many repetitive serial tasks 100 years ago. His solution is known as a conveyor belt or pipeline. If you can split up a serial task into a series of smaller subtasks, you can chain them as a pipeline of worker threads. It often shows up in signal processing and multimedia. Take e.g. a look at the design of VTK. You also have it in e.g. asynchronous i/o if you use threads and queues instead of coroutines to set up a pipeline. Then there is big class of data-parallel tasks, such as e.g. in computer graphics. You e.g. have more than a million pixels on a screen, and each pixel must be processed independently. MapReduce is also a buzzword that describes a certain data parallel task. You also find it scientific computing, e.g. in linear algebra where we use libraries like BLAS and LAPACK. Then there is the ForkJoin tasks, a modern buzzword for a certain type of divide and conquer. A classical example is the FFT. Mergesort would be another example. Take a look at a statement like a = [for foobar(y) in sorted(x)] Here we have a data parallel iteration over sorted(x) and the evaluation of sorted(x) is fork-join parallel. Is it unthinkable that a future compiler could figure this out on its own? Sturla
- Previous message: [Python-ideas] Type Hinting - Performance booster ?
- Next message: [Python-ideas] Fwd: improve compatibility
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list