2012-02-09 12 views
10

C y Fortran se han utilizado tradicionalmente para computación de alto rendimiento (cosas que hacer con álgebra lineal, solucionadores de PDE y similares). He notado algunos proyectos basados ​​en NumPy y SciPy en HPC. Algunas personas sugieren que Python (con modificaciones por supuesto) podría ser el próximo lenguaje HPC. Obviamente, Python puede no reemplazar estos idiomas, pero tal vez agregue un envoltorio amigable a su alrededor. ¿Hay algún recurso para probar/refutar esta hipótesis? En otras palabras, ¿Los investigadores en ciernes de HPC deberían agregar Python a la lista de idiomas en los que son competentes? Si es así por qué ?Python High Performance Computing

NOTA: Esta no es una pregunta de discusión en la que le pido que sopese los pros & contra idiomas. Tampoco le pregunto si (en su opinión) Python es bueno para HPC. Estoy solicitando referencias (en forma de documentos académicos, talleres o puntos de referencia) que hayan investigado dichos reclamos.

+0

siempre puede escribir extensiones de Python en c ... – jondavidjohn

+0

"podría ser el próximo lenguaje HPC" no es una hipótesis que pueda ser probada o refutada ... –

+0

Oh, editó. Sí, las investigaciones de HPC deben ser aptas en tantos idiomas como sea posible (como cualquier programador debería). OCaml también es agradable, Scala es, son otros idiomas. ¿Alguna pregunta más? –

Respuesta

1

Creo que el global interpreter lock es la mayor razón por la cual Python (y otros lenguajes dinámicos (no todos)) no se usarán para HPC. Se necesitaría mucho trabajo para eliminar el GIL de Python.

Dado que GIL obliga a los desarrolladores a utilizar procesos para el cálculo en paralelo (que requieren IPC o memoria compartida), Python no es un lenguaje ideal para HPC. La publicación This es una lectura interesante en lo que respecta a las alternativas GIL, Python, Python (como Jython e IronPython) y HPC.

+0

Existen implementaciones alternativas como IronPython que no tienen GIL. Además, existen muchos lenguajes dinámicos que no tienen un GIL también. –

+0

Eso es cierto: IronPython y Jython no tienen un GIL, pero ¿no son esos idiomas realmente diferentes los que simplemente se "parecen" a Python? PD ¿Qué idiomas (por curiosidad)? – sholsapp

+0

IronPython tiene todo lo que tiene CPython, entonces, ¿cómo es un "idioma realmente diferente"? Ejemplos de idiomas sin GIL son, bueno, IronPython, IronRuby, Ruby on Rubinius (creo), Scala, OCaml, Haskell, ... –