Francis (th)E mule Science's News

5 enero 2010

Chapel, la programación paralela multinúcleo y la letra de “99 botellas de cerveza”

Un algoritmo, escribir la letra de la canción “99 Bottles of Beer,” implementado en 1314 lenguajes de programación diferentes (hoy, puede que mañana haya más). Esa es la idea de una curiosa página web con el mismo título. Me ha gustado la implementación en el lenguaje chapel, un nuevo lenguaje de programación paralela desarrollado por Cray Inc. como parte del proyecto HPCS (High Productivity Computing Systems) liderado por la agencia norteamericana DARPA. No sabía de la existencia de este lenguaje hasta hace sólo unos días cuando un amigo (y lector de este blog) me comentó su existencia. En 2002, DARPA lanzó el programa de financiación HPCS para el desarrollo, entre otras cosas, de nuevos lenguajes de programación. Pasaron a la fase 2 sólo 3 lenguajes, Chapel de Cray, Fortress de SUN, y X10 de IBM. En la fase 3, SUN abandonó. Michele Weiland nos los compara en “Chapel, Fortress and X10: novel languages for HPC,” October 10, 2007.

Chapel es un lenguaje cuyo objetivo parece una panacea, que programar en paralelo sea tan fácil como hacerlo en secuencial, que programar para procesadores Intel Dual-core y Quad-core sea tan fácil como hacerlo para un Pentium 4. Un lenguaje con una sintaxis de la familia del lenguaje C (como C++ o Java) fuertemente influido por el lenguaje ZPL (también desarrollado por  Brad Chamberlain, hoy en Cray) y High-Performance Fortran (HPF). La versión 1.0 del primer prototipo de compilador de Chapel vio la luz recientemente, el 15 de octubre de 2009.

Me ha gustado cómo se implementan operadores en diferencias finitas en Chapel en el artículo de Richard F. Barrett, Philip C. Roth, Stephen W. Poole, “Finite Difference Stencils Implemented Using Chapel?,” ORNL Technical Report TM-2007/119, 2007, y cómo se resuelven sistemas lineales gracias a la aritmética vectorial y matricial implementada en Chapel, mostrada en Richard F. Barrett, Stephen W. Poole, “Strategies for Solving Linear Systems of Equations Using Chapel,” Proc. 49th Cray User Group meeting, Seattle, May 2007. Sin embargo, dado que en aquella época aún no se disponía de un compilador, no se presenta un estudio detallado de su rendimiento en arquitecturas multinúcleo y paralelas. Espero que en los próximos meses tengamos noticias al respecto.

Para los interesados en más detalles sobre Chapel recomiendo la charla de Chamberlain donde nos ”vende” el lenguaje y que está disponible en el siguiente vídeo, cuyas transparencias se pueden descargar en ”Chapel. Productive Parallel Programming at Scale,” en la Google Seattle Conference on Scalability, June 14, 2008.

Advertisement

Dejar un comentario »

Aún no hay comentarios.

RSS feed para los comentarios de esta entrada. URI para TrackBack.

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Theme: Rubric. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.

Únete a otros 1.969 seguidores