next up previous contents
Next: 4.3 Benchmark HPL Up: 4.2 Implementación paralela Previous: 4.2.9 Gráficas   Índice General


4.2.10 Discusión de resultados

Además de las observaciones presentadas, existen algunos factores que se observan por igual en todas las gráficas mostradas.

En la figura (3.3) se observa una reducción del desempeño entre 7 y 8 nodos. En general ésta y otras fluctuaciones en la forma esperada de la curva se deben al hecho de que los equipos utilizados en el cluster no tienen un rendimiento similar. Por lo tanto, al introducir los equipos 486/50, que tienen un rendimiento menor a los 486/66, se genera un ``cuello de botella'' donde el equipo más lento es el que determina la terminación del cálculo.

Al agregar más elementos de procesamiento, sin embargo, esta tendencia se revierte y como se comentó, con el mayor número de nodos posible se obtiene el mejor rendimiento para problemas grandes.

Esto se debe hasta cierto punto al algoritmo de asignación de trabajo empleado en la multiplicación de matrices, y descrito en la sección (3.2.2). Como se observa, la asignación de trabajo busca ser lo más equitativa posible, lo cual es adecuado en una máquina donde todos los nodos fueran exactamente iguales. Sin embargo en el sistema que se tiene, esto no se cumple, y asignar la misma cantidad de trabajo a un nodo más lento efectivamente lo convierte en un cuello de botella.

Esta situación puede remediarse si se implementa un mecanismo de asignación de trabajo diferente; en particular, la asignación del trabajo pendiente en unidades más pequeñas, y únicamente a los nodos que estén disponibles. De esta manera, por ejemplo, cada nodo resolvería un renglón a la vez, lo entregaría al servidor central, y éste indicaría al nodo el siguiente renglón que debe resolver.

Este es un ejemplo de las complicaciones que pueden surgir en un cluster donde el rendimiento por nodo es distinto, y da una idea de por qué normalmente se busca que los nodos de un Beowulf sean lo más parecidos posible, a fin de evitar esquemas de asignación de trabajo potencialmente más complicados.

A nivel general, de los resultados se observa que para cada tamaño de problema, puede o no resultar conveniente el uso de un cluster; asimismo, el número de nodos que se deben dedicar al proceso puede influir en el desempeño. En general para problemas grandes, que son los de más interés en un cluster, se obtiene beneficio dedicando el número máximo de nodos, pero a medida que el problema se reduce, el mejor rendimiento se alcanza con menos nodos. En el extremo de esta lógica se observa que para problemas muy pequeños el uso de un solo procesador da un mejor rendimiento.

Por lo tanto es importante evaluar la dimensión del problema a resolver, antes de decidir si se obtendrá un beneficio utilizando un cluster.


next up previous contents
Next: 4.3 Benchmark HPL Up: 4.2 Implementación paralela Previous: 4.2.9 Gráficas   Índice General
2002-05-15