La industria del software avanza lentamente hacia el aprovechamiento de los múltiples núcleos de los microprocesadores y de las múltiples unidades de cálculo de los GPUs con cada vez más modernos entornos de programación que hagan ello posible. Una de las plataformas que está ganando bastante popularidad es OpenCL, la cual aunque se desarrolló para explotar el paralelismo masivo de los GPUs, puede sacarle provecho también a los múltiples núcleos de los CPUs y sus modernas unidades vectoriales como AVX y FMA4/3.
PUBLICIDAD
Un grupo de investigadores del Artificial Intelligence Lab and Computer Science del Massachusetts Institute of Technology (MIT CSAIL) han desarrollado un nuevo lenguaje de programación al que denominan Halide, el cual está orientado al procesamiento de imágenes en entornos multi-núcleo, y a la vez es facilita las tareas de escribir/probar el código y es capaz de optimizarlo automáticamente.
Según sus pruebas migrar el código de una aplicación al lenguaje Halide resulta en código un 30% más largo que el de los lenguajes tradicionales, pero compensa ello ofreciendo un rendimiento 2, 3, 6 y en algunos casos hasta 70 veces más veloz. Simplemente impresionante.
El secreto del nuevo lenguaje reside en su diseño modular, el cual consta con dos secciones: una para los algoritmos de propósito general y otra para el planificador de procesos (scheduler), este último con comandos que permiten modificarlo sobre la marcha y sin que se requiera modificar el código del programa; permitiendo experimentar múltiples y nuevas ideas sin la necesidad de verificar ni reescribir el programa.
Gracias a la construcción modular de Halide, es posible migrar las aplicaciones desarrolladas con él a nuevas plataformas simplemente cambiando el módulo scheduler, convirtiendo a Halide en un entorno multi-plataforma.
Link: NEW PROGRAMMING LANGUAGE FOR MULTI-CORE PLATFORMS WILL ACCELERATE RENDERING (Xtreview)
También pueden comentar en nuestro foro.