jueves, marzo 13, 2008
|
![]() Todo esto aparenta bien y color de rosa, pero lo cierto es que hay una tremenda batalla filosófica sobre como mejor tomar ventaja de tantos núcleos de manera óptima. Hoy día 2 núcleos no son gran cosa, pero aun con 64 núcleos la cosa se complica. ¿Y que tal de un chip con 4,096 núcleos dentro de unos años? El problema no es de hardware en sí, sino de como diseñar los chips y el software a nivel del sistema operativo para que se pueda tomar ventaja de todo ese poder. A tal fin, existen 3 filosofías, y lo cierto es que todas tienen sus ventajas y desventajas. La primera es crear núcleos homogeneos, es decir, todos los núcleos idénticos, como se hace hoy día con los Core Duo o los X2. Esta propuesta es apoyada por Tilera, y a cierta medida, Intel. La segunda es crear núcleos especializados, de tal manera que algunos núcleos se especialicen (por ejemplo) en procesar paquetes TCP/IP, y otros en gráficos, y otros mas en instrucciones de matrices, etc. Esta propuesta es apoyada por AMD. La tercera es una combinación de los dos; múltiples núcleos homogéneos rodeados de núcleos especializados. Esta propuesta es apoyada por IBM. Veamos ahora las ventajas y desventajas... Lo bueno de los núcleos homogéneos (todos idénticos) es que son fáciles de programar, pues el mismo programa puede ejecutar en cualquier núcleo, y es solo cuestión de que el compilador o un interpretador inteligente sepa cuáles núcleos no están haciendo nada para darles trabajo. El problema sin embargo es que consumen mucha energía y ocupan mucho espacio innecesariamente, ya que cada núcleo debe ser capaz de ejecutar cualquier cosa, por lo que es un procesador completo por sí mismo, aun solo se necesiten algunos de sus circuitos para muchas operaciones. Además, debido a que funcionan de manera genérica, su rendimiento no es óptimo para ciertos tipos de operaciones repetitivas. Por otro lado. lo bueno de los núcleos heterogéneos (con chips especializados) es que son mucho mas eficiente y rápidos, con menos consumo energético, mas pequeños, y menos costosos producirlos en serie. El problema sin embargo es la complejidad para programarlos, pues uno no puede simplemente hacer un programa genérico, sino que para sacarle ventaja debe escribir distintos programas para los distintos núcleos, dependiendo de su función. Entonces, es posible que el futuro sea algo híbrido, en donde tengamos muchos núcleos idénticos rodeados de muchos núcleos especializados, los cuales pueden ser utilizados opcionalmente según la destreza del programador, o de las librerías de funciones optimizadas que se utilicen, o de la inteligencia de un compilador de lenguajes de alto nivel. Noten que el chip Cell, utilizado en el PlayStation 3, es un buen ejemplo de esto, pues contiene 2 núcleos genéricos idénticos del tipo PowerPC, así como 7 núcleos idénticos especializados llamados SPE ("SIMD processing elements"), que ayudan mucho con cálculos matemáticos en paralelo, en particular con contenido multimedia. El Cell es también un buen ejemplo de los dolores de cabeza que es programar una arquitectura híbrida, ya que por ejemplo sabemos de muchos juegos de primera generación del PS3 que simplemente utilizaban los núcleos de PowerPC, y apenas utilizaban los SPEs, por lo que estos juegos ejecutaban mejor en los 3 núcleos PowerPC del Xbox 360 que en los 2 núcleos PowerPC del PS3. Hoy día la situación a empezado a cambiar, pero solo debido al gran esfuerzo que han puesto lo desarrolladores de software en aprender a manejar los 7 otros SPEs en el PS3. A mí personalmente me gusta la arquitectura simple de tener todos los núcleos idénticos, y por tanto poder programarlos a todos por igual, pero no hay duda de que tener núcleos especializados puede ser bien útil en aplicaciones de pocos recursos. Por ahora sin embargo, los tres modelos subsistirán. Ahora mismo lo mas importante de todo es crear una nueva generación de software que sin importar la arquitectura de núcleos, pueda tomar ventaja de todos ellos. Esta es un área de investigación super-caliente actualmente, y pueden estar seguros que veremos grandes adelantos al respecto en los próximos 5 años. Artículo del cual tomé muchos datos para este artículo autor: josé elías |
![]() |
![]() |
Comentarios
Añadir Comentario |
"¡Wao!, ya se a dónde referir a los que me pregunten por qué soy agnóstico.
Gracias por este artículos José Elías."
Gracias por este artículos José Elías."
en camino a la singularidad...
©2005-2025 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
Yo tenía entendido que la playstation 3 ténía un procesador genérico y 7 dedicados (SPU). Lo cierto es que no recuerdo ningún artículo donde se hablar de dos. De todos modos, los programadores se quejaban de la dificultad de programar para más de un núcleo y ahora no parecen tener tantos problemas, así que no creo que la dificultad sea un problema a largo término.