Titulación DCC

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
Descripción

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.