Sin duda Grand Central Dispatch y OpenCL son las nuevas tecnologías más importantes de Snow Leopard. Ahora que por fin tengo Snow Leopard corriendo en mi MacBook he podido echarle un ojo a estas tecnologías y ver qué tal desempeñan su función.

Grand Central Dispatch

Grand Central Dispatch Debo confesaros algo. Me equivoqué cuando dije que Grand Central Dispatch abstraía a los programadores de la programación en hilos. No es así.

Grand Central Dispatch es una librería escrita en C y lo que hace es añadirle extensiones sintácticas y semánticas a C, C++ y Objective-C consiguiendo que el código escrito sea más legible, más mantenible, además de agilizar la visualización en Instruments de los diferentes hilos de ejecución que se procesan en un momento dado.

Esto no está del todo mal. Habría sido la panacea que abstrayeran a los desarrolladores totalmente, pero no se puede tener todo en la vida.

Para probar la eficacia de la distribución de los hilos, usé Instruments con un proyecto que Apple proporciona a modo de ejemplo. Se abrieron unos 178 hilos en 3:38 y el rendimiento de mi MacBook se vio mermado muy poco. Lo que más costaba era refrescar la vista de Instruments, pero por lo demás bien; estaba escuchando música en iTunes y no se entrecortó ni nada por el estilo.

Bastante bien. Sin duda, el GCD funciona de una manera admirable. Me apuntaré en mis quehaceres "Dominar Grand Central Dispatch".

OpenCL

OpenCL OpenCL es la manera que Apple ha propuesto para que los desarrolladores puedan sacar partido a la tremenda capacidad de cálculo de las actuales tarjetas gráficas. Así, cuando un programa tenga un pico de procesamiento, podemos pedirle ayuda a la GPU gracias a estas librerías basadas en C.

Por desgracia no he podido probar esto debido a que mi MacBook es un late 2007 y tengo una Intel GMA, la cual no es compatible con OpenCL. Pero, por lo que he podido ver en el código de ejemplo de Apple, a gosso modo lo que se hace es establecer un binding con la GPU que tu Mac tenga habilitada en ese momento y se le especifica el proceso que queremos que realice.

A simple vista, bastante sencillo. Es una lástima que muchos de nosotros no podamos disfrutar de esta interesantísima novedad si no nos hacemos con un nuevo MacBook o con alguno de los Macs ya compatibles. Aunque no es extremadamente malo no poder tener OpenCL corriendo en nuestras máquinas, ya que esta característica solo es para picos de cálculo en un programa, lo cual es poco frecuente en la informática de usuario.

Esta tecnología será muy bien aprovechada por aplicaciones científicas, matemáticas y cosas por el estilo que requieren muchísima carga de procesamiento para realizar cálculos complejos.