CIFASIS   20631
CENTRO INTERNACIONAL FRANCO ARGENTINO DE CIENCIAS DE LA INFORMACION Y DE SISTEMAS
Unidad Ejecutora - UE
congresos y reuniones científicas
Título:
Experiencias con Cython y PyOpenCL
Autor/es:
RODRIGO BARAVALLE
Lugar:
Bahía Blanca
Reunión:
Conferencia; SciPyConAr 2014, Conferencia de Python en la Ciencia; 2014
Institución organizadora:
Departamento de Ingeniería Eléctrica y Computadoras de la Universidad Nacional del Sur
Resumen:
En este trabajo queremos transmitir nuestras primeras experiencias utilizando dos métodos para acelerar código en Python: Cython y PyOpenCL. Cython propone la definición de tipos en las variables del código Python, ayudando a hacer una transcripción a código C optimizado. PyOpenCL es una herramienta que permite comunicarse con OpenCL, librería que explota el paralelismo de las placas gráficas. Si bien es cierto que PyOpenCL permite, en general, mayor aceleración que Cython, también es cierto que en determinados casos, el traspaso de memoria a la GPU es costoso y puede impactar negativamente en la performance. Por este motivo, en nuestro trabajo mostramos ejemplos de utilización combinada de Cython y PyOpenCL. Mostramos el caso de una aplicación escrita en Python simulando el modelado procedimental de geometrías de migas de pan, las cuales se representan en un campo escalar representado por una matriz 3D de dimensiones considerables. El programa consiste en dos etapas: 1) definición de la deformación por parte del usuario, 2) utilización de los puntos de control para la deformación de un volumen, El usuario interactúa definiendo puntos de control sobre un plano. Estos puntos de control deforman una imagen de manera interactiva, permitiendo observar cómo será deformado el volumen. La deformación de la imagen por medio de puntos de control se computa en tiempo interactivo gracias a la utilización de ambos métodos.