Un sistema SSI simula tener una maquina SMP repartida entre varios sistemas que no comparten mas que conectividad y poco mas. Es muy tipico usarlas para renderizar imagenes y cuando pretendes tener un entorno heterogeneo, donde unos compilan otros renderizan y otros hacen simulaciones. Los procesos van y vienen y tu ni te enteras (o al menos esa es la idea).
Uno de los proyectos mas conocidos en Linux es OpenMosix, pero hay algunos mas.
La idea es muy buena, pero hay un detalle que no llego a pillar. ¿Que sucede cuando las herramientas tienen GUI?. Pongamos un par de ejemplos bastante cercanos a la realidad: ISE y ModelSim. El primero un "compilador" (si hay alguien de hardware por ahi, que no me tire los trastos a la cabeza) de VHDL/Verilog y el segundo un simulador.
Para poder distrubuir la carga que genera el ISE, en teoria es sencillo por que se supone que todo el proceso de sintesis, place & route y demas corre en procesos que lanza el GUI mediante un fork/exec. De hecho, puedes ver en la consola del ISE los comandos que lanza. Asi que en un principio, los procesos podrian ir de una maquina a otra sin problemas.
Pero, ¿y el ModelSim?. Las veces que lo he tenido que usar, no he visto que nada que me indujera a pensar que existe por debajo un proceso que hace las simulaciones, sino que es un todo en uno, asi que como se migra una aplicacion con GUI incluido? ¿Como se reparte la carga en un caso como este?.
ModelSim, tiene la posibilidad de trabajar de manera coordinada con algunos balanceadores de carga como GridWare, de Sun, mediante una tecnologia que llaman JobSpy. Pero..., siempre tiene que haber un pero. Esto vale una pasta y solo compensa a empresas tipo Nvidia, ATI, Intel, Lucent, etc, etc, pero no a empresas que aun siendo mas o menos grande, no se tienen a mas de 40 personas empleando esta tecnologia.
En una lectura rapida, lo que hacen estos balanceadores es salvar el estado de la simulacion y en caso de que haya una maquina con mas recursos que donde esta actualmente corriendo la simulacion, parar todo el proceso, y reiniciar la simulacion partiendo de los datos salvados en la maquina que estaba libre en ese instante. Es una migracion un poco tosca, pero supongo que funcionara.
Asi que la segunda pregunta del dia es: ¿Como tener un server-farm para este tipo de productos a un precio asequible? Y lo que es mejor, ¿como hacerlo en Linux?