On Miércoles, 16 de enero de 2013 16:06:29 Chema Cortes escribió: > El día 16 de enero de 2013 15:17, Francesc Alted <fal...@gmail.com> escribió: > > Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo > > conozco demasiado, pero sí que puedo decir que en Continuum estamos > > poniendo a punto Numba (https://github.com/numba/numba), un compilador al > > vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa > > LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que > > depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero > > binario, esto ya depende de la aplicación). > > > > Numba permite, mediante decoradores y anotaciones de tipo, hacer que > > funciones puras en Python (ahora mismo no se soporta todo el lenguaje, > > pero > > sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y > > lo que es mejor, de manera completamente interactiva (la compilación al > > vuelo es realmente rápida). Numba es completamente open-source, así que > > cualquiera puede contribuir al proyecto (de hecho alguien de esta lista > > ya menciona que han contribuido ya). > > Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que > permite la compilación estática además de JIT, lo que seguramente > tiene que dar resultados bastantes buenos. > > Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo > distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe > ser cosecha propia. También estoy viendo proyectos para portar otros > lenguajes como scala o C# a LLVM, por lo que parece que esta > plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de > JVM y .Net. > > > Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología > > demasiado útil para PyPy, ya que éste último viene con su propio > > compilador > > JIT, asi no se complementan demasiado bien. En Continuum claramente hemos > > apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de > > Numba > > es que no se tiene por qué renunciar a librerias que son extensiones (el > > proyecto de migración de NumPy a PyPy está siendo lento y plagado de > > trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo > > de > > una manera completa). Numba permite compilar de manera selectiva la parte > > de código Python que es un cuello de botella, respetando toda la gama de > > librerias y extensiones que ya existen ahora mismo. > > > > Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro > > proyecto para reemplazar NumPy para problemas de Big Data, usará Numba > > como > > motor de cálculo de manera que el usuario no tenga que preocuparse de > > hacer > > extensiones para optimizar los cálculos, sino que éstos se efectuarán a > > velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro > > desarrollo open source, y aunque todavía está en su infancia, esperamos > > que > > de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con > > él. > > No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto > para computación distribuída ;-)
Hola Unas preguntas técnicas de un ignorante: Cuando habláis de computación distribuida, ¿se refieres a python en entornos, digamos, mpi o sólo en memoria compartida?. El problema que le veo siempre a esta historia es que si quieres mover datos sin tener que ir a tcp/ip, por ejemplo moviendo cosas en infiniband, no te quedan muchas más opciones que mpi... o inventarte algo como protocolo de comunicaciones. ¿Sabéis como lo gestiona esto julia?. Otra pregunta ¿como afecta la existencia del GIL a vuestros tipos de optimizaciones? Poder programar number-crunching en python es un sueño para gente como yo :-) Saluditos -- Jaime D. Perea Duarte. <jaime at iaa dot es> Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/