Apple hace Open Source la tecnología Gran Central

gcd_icon20090608.jpgApple ha hecho hoy Open Source el código fuente de Gran Central bajo la licencia Apache.

En los procesadores de hoy en día, es el aumento en número de núcleos, y no en velocidad de reloj, lo que proporciona mejoras de rendimiento. Grand Central Dispatch aprovecha esta situación permitiendo a Mac OS X hacer uso de los núcleos múltiples y prepararse para asignar tareas a diferentes núcleos y procesadores. Además, este conjunto de tecnologías permite a los desarrolladores crear con mayor facilidad programas que exprimen hasta la última gota de potencia de los sistemas multinúcleo.

Grand Central Según Apple

Con las CPU, cuantos más núcleos mejor.

En el pasado, la mejor forma que tenían los fabricantes de chips informáticos de mejorar el rendimiento era acelerar la velocidad de reloj del procesador. Sin embargo, ese método genera más calor y consume más energía, lo que perjudica a los ordenadores, sobre todo a los portátiles. Por eso, el sector se ha pasado a los chips con varios núcleos de procesador, que ofrecen un mayor rendimiento y un menor consumo. Actualmente, todos los Mac incorporan uno o varios procesadores de varios núcleos de Intel.

Varios núcleos, varios retos.

Para sacarle todo el partido a estos procesadores, las aplicaciones de software deben programarse mediante hilos de ejecución. Los desarrolladores de software utilizan estos hilos para que los procesadores de varios núcleos puedan trabajar en diferentes partes de un programa al mismo tiempo. Sin embargo, cada aplicación debe ejecutar sus propios hilos, lo que reduce la eficiencia de todo el sistema. Además, dado que la programación de los hilos de ejecución puede resultar compleja, muchos desarrolladores no dedican sus esfuerzos a hacer sus aplicaciones compatibles con los procesadores de varios núcleos. Por eso, muchas aplicaciones no son todo lo rápidas que podrían ser.

Grand Central Dispatch.

La prestación Grand Central Dispatch (GCD) de Mac OS X Snow Leopard responde a esta necesidad apremiante: este conjunto de innovadoras tecnologías permite a los desarrolladores crear con mayor facilidad programas que exprimen hasta la última gota de potencia de los sistemas multinúcleo. Con GCD, es el sistema operativo el que gestiona los hilos de ejecución, no las diferentes aplicaciones. Los programas compatibles con GCD distribuyen su trabajo automáticamente en todos los núcleos disponibles, lo que se traduce en un rendimiento extraordinario, ya estén ejecutándose en un Mac mini de doble núcleo o en un Mac Pro de 8 núcleos, por ejemplo. Cuando los desarrolladores comiencen a utilizar GCD en sus aplicaciones, empezarás a disfrutar de notables mejoras de rendimiento.

Un motor ajustado al milímetro.

Grand Central Dispatch es sumamente eficiente en su trabajo: amplía de forma dinámica el volumen de trabajo de una aplicación en función del número de procesadores del ordenador, y aumenta la eficiencia de las aplicaciones utilizando solo el número de hilos de ejecución necesarios para esa carga de trabajo. Por ejemplo, sin GCD, si una aplicación necesita 20 hilos de ejecución a plena capacidad, puede configurar 20 hilos y consumir los recursos asociados aunque no tenga trabajo asignado. GCD, en cambio, libera recursos cuando no los utiliza, para que todo el sistema tenga una mayor capacidad de respuesta. Imagina cómo sería el aumento de eficiencia y rendimiento si todas las aplicaciones de tu Mac utilizasen GCD.

Integrado en el núcleo.

Grand Central Dispatch está profundamente integrado en Mac OS X Snow Leopard, para que todo tipo de aplicaciones aproveche al máximo las ventajas de los procesadores de varios núcleos. Además, todo tu Mac gana en eficiencia a la hora de gestionar varias tareas al mismo tiempo, lo que supone un aumento de rendimiento en todo el equipo.

Potentes herramientas de desarrollo.

Los desarrolladores empezarán a programar aplicaciones en Grand Central Dispatch utilizando las herramientas de Xcode incluidas en todos los Mac. Además pueden utilizar el depurador Xcode y la herramienta de análisis de rendimiento Instruments para obtener información sobre GCD en tiempo de ejecución. Estas herramientas permiten examinar cualquier cola de trabajo de GCD, incluso un bloque específico de código de ejecución, lo que proporciona a los desarrolladores una visión completa del estado de su aplicación mientras GCD asigna tareas de forma eficiente a cada núcleo disponible.

La licencia Apache

La licencia Apache (Apache License o Apache Software License para versiones anteriores a 2.0) es una licencia de software libre creada por la Apache Software Foundation (ASF). La licencia Apache (con versiones 1.0, 1.1 y 2.0) requiere la conservación del aviso de copyright y el disclaimer, pero no es una licencia copyleft, ya que no requiere la redistribución del código fuente cuando se distribuyen versiones modificadas.

Todo el software producido por la ASF o cualquiera de sus proyectos está desarrollado bajo los términos de esta licencia. Además algunos proyectos que no pertenece a la ASF también siguen la licencia Apache: en enero de 2007, más de 1000 proyectos no pertenecientes a la ASF en SourceForge estaban disponibles bajo los términos de la Licencia Apache.

Como cualquier otra de las licencias de software libre, la Licencia Apache permite al usuario del software la libertad de usarlo para cualquier propósito, distribuirlo, modificarlo, y distribuir versiones modificadas de ese software.

La Licencia Apache no exige que las obras derivadas (versiones modificadas) del software se distribuyan usando la misma licencia, ni siquiera que se tengan que distribuir como software libre/open source.

La Licencia Apache sólo exige que se mantenga una noticia que informe a los receptores que en la distribución se ha usado código con la Licencia Apache. Así, en contraste a las licencias copyleft, quienes reciben versiones modificadas de código con Licencia Apache no reciben necesariamente las mismas libertades. O, si se considera la situación desde el punto de vista de los licenciatarios de código con Licencia Apache, reciben la “libertad” de usar el código de la forma que prefieran, incluyendo su uso en productos de código cerrado. [WIkipedia]

¿Porqué Apple ha abierto Grand Central?

Esta es una buena pregunta, y en realidad solo Apple tiene la respuesta, pero podemos adivinar, tal como Apple ha planteado el desarrollo y distribución de el software q ue realmente quien va aprovechar esta tecnología van a ser las distribuciones de Linux y no Microsoft. Windows, como sistema operativo, es tan diferente a Mac OS X que le resultará imposible adaptar el software a su sistema operativo, pero esto no es óbice para que casi con toda seguridad los ingenieros de Microsoft le echen un ojo en busca de soluciones creativas para mejorar su código, porque tan importante es el código en si como las soluciones o fórmulas de crearlo e interpretarlo.

Sin embargo, la adición de esta tecnología en diferentes sabores de Linux no representa una amenaza para Apple, debido a que no representan una amenaza directa para su cuota de mercado en los ordenadores de escritorio, además de que es poco probable que se creen aplicaciones de escritorio para Linux, aunque si es muy posible que si aparezcan para la línea de comandos.

Esta opción de paralelizar código usando Grand Central Dispath si que será bien recibida por parte de los desarrolladores científicos de forma que el código no solo se ejecute sobre el Mac, sino también en Clusters de supercomputadores.

Apple también puedo aspirar, haciendo que Grand Central sea Open Source que una parte del código usado para crearlo llamado Blocks pase a convertirse un estándar dentro del lenguaje C de programación.

Sin embargo, no todo es perfecto: Apple ha liberado el código de las APIS de Grand Central pero las extensiones de Kernel de las que depende han de crearse para cada plataforma. Los compiladores que soporten Blocks también son escasos aunque presumiblemente Applel iberará sus cambios a GCC en algún momento, tal como requiere la GPL, la licencia bajo la que está amparada GCC:

0 0 votos
Article Rating
Subscribe
Notify of
2 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
juandesant
13 years ago

La parte esencial de Grand Central es el poder manejar Blocks, el equivalente a funciones lambda para C, y que son una extensión del lenguaje C (y por tanto, también de Objective-C) que permite crear funciones con operadores arbitrarios.

El compilador que las soporta ya es de código abierto, así que no se pierde nada con abrir todo el resto de Grand Central: Apple se centra en la experiencia de usuario, y hacer Grand Central de código abierto aumenta el número de personas interesadas en la tecnología, lo que a la larga mejora todas las aplicaciones.

Anónimo
Anónimo
13 years ago

Sin duda una buena noticia la existencia de este sistema y la de su liberación.

Estoy poco puesto con esto del manejo de los hilos en los sistemas operativos modernos. Actualmente creía que ese tema, así como has descrito, ya era manejado de manera implícito por el núcleo del sistema, sin necesidad de que las aplicaciones hicieran llamadas explícitas a estas librerías.

Por otro lado, no sólo la comunidad GNU/Linux se verá beneficiada, así como las BSD. Si en alguna de esta se encontrara algún fallo en el sistema o alguna mejorara el sistema, Apple también se vería beneficiada al poder tener acceso a la mejoría si esta fuera publicada. Por lo que aquí nos beneficiaríamos todos.

2
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x