C and Fortran have traditionally been used for High Performance Computing (Stuff to do with Linear Algebra, PDE solvers and the like). I have noticed some projects based in NumPy and SciPy coming up in HPC. Some people suggest that Python (with modifications of course) could be the next HPC language. Obviously, Python may not replace these languages but maybe add a friendly wrapper around them. Are there any resources for proving/disproving this hypothesis? In other words, Should budding HPC researchers add Python to the list of languages they are proficient in? If yes, Why ?
NOTE: This is not a discussion question wherein I am asking you to weigh the pros & cons of languages. Neither am I asking you whether (in your opinion) Python is good for HPC. I am asking for references (in the form of academic papers, workshops or benchmarks) which have investigated such claims.
I think that the global interpreter lock is the biggest reason why Python (and other dynamic languages (not all)) won’t be used for HPC. It would take considerable work to remove the GIL from Python.
Because the GIL forces developers to use processes for parallel computation (which require IPC or shared memory), Python isn’t an ideal language for HPC. This post is an interesting read in regards to GIL, Python, Python alternatives (like Jython and IronPython), and HPC.