| Guia | Coguia Externo | ||
|---|---|---|---|
| Estudiante |
Hott Rojas, Demian Christopher
|
||
| Áreas | Computación para ciencia e ingeniería | ||
| Sub Áreas | Aplicaciones en ciencia e ingeniería, Computación de alto desempeño | ||
| Estado | Asignado | ||
La geoestadistica es un área que busca encontrar correlaciones entre variables espacio-temporales a partir de diversas fuentes de datos y con una gran variedad de aplicaciones. Para poder ejecutar algoritmos geoestadisticos sobre grandes volúmenes de datos, se han desarrollado implementaciones en C++ con capacidades de alto rendimiento, como paralelismo en CPU y GPU. Por otro lado, es deseable mantener implementaciones en Python de los mismos algoritmos para aprovechar las ventajas de este lenguaje con respecto a C++ en entornos académicos, de investigación y/o de prueba (sandboxing). Es posible vincular ambos lenguajes a través de bindings de bajo nivel, que permiten utilizar las mismas funcionalidades del código C++ sin tener que reimplementarlas en Python. En la actualidad existen distintas herramientas para generar estos bindings de manera asistida, las cuales pueden variar en su forma de uso y el rendimiento y tamaño de la distribución Python obtenida.
El objetivo consiste en desarrollar un estándar para generar bindings de alto rendimiento en Python sobre librerías en C++. La solución propuesta debe ser capaz de aplicarse sobre códigos C++ ya existentes para generar distribuciones en Python que provean la misma funcionalidad, manteniendo el rendimiento con respecto al código nativo C++ y sin producir fugas de memoria. El estándar debe estar probado bajo distintos entornos de ejecución en Python, como Notebooks y Google Colab, y sea capaz de detectar las dependencias de una librería, como OpenMP, CUDA y Vulkan. También se espera que provea capacidades de integración continua (CI) para automatizar el testeo y generación de distribuciones en Python, así como un protocolo de mensajes para monitorear el estado de la ejecución del código de alto rendimiento.