Cluster OpenMosix en Linux

Xavier Andrade xavier en zeth.ciencias.uchile.cl
Lun Feb 21 22:43:30 CLST 2005


On Sun, 20 Feb 2005, Felipe Covarrubias wrote:

> Hola, podrias contarme tu experiencia de manera mas detallada sobre
> por que crees que mosix no sirve ?.
>

Lo que Open Mosix provee dentro de un grupo de maquinas es la capacidad de
que un proceso que esta corriendo en una maquina sea migrado a otras
maquinas de acuerdo a un esquema de balanceo de carga.

Esto suena bastante bien, pero tiene muchas limitantes y costos asociados
que hacen que en la practica no sea los mas util para la mayoria de las
aplicaciones (aun no he escuchado un ejemplo de un caso donde sea util o
mas util que otros esquemas).

Para correr procesos en paralelo no sirve, pues no ofrece un mecanismo de
comunicacion inter-procesos, y no se pueden usar los sistemas estandares
de comunicacion: no se puede usar memoria compartida o threads (por que
los procesos no pueden migrar) ni se puede usar MPI pues no es capaz de
manejar la migracion de procesos que usan sockets (hasta la ultima vez
que mire).

Si quieres correr muchos procesos seriales en un cluster (una granja), uno
en cada nodo, openmosix puede hacerlo pero es muy ineficiente sobre todo
en terminos de red por el costo que significa migrar y mantener migrados
los procesos teniendo que continuamente mantenerse en contacto con la
maquina en que originalmente fueron ejecutados. Es mucho mas simple
ejecutar directamente el proceso en el nodo en cuestion. Ademas no ofrece
un mecanismo de colas ni de control de procesos, por lo que no es muy util
en sistemas con mas de un usuario (algo muy comun en un cluster). En un
cluster mosix de 10 procesadores un usuario puede correr 100 procesos sin
problemas.

Es por esto que un sistema de colas como gridengine o torque son mejores
opciones que openmosix y ofrecen varias ventajas adicionales como soporte
multiarquitectura, capacidad para manejar procesos en paralelo y seriales,
control de la ejecucion de los procesos (te puede mandar un mail cuando tu
calculo termino por ejemplo), control de los recursos en numero de
procesos y tiempo de calculo por usuario, etc. Tambien tienen algunas
desventajas, no pueden migrar procesos out of the box (necesitan un
sistema externo o que la aplicacion haga checkpointing) y la interface es
menos transparente, hay que enviar una script a la cola, no es llegar y
correr un proceso.

En todo caso que es lo que quieres hacer tu?

Xavier


Más información sobre la lista de distribución Linux