OpenMosix

Institución - Software

OpenMosix es un sistema de administración de clústeres libre que proporciona la habilidades de los sistemas SSI (Single-System Image), por ejemplo, distribución de trabajos automático entre los nodos del clúster. Esto nos permite migrar proccesos de programas (no de hilos) a otras máquinas en la red del clúster para que puedan ejecutar el proceso más rápido. Esto es particularmente útil para paralelizar cuando se ejecutan aplicaciones con un uso intensivo de entrada y salida. OpenMosix está liberado como un parche del núcleo de linux, pero también está disponible en distribuciones LiveCD (Knoppix) y en la distribución Gentoo, que nos permite la elección de núcleo de linux a utilizar, entre ellas OpenMosix.

OpenMosix es estable en la versión 2.4 del núcleo de linux para la arquitectura x86. El soporte para los AMD64 comienza a partir de la versión 2.6.

Características

  • No se requieren paquetes extra.
  • No son necesarias modificaciones en el código.
  • Es dependiente del kernel.
  • No migra todos los procesos siempre, tiene limitaciones de funcionamiento.
  • Problemas con memoria compartida.
  • Tampoco se obtendrá mucha mejora cuando se ejecute un solo proceso, como por ejemplo el navegador.
  • Además los procesos con múltiples hilos no ganan demasiada eficiencia.

Migración de procesos

Con openMosix se puede lanzar un proceso en una computadora y ver si se ejecuta en otra, en el seno del cluster. Cada proceso tiene su único nodo raíz (UHN, unique home node) que se corresponde con el que lo ha generado. El concepto de migración significa que un proceso se divide en dos partes: la parte del usuario y la del sistema. La parte, o área, de usuario será movida al nodo remoto mientras el área de sistema espera en el raíz. OpenMosix se encargará de establecer la comunicación entre estos 2 procesos.

¿ Cuándo podrá migrar un proceso?

Desgraciadamente, no todos los procesos pueden migrar en cualquier circunstancia. El mecanismo de migración de procesos puede operar sobre cualquier tarea de un nodo sobre el que se cumplen algunas condiciones predeterminadas. Éstas son:

  • El proceso no puede ejecutarse en modo de emulación VM86.
  • El proceso no puede ejecutar instrucciones en ensamblador propias de la máquina donde se lanza y que no tiene la máquina destino (en un cluster heterogéneo).
  • El proceso no puede mapear memoria de un dispositivo a la RAM, ni acceder directamente a los registros de un dispositivo.
  • El proceso no puede usar segmentos de memoria compartida.

Cumpliendo todas estas condiciones el proceso puede migrar y ejecutarse migrado. No obstante, como podemos sospechar, OpenMosix no adivina nada. OpenMosix no sabe a priori si alguno de los procesos que pueden migrar tendrán algunos de estos problemas. Por esto en un principio openMosix migra todos los procesos que puedan hacerlo si por el momento cumplen todas las condiciones, y en caso de que algún proceso deje de cumplirlas, lo devuelve de nuevo a su nodo raíz para que se ejecute en él mientras no pueda migrar de nuevo. Todo esto significa que mientras el proceso esté en modo de emulación VM86, mapee memoria de un dispositivo RAM, acceda a un registro o tenga reservado/bloqueado un puntero a un segmento de memoria compartida, el proceso se ejecutará en el nodo raíz, y cuando acabe la condición que lo bloquea volverá a migrar. Con el uso de instrucciones asociadas a procesadores no compatibles entre ellos, openMosix tiene un comportamiento diferente: solo permitirá migrar a los procesadores que tengan la misma arquitectura.

Detalles





 

 

 

Centro Informático Científico de Andalucía | Aviso legal | Accesibilidad

XHTML válido CSS válido