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

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 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.










“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.”
Poco frecuente mis bo… QuickTime aprovecha OpenCL, y si tuvieras una Mac con tarjeta Nvidia podrías notar como los vídeos en HD van mucho mejor en el nuevo QT. Además, es de esperarse que los próximos reproductores soporten esta característica.
Pero eso es un caso concreto. No creo que las aplicaciones de a pié que usamos todos los días vayan a necesitar de OpenCL.
Vamos, que no me veo a Atebits implementando OpenCL en Tweetie, más que nada porque no es necesario.
Y si a la hora de comprimir y descomprimir datos con zip se usa OpenCl? JuanMa, creo que ahí siq ue te vas a despeinar sobre todo si se implementa un hilo en el sistema de compresion y descompresión al vuelo de ciertos tipos de archivos… OpenCL para computación masiva no está bien, está mucho mejor que bien…
GCD, OpenCL y la reescritura y la actualización del código a 64 bits es una auténtica bomba…