Contribute Media
A thank you to everyone who makes this possible: Read More

Introducción a programación paralela con PyOpenCL

Description

PyconAR 2016 - Bahía Blanca

Introducción a programación paralela con PyOpenCL por Celia Cintas

Audience level: Principiante

Descripción

Se mostrará cómo crear soluciones paralelas e independientes al hardware (CPUs, DSP, FPGAs y GPUs) utilizando PyOpenCL. Veremos una breve introducción a conceptos básicos: arquitecturas, tipos de memoria y modelos de ejecución. Luego implementaremos el pipeline básico de una aplicación con PyOpenCL y resolveremos problemas desde simples operaciones con matrices hasta proc. de imágenes.

Resumen

OpenCL es un estándar abierto y libre para la programación paralela de propósito general sobre CPU, GPU entre otros. OpenCL nos permite desarrollar código rápido y eficiente para una serie de aplicaciones con diferentes comportamientos: control intensivo (búsqueda y clasificación), volúmenes de datos (procesamiento de imágenes, simulación y modelado, y la minería de datos), cálculo intensivo (métodos iterativos, métodos numéricos y modelamiento financiero). OpenCL abstrae el código de cuestiones específicas del hardware, permitiendo que nuestros programas se ejecuten sobre una gran variedad de dispositivos. PyOpenCL es un entorno de programación Python, que reduce la cantidad de código C a solo la implementación de los kernels, dejando el resto de nuestro código (la parte de host) en Python, sin renunciar a la eficiencia ni la velocidad y manteniendo la independencia del hardware.

Estructura de la charla

  • Qué es programación paralela?
  • Qué es OpenCL? Cuales son sus componentes?
  • Arquitectura abstracta de OpenCL
  • Tipos de memoria en OpenCL
  • Modelo de ejecución OpenCL
  • Introducción a PyOpenCL (hands-on código en ipynb)
  • Plataforma, Contextos, Colas, Kernel y programas.
  • Buffers
  • Ejemplos de operaciones de matrices, procesamiento de imágenes y fractales.

Details

Improve this page