El banco de pruebas de computación: BaMos

BaMos (Batería de Mosix) es un conjunto de programas que permiten probar y medir el rendimiento de clusters OpenMosix de un modo sencillo.

La idea inicial era disponer de un conjunto de programas paralelos que permitiesen verificar cuales eran las ventajas y desventajas de este tipo de clusters, así como medir las capacidades de cualquier sistema de computación, monoprocesador o multiprocesador.

Pruebas con BaMos

Clustering de alto rendimiento con OpenMosix

Mosix es un cluster de alto rendimiento, respondiendo a los tipos de sistemas de ficheros de una sóla imagen. Mosix fue diseñado por el profesor universitario Amnon Barak durante 30 años, a través de 7 implementaciones diferentes hasta llegar lo que es actualmente.

En el año 2000 el proyecto cambió su licencia y desde entonces pasó de ser GPL a ser un proyecto cerrado (aún cuando era GPL, era no cooperativo, aceptando código exclusivamente de la Universidad Hebrea de Jerusalem).

Se hizo una ramificación del proyecto con las últimas versiones GPL como punto de partida. El proyecto abierto resultante recibió el nombre OpenMosix y es mantenido por uno de los codificadores y diseñadores que trabajaron sobre el Mosix original.

BaMos a fondo: las pruebas

Lo más importante en BaMos son las pruebas que se pueden realizar. Elegirlas significó estudiar en detalle qué subsistemas y con qué operaciones, pueden incrementar o decrementar su rendimiento en un cluster de tipo OpenMosix.

  • Operaciones de CPU Intensiva
    • Suma
    • Multiplicación en coma flotante
    • División en coma flotante
    Cuando un proceso hace uso intensivo de CPU en un nodo, un sistema OpenMosix trata de equilibrarse migrando los procesos a otras maquinas menos cargadas cuando sea posible. De esta manera el procesamiento se puede distribuir entre los nodos del cluster.

Más adelante se le añadió la opción de obtener estructuras de tipo rusage para disponer de resultados cuantitativos de las pruebas realizadas.

Por último, y para permitir un mejor uso de estos programas de línea de comando, se creó una interfaz de usuario que se encarga de lanzar los comandos de línea y recoger los resultados devueltos para facilitar las pruebas.

BaMos: Instalando

Para instalar BaMos sólo hay que seguir unos sencillos pasos:

Nota: Para compilar la interfaz gráfica es necesario tener instalada cualquier versión de las bibliotecas QT y sus cabeceras.

  1. Descargar el paquete
    • Para descargar BaMos pulsa aquí

  2. Descomprimir el paquete
    • tar xzf bamos-0.9.tar.gz

  3. Compilar todo
    • make

  4. Para compilar los programas de línea de comandos
    • make cli

  5. Para compilar la interfaz gráfica
    • make gui

BaMos: Ejecutando

Ejecutar los programas de linea de comandos devuelve los resultados directamente.
Los programas de línea de comandos se corresponden con las pruebas enumeradas anteriormente.

Para solicitar ayuda en pantalla sobre un comando hay que usar la opción -h.

Si quiere tener una mejor muestra de los resultados, use la interfaz gráfica BaMos.
Para ello, lance el programa gráfico bamos desde el propio directorio donde lo compiló.

La ventana principal presenta cuatro pestañas con cada una de las pruebas que se pueden realizar. En la parte inferior de la pantalla se presenta información detallada de cada proceso.

Junto a cada prueba se asocia una explicación de qué está haciendo la prueba. Pruebe a reajustar los parámetros de las pruebas y espere pacientemente a los resultados.

Para monitorizar las pruebas durante su ejecución en el cluster recomendamos utilizar programas como mosmon de las Userland OpenMosix Tools de David Santo Orcero y OpenMosixView de Matthias Rechenburg.

Otras consideraciones

To Do

Los siguientes pasos en la evolución de BaMos deberían ser:

Notas

BaMos lleva mucho tiempo sin desarrollarse... la última versión fue la 0.9 en el año 2000.
Al reencontrarla después de varios años hemos decidido publicarla. Así, quien quiera, puede analizar de un modo sencillo las ventajas e inconvenientes que tiene su cluster OpenMosix.

No existe más documentación que la que ves ahora mismo, así que cualquier colaboración para ampliarla o traducirla a otros idiomas será bien recibida.

Capturas de Pantalla