On Thu, 09 Feb 2012 19:57:20 +0100 Sturla Molden <sturla@molden.no> wrote:
If threading is the only acceptable concurrency mechanism, then Python is the wrong language to use. But you're also not building scaleable systems, which is most of where it really matters. If you're willing to consider things other than threading - and you have to if you want to build scaleable systems - then Python makes a good choice. Yes or no... Python is used for parallel computing on the biggest supercomputers, monsters like Cray and IBM blue genes with tens of
On 09.02.2012 19:42, Mike Meyer wrote: thousands of CPUs. But what really fails to scale is the Python module loader! For example it can take hours to "import numpy" for 30,000 Python processes on a blue gene.
Whether or not hours of time to import is an issue depends on what you're doing. I typically build systems running on hundreds of CPUs for weeks on end, meaning you get years of CPU time per run. So if it took a few hours of CPU time to get started, it wouldn't be much of a problem. If it took a few hours of wall clock time - well, that would be more of a problem, mostly because that long of an outage would be unacceptable. <mike -- Mike Meyer <mwm@mired.org> http://www.mired.org/ Independent Software developer/SCM consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org