intelBarefeats ha publicado por fin el primer análisis del rendimiento de un MacPro con 8 núcleos, y los resultados pueden parecer decepcionantes…

pero no tienen porqué serlo 🙂 

Uno podría pensar que, al tener el doble de núcleos, en programas que los aprovechen el rendimiento debería ser el doble. Sin embargo, la realidad es más complicada.
Para que el rendimiento fuera el doble, tendrían que cumplirse dos condiciones:

  • Que el resto de componentes hardware del sistema fueran el doble de rápidos (en particular, la velocidad de acceso a la memoria).
  • Que el software no tenga limitaciones de serialización (partes de código que se deben ejecutar en serie, es decir, en un sólo núcleo, sin poder aprovechar los demás).

Desgraciadamente, la primera condición no se cumple (ni de lejos), y la segunda en muchos casos tampoco.

Problemas hardware

En el artículo de barefeats, podemos observar tres tests con incrementos de 45%, 56%, y 60%, que están relativamente lejos del 100% teórico que debería poder alcanzarse, y luego otros dos tests en los que el MacPro “Octo” básicamente empata con uno de 4 núcleos.

¿Porqué los resultados no son mejores? Básicamente, porque aunque ahora hay más núcleos en el sistema, la velocidad de acceso a la memoria no ha aumentado lo más mínimo. Por tanto, cada núcleo tiene que esperar más “a que le toque el turno” de leer o escribir, y cada hilo de cálculo permanece más tiempo bloqueado.

Problemas software

Pero esto no es todo, existen más factores que tenemos que tener en cuenta. Por un lado, está el “efecto Ping-Pong”, que sucede cuando el núcleo del sistema operativo cambia continuamente un hilo de ejecución de un núcleo a otro. Esta operación es costosísima para los Xeon que llevan los MacPro, puesto que destruye la eficiencia de las cachés L2, que son una pieza clave de la jerarquía de memoria, y, desgraciadamente, parece que Mac OS X Tiger es propenso a hacerlo. Esto podría parecer una mala noticia, pero en realidad no lo es :-D. Si es un problema real, es un problema resoluble por Apple, y es posible incluso que Leopard traiga mejoras sustanciales en este campo. Veremos.

Problemas extraños

Dicho todo esto, es preciso que mencione que veo algo muy raro en estos tests. Existen dos tests en los que el incremento de rendimiento es prácticamente 0%. Para que esto suceda, sería preciso que se cumpliera una de las siguientes condiciones:

  • El test está completamente limitado por la velocidad de lectura o escritura en memoria.
  • El test está completamente limitado por código de serialización.
  • El test no aprovecha los ocho núcleos, o no lo hace bien aunque pretendiera hacerlo.

El artículo de barefeats da por hecho que la tercera condición no se cumple, y por tanto, postula que el problema es la primera. Sin embargo, yo no lo veo nada claro por una sencilla razón: el resto de tests, en especial el de Quicktime, están al menos parcialmente limitados por la velocidad de acceso a la memoria, y sin embargo los incrementos de rendimiento son muy razonables.

La segunda condición es muy poco probable, dados los tipos de programa que se utilizan. Por tanto, estudiemos la tercera condición. ¿Es posible que Photoshop y Aperture no estén todavía bien preparados para aprovechar 8 núcleos? Yo lo veo no solo posible, sino incluso muy probable.

Aunque hayan visto los programas al 800% en el Monitor de Actividad en determinados instantes del test, esto no significa que los programas estén haciendo un buen uso de cada uno de los núcleos. Es posible que haya hilos realizando cálculos irrelevantes para el resultado final del test, es posible que haya algún problema con el Monitor de Actividad (en el MacuTest he observado picos de la tasa de actividad de más del 100%, incluso cuando nunca hago uso de más de un procesador), o incluso es posible que haya algún problema extraño que desconocemos.

Lo que quiero decir con esto es que pienso que no deberíamos fiarnos de estos dos tests para evaluar el potencial que tienen los MacPro, porque creo que existe algún problema (software) que desconocemos que le impide, por el momento, alcanzar el rendimiento máximo.

Conclusiones preliminares

No creo que nadie esperara que al doblar el número de núcleos se doblara el rendimiento. Partiendo de esta base, creo que los resultados no son decepcionantes. Incluso con una arquitectura de memoria igual a los MacPro anteriores, estos nuevos son capaces de alcanzar rendimientos un 60% mejores, o incluso más en algunos casos (ver esto para más información).

Pienso que el problema no es el hardware, que me parece sólido, sino más bien el software. Ahora mismo la industria está en un periodo de transición, que costará sudor, lágrimas, y más a muchas empresas. El software no está preparado todavía para utilizar todo el potencial de cómputo que tantos núcleos nos proporcionan. Sí, hay programas que pueden aprovecharlo, pero hoy por hoy son minoría.

Por tanto, considero que es la situación del software, y no la arquitectura de estas magníficas estaciones de trabajo lo que debería preocupar a potenciales clientes. A medida que vayamos obteniendo más datos, y vayan surgiendo nuevos programas, veremos cómo de útiles pueden ser estas máquinas.

Mientras tanto, seguiremos comentando estos datos en el foro de Macuarium.  

 

Antonio Moreno, 2007.