La Computación de Alto Desempeño puede ser versátil: comunicando C y FORTRAN con Python

Aceptada

No sólo Python logró penetrar fuertemente en el mundo científico, sino que además avanza a mucha velocidad dentro de ese ámbito debido a que es muy *user friendly* y permitir a los usuarios desarrollar programas rápidamente. Las debilidades de Python (principalmente ser considerablemente lento y sin capacidad de threading en su implementación más popular, cPython) pueden ser resueltas. Presentamos los distintos pasos para lograrlo, manteniendo un ambiente que, para el usuario, se ve completamente pythonico.


Tipo: Charla extendida, 45 minutos (explicar motivos)

Nivel: Avanzado

Disertantes: Pablo Alcain, Cecilia Jarne, Rodrigo Lugones, Graciela Molina

Biografiá del Disertante: Soy Doctor en Física por la Universidad de Buenos Aires y Jefe de Trabajos Prácticos en el Departamento de Física. Mi tesis doctoral y árae de investigación actual consiste en un estudio de Astrofísica Nuclear, más específicamente la nucleosíntesis en supernovas y en colisiones de estrellas de neutrones, además del estudio interno de la corteza de las estrellas de neutrones. Mis intereses son específicamente en el desarrollo de código de alto desempeño versatil y además a veces soy demasiado fierrero: una de las tareas que hice fue por ejemplo configurar e instalar un cluster de tipo beowulf con GPU en las computadoras de mi grupo. Soy, además, un total defensor de la palabra "eficiencia" en todos sus aspectos: no sólo el código que escribamos tiene que ejecutarse rápido, sino además tiene que poder usarse y desarrollarse rápido, para favorecer el uso colaborativo. Cuando estoy aburrido hago programas de dudosa utilidad para el resto de la gente y todavía me emociono como la primera vez cuando un código de dinámica molecular conserva la energía total 🤓.

Horario: 12:30 - 13:30 - 23/11/2018

Sala: D - Real Trends

Etiquetas/Tags: cómputo de alto desempeño compilación ctypes

Descripción completa

La programación de alto desempeño requiere de un uso exhaustivo de todas las capacidades del hardware disponible, por lo que trabajar en lenguajes como C o FORTRAN (incluso a veces directamente en ASM) se vuelve imperioso. En los últimos años, debido a su facilidad de desarrollo y uso, Python comenzó a ganar terreno en el desarrollo de software científico, como lo demuestran librerías del estilo de NumPy. Sin embargo, implementar algoritmos costosos en tiempo computacional sigue siendo prohibitivo. En este trabajo mostramos técnicas para implementar estos algoritmos en C/FORTRAN y poder crear una interfaz con Python de modo tal que, para el usuario (y potencial desarrollador) se pueda utilizar como si fuera Python nativo