[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: (Off Topic) Cluster 2



On Thu, 4 Sep 2003, wcom wrote:

> Hola a todos:
>
> Con respecto al trabajo que tengo que presentar en la facu.... ya lo tengo
> muy encaminado.... en lo que es teroia y los puntos a tocar y quiero ver si
> me pueden dar una mano por favor.
>
> Tema 1
> Alto rendimiento:
> Beowulf, Mosix y/o OpenMosix
> Cluster usando mosix y/o openmosix (prefiero estos).
> El Mosix es un parche del kernel que permite que un programa pueda ser
> paralelizado> y además que programas no paralelizados migren de un nodo al
  ^^^^^^^^^^^^
Falso (ver mas abajo).
> otro del cluster según la carga de trabajo de cada uno dinámicamente. Por
> ejemplo un nodo del cluster ejecuta 3 tareas y otro tambien el primero
> termina las tres, quedando con 0 tareas. Entonces dinámicamente pasarán
> tareas de las que están a medio realizar, del nodo con tres tareas al que
> tiene 0, repartiéndose la carga. El Mosix reliza este trabajo
> automáticamente. Además si un nodo se estropea, se deja de usar y no se le
> mandan trabajos. Si unes más nodos al cluster, automáticamente el Mosix lo
> reconoce y empieza a mandarle trabajos con lo cual la escalabilidad es
> bastante buena. El problema, es la conexion entre los mismo que debe ser
> minimo 100 fullduplex si o si, o preferiria 1000Gb
>
Mosix no paraleliza, si no que distribuye varios trabajos seriales (no
paralelos) entre los procesadores de un cluster. Pero la idea de hacer
computacion paralela es distrbuir el _mismo_ trabajo en varios procesos y
con eso mosix no funciona.

Las aplicaciones en paralelo de verdad correr usando bibliotecas de paso
de mensajes, ya sea MPI o PVM. Y el paralelismo se maneja a nivel de
aplicacion y no a nivel de sistema operativo.

Y si quieres distribuir trabajos y balancear carga es mejor usar un
sistema de colas como OpenPBS o Sun Grid Engine (este es open source) que
reparten los trabajos en el momento de ejecutarse y que son capaces de
manejar procesos en paralelo. (y tambien puedes hacer cosas como compilar
en paralelo.)

En HPC escalabilidad es la capacidad de una aplicacion de aumentar el
rendimiento a medida que aumenta el numero de procesos, el rendimiento
ideal para N procesadores es N*(rendimiento del codigo en 1 procesador)
pero esto se ve raras veces.

> Pregunta
> Este tema lo temgo liquidado, lo unico que no se si entendi bien es, yo tira
> una compilacion de kernel como para dar un ejemplo, tengo que hacerlo con
> algun comando al principio, para que esa compilacion sea mas rapida? o solo
> asume..... pregunto esto  por que es mi unica duda con este tema.

En el momento en que probe mosix no era capaz de lidiar con compilaciones
paralelas para casos simples por que los trabajos son muy cortos y no
alcanzan a migrar, ademas migrar un proceso es algo costoso y si el
trabajo no es largo es mejor que se quede en un nodo o sera mas lento que
migre, corra y vuelva.

Digamos en un verdadero cluster para HPC donde se correran aplicaciones
paralelas Mosix no tiene mucho que hacer y la utilidad que _podria_ dar es
reemplazable por aplicaciones mas robustas y mas simples de mantener (nada
de parchar kernels), sino que mosix es mas para aficionados y gente que le
gusta jugar a hacer un cluster. Tal vez tenga ventajas otras aplicaciones,
algo asi como granjas de compilacion pero yo no se de muchas.

Xavier



Reply to: