Como todos sabéis, no soy muy partidario de benchmarks / pruebas de rendimiento … Tranquilos, no voy a hablar bien de pruebas de rendimiento, el verano no me ha afectado tanto ;) Sólo quiero que veáis un benchmark que ha publicado Silicon Graphics con sus sistemas Altix 4700 y Linux :)
Para los que no conozcan estos sistemas, son sistemas NUMA capaces de escalar desde 8 cores hasta 2.048 cores y 128 Tbytes de RAM en imagen única, es decir: sólo un kernel corriendo al mismo tiempo o, lo que es lo mismo, no es un cluster.
Como decía en un post anterior, la tecnología NUMA no se conoce casi, casi no se utiliza. Esto es una pena ya que tiene sus ventajas en determinadas tareas. Lo malo es que se ha puesto de moda la tecnología cluster y todo el mundo solicita/instala clusters para resolver todo tipo de problemas (como diría Murphy: «Si sólo tienes un martillo todo te parece un clavo»). En estos benchmarks publicados por SGI, se ve que para determinados procesos o tareas, un sistema da mejores resultados, pero en fin, «cada loco con su tema», como se suele decir.
Bueno, a lo que iba. Lo que quería contaros es la posibilidad que tiene Linux para escalar y llegar allí donde no nos podemos imaginar. Gracias a que Linux es de código abierto, se puede escalar hasta estos límites. ¿Os imagináis lo que le supondría a una única empresa el desarrollar no sólo el hardware sino el software? Me refiero a tiempo y dinero. Esto es algo impensable/inviable. Menos mal que teniendo el software de código abierto, podemos hacer este tipo de «proezas».
Os voy a contar un caso concreto de escalabilidad y software libre. SGI ganó un concurso para montar una supercomputadora para un centro de investigación en Alemania y montó máquinas de 2.048 cores. Se pusieron los científicos como niños pequeños con zapatos nuevos a jugar con su nuevo regalo pero… las aplicaciones no escalaban. Las aplicaciones sólo veían 1.024 cores, no podían sacarle todo el jugo a su nuevo juguete. «Pues nada, metemos mano al código de las aplicaciones para que vean y utilicen los 2.048 cores…» fue lo que se les pasó por la cabeza como buenos científicos. Cuál fue su sorpresa cuando les dijo el fabricante del software: «Nopes, es código cerrado y no tiene usted derecho a acceder al código fuente«. ¡Vaya berrinche! ¡Qué disgusto! Al final decidieron dividir las máquinas y que fueran máquinas de sólo 256 y 512 cores.
Moraleja: si usas software cerrado, nadie te puede garantizar el aprovechamiento completo ni la escalabilidad de tu sistema (excepto el propio fabricante del software, claro está).
Menos mal que los científicos no son gente de costumbres e investigan nuevas posibilidades. Actualmente, están usando muchas herramientas de código abierto en centros como el que he comentado (incluyendo el propio centro). Obviamente, esto no es faćil ya que no todas las herramientas que necesitan los científicos tienen un homólogo libre, pero en ello están :)