If you haven't programmed a multi-execution style algorithm before, it's a bit of a mental leap. However, the thought process involved with multi-threading vs multi-processing vs multi-machine scales. There is a growing movement to teach college students and younger folks to think "in parallel" from the get-go, but there will be a delay while the ecosystem waits for the current core of linearly- trained professors and teachers to retire. (i.e. Parallel is here to stay. Programmers and engineers not trained to think in parallel are effectively wasting compute power.)
In the meantime, Python has some direct support for this. For example http://docs.python.org/library/subprocess.html http://docs.python.org/library/multiprocessing.html However, if you're looking for the pragma style "this loop is SIMD, do the work for me," I'm not aware that Python has that. (SIMD = Single Instruction Multiple Data, such as an increment of 1 to every element in an array. Check out the Wikipedia on OpenMP for more info: http://en.wikipedia.org/wiki/OpenMP ) Do you have to completely rewrite algorithms? Depends on what you want to do. Without delving into SymPy code (which I unfortunately can't do at the moment), I'd guess that your analysis is correct: implementing it wouldn't be a win except for some compute intensive areas, especially since it sounds like the coder base doesn't have a whole lot of experience thinking in parallel. I will say, that a good chunk of the /well written/ Python code that I've run across lends itself very well to parallel interpretation. On the flip side, I find that folks who think more in an imperative style, tend to write much more linear-restricted algorithms and code. Often this boils down to reimplementing the many wheels of their programs, but I digress. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
