5.3 Resultados Experimentales
5.3.2 Resultados de Estrategias de Mapeo
La segunda parte de los experimentos se relaciona con el uso de estrategias de mapeo que dis- tribuyen procesamiento de vértices de acuerdo con ciertos criterios. La estrategia utilizada hasta ahora fue la estrategia basada en la ubicación, que es la estrategia más rápida disponible en Graphly. El desempeño de la estrategia basada en la ubicación está relacionada con la distribu- ción equilibrada de los vértices en la base de datos de grafos. Otras estrategias pueden ser muy adecuadas para otros escenarios de distribución o características de hardware del clúster que se utiliza.
Tal como se presenta en el Capítulo 4, Sección 4.4.4 otras estrategias incorporadas en Graphly son la estrategias de Round Robin (RR), Memoria Máxima (MM) y Memoria Disponible (AM). La estrategia RR fue utilizada como la estrategia de base para la comparación, ya que distribuye uniformemente vértices a procesar entre los trabajadores, pero esta distribución no está alineada a la forma en que los datos se almacena en el cluster.
Las estrategias basadas en la memoria son una variación de una estrategia basada en criterios implementado por la clase CRITERIAMAPPER. Las estrategias basadas en criterios permiten distribuir los vértices de acuerdo con una métrica del nodo definida por el usuario (por ejemplo, uso de la CPU, la memoria disponible o de otro tipo). A diferencia de RR, la estrategia basada en criterios realiza una asignación inicial de particiones para nodos basados en la estrategia por ubicación, y luego vuelve a asignar parte de los vértices a otros nodos en función del valor actual de la métrica especificada. Por ejemplo, considere los valores de memoria actuales de la configuración del clúster experimental: nodo 1, 2 y 3 tienen 8 GB de RAM y nodos 4, 5, 6, 7 y 8 tienen un 16 GB de RAM. Por lo tanto, la estrategia que utiliza la cantidad máxima de memoria RAM disponible (es decir, la estrategia de Memoria Máxima) se configura como sigue:
1. Los nodos 1, 2 y 3 se les asigna un valor de métrica de 0,5 (la mitad de la cantidad de la RAM máxima) y los nodos 4, 5, 6, 7 y 8 se les asigna un valor de métrica de 1.
2. Un conjunto de "casillas" de tamaño fijo se asigna a cada nodo, por ejemplo, a 100 casillas. Esta operación crea una matriz de N nodos por C casillas, por ejemplo la dimensión de la matriz para el ejemplo sería de 8 x 100. Cada casilla se refiere a un nodo y puede formar una referencia de bucle. Esto último significa que la decisión tomada por la estrategia de ubicación no se modifica.
Node 2 4 5 6 7 8 13 Vertex Location-Aware Strategy Node 1 Node 8 Node 8 Node 1 4 5 6 7 8 23 Node 2
50 buckets 8 buckets 5 buckets
...
Figure 5.13: Ejemplo de asignación utilizando CRITERIAMAPPER.
3. La asignación de nodos a casillas depende del valor de la métrica. El nodo 1, por ejemplo, tendrá 50 casillas que hacen referencia al nodo 1, y el resto se repartirá entre el otro conjunto de nodos, utilizando también cada valor de la métrica. Por lo tanto, cuando un vértice está dentro de los primeros 50 cubos, la estrategia de reconocimiento de ubicación prevalecerá y el vértice será asignado al nodo 1. De lo contrario, el vértice será reasignado a otro vértice.
Resolver donde un vértice debe asignarse requiere dos pasos, como se muestra en la Figura 5.13. La primera etapa busca la ubicación del vértice, y en segundo lugar, el ID de vértice se aplica un hash basado en módulo para encontrar su correspondiente número de casilla. De acuerdo a cómo se asignan los cubos, el vértice se puede enviar al nodo donde se almacena o a otro nodo donde será tratado como un vértice no local. Los datos relativos a un vértice no local deben ser obtenidos de forma remota, introduciendo una alta penalización en cuando recomendación.
El comportamiento de cada estrategia de mapeo debe ser analizada a través de sus patrones de uso de memoria y de red. Como caso de estudio para ilustrar este proceso, la versión del FJ del algoritmo TFR para el usuarioFol3 (@BarackObama) fue analizada bajo las diferentes estrategias de mapeo implementadas en Graphly. La Figura 5.14 muestra el uso de la memoria de cada nodo a lo largo de toda la ejecución. En este caso de estudio los nodos 1, 2 y 3 estuvieron equipados con 8 GB de RAM, mientras que el resto de los nodos tiene 16 GB de memoria RAM. El nodo 4 fue asignado como destino del trabajo padre, lo que significa que la combinación de los resultados se realiza en ese nodo y tiene una mayor cantidad de consumo de memoria, como se muestra en la figura. El resto de los nodos exponen diferentes comportamientos de memoria en función de la estrategia. La estrategia por ubicación presenta un uso de memoria más bien equilibrada para cada nodo. Los patrones de uso de memoria en round-robin es bastante caótica. La estrategia de Memoria Máxima termina con un mayor uso de memoria en los nodos que tienen más memoria RAM. La estrategia de Memoria Disponible es una estrategia dinámica que cambia la asignación de vértice en cada paso del algoritmo de acuerdo con la memoria disponible en cada nodo. La estrategia de Memoria Disponible mostró una mejor asignación de memoria que la estrategia de Memoria Máxima, lo que redundó en un uso de memoria en general inferior. Sin embargo, la naturaleza dinámica de Memoria Disponible puede producir grandes picos de uso de la red debido a la reasignación de los vértices.
El uso de red acumulado para las diferentes estrategias de mapeo se presentan en la figura 5.15. Los gráficos muestran la cantidad de datos enviados a través de la red de una manera acumula- tiva. Un valor constante significa que ningún dato se envió en el período. En este sentido, cada estrategia expone un patrón bien definido en los gráficos de líneas. La estrategia por ubicación (Figura 5.15a) mantiene el uso de la red muy baja, y sólo aumenta la cantidad de datos trans- feridos cuando el paso del algoritmo fusiona resultados y asigna nuevas particiones. El uso de la memoria sigue siendo muy bajo en comparación con otras estrategias, como se muestra en la Figura 5.14a.
CHAPTER 5. MECANISMOS DE SOPOR TE P ARA ALGORITMOS B ASADOS EN CAMINOS
(a) Por ubicación (b) Round Robin
(c) Memoria Máxima. (d) Memoria Disponible.
RESUL T ADOS EXPERIMENT ALES 121 of 206
5. MECANISMOS DE SOPOR TE P ARA ALGORITMOS EN CAMINOS
(a) Por ubicación. (b) Round Robin
(c) Memoria Máxima (d) Memoria Disponible.
Figure 5.15: Utilización de red por nodo en TFR utilizando FJ para el usuarioFol3
206 5.3. RESUL T ADOS EXPERIMENT ALES
La estrategia de Round Robin (Figura 5.15b) la asignación equilibrada de vértices mantiene el uso de la red controlada, pero en constante aumento debido a que cada nodo recibe mu- chos vértices no locales. El uso de la memoria en Round Robin es caótica, como se ve en la figura 5.14b.
La estrategia de Memoria Máxima mantiene las transferencias salientes de la red (Figura 5.15c)) de nodos de memoria de alta en niveles bajos debido a que todos los vértices son locales. Sin embargo, para los nodos de memoria baja, se intercambia el uso de la memoria con el uso de la red, como se puede ver en la Figura 5.14c y la Figura 5.15c, donde los 3 primeros nodos (que tienen 8 GB de RAM) exhiben un alto uso de la red, pero una asignación de memoria baja. La estrategia de Memoria Disponible es similar a la estrategia de memoria máximo pero comienza a reequilibrar los datos más prematuramente, a medida que cada nodo llena la memoria disponible, como se puede observar en la figura 5.14d y la Figura 5.15d. En general, la estrategia de Memo- ria Disponible produce picos más bajos de memoria que la de Memoria Máxima, pero genera más tráfico de red.
Las estrategias de mapeo fueron diseñados para ser utilizadas en diferentes modelos de procesamiento con el fin de comparar su adaptación a diferentes escenarios del clúster. Para analizar el impacto de las estrategias de mapeo de cada modelo, las versiones FJ, Pregel y DPM de TFR se compararon para el usuario Fol3. Como se muestra en la Figura 5.16, la estrate- gia por ubicación proporciona un uso intensivo de la memoria, pero el tiempo más bajo de recomendación para cada modelo. La estrategia de Round Robin utiliza una gran cantidad de memoria que crece constantemente cada segundo. Por otra parte, es la segunda estrategia más lenta. La estrategia más lenta es la estrategia de Memoria Máxima, que intercambia la veloci- dad de recomendación por el uso de memoria. Por último, la estrategia de Memoria Disponible proporciona altos (pero controlados) niveles de uso de memoria, pero tiempos más rápidos de recomendación (que Memoria Máxima).
Si se considera el uso de la red bajo los tres modelos, Round Robin transfiere la mayor can- tidad de datos, como se muestra en la Figura 5.17. La estrategia por ubicación es la estrategia menos intensiva en red. En el medio, las estrategias de Memoria Disponible y Memoria Máx- ima transfieren casi la misma cantidad de datos de red, pero con ritmos diferentes: Memoria Disponible transfiere los datos más rápido, ya que procesa TFR más rápido.
Usando la información recopilada y analizada a partir de los patrones de red y de uso de memoria, se propusieron un par de escenarios en los que las estrategias pueden ser útiles - o incluso decisivas - para construir una lista de recomendaciones.
5. MECANISMOS DE SOPOR TE P ARA ALGORITMOS EN CAMINOS
(a) Fork-Join (b) Pregel
(c) DPM
Figure 5.16: Uso total de memoria en TFR por modelo de procesamiento, para el usuarioFol3
206 5.3. RESUL T ADOS EXPERIMENT ALES
CHAPTER 5. MECANISMOS DE SOPOR TE P ARA ALGORITMOS B ASADOS EN CAMINOS
(a) Fork-Join (b) Pregel
(c) DPM RESUL T ADOS EXPERIMENT ALES 125 of 206
Primer Escenario
El primer escenario es un escenario muy desequilibrado donde la mitad de las máquinas tiene 2 GB de RAM y el resto 16 GB de RAM. Sin embargo, el almacenamiento se distribuye por igual entre los nodos, por lo que una estrategia que reconoce la ubicación o una estrategia Round Robin se comporta de forma lenta o ni siquiera puede proporcionar una solución a todos los usuarios debido a errores de memoria insuficiente. Los experimentos se realizaron sobre el conjunto de Seguidores ejecutando TFR bajo FJ, Pregel y DPM.
Como se muestra en los resultados en la Figura 5.18 la mayor parte de las pruebas de Round Robin y por ubicación fracasaron. El único modelo que proporcionó una solución en algunos usuarios fue el modelo de DPM. Como era de esperar, la estrategia de Memoria Máxima fue muy lenta pero no falló en cualquiera de las ejecuciones. La alternativa Memoria Disponible proporcionó casi los mismos resultados de rendimiento. Este escenario ilustra cómo la elección de una estrategia de mapeo de acuerdo con las características de clúster es esencial para obtener resultados de recomendación y, además, permite ilustrar la flexibilidad de Graphly, no ofrecida por otros frameworks, para configurar la estrategia bajo un modelo de procesamiento dado.
Segundo Escenario
Una variación del primer escenario consiste en realizar la fusión de los resultados, por ejemplo, para los modelos FJ y DPM, en un nodo con relativamente poca memoria. Para crear este escenario, un nodo se ha configurado con 4 GB de RAM, 4 con 2 GB de RAM y el resto con 16 GB. Bajo este escenario, la estrategia de memoria disponible debe ser capaz de relocalizar parte de los vértices del nodo de 4 GB mientras el nodo se encuentre utilizando la memoria para combinar los resultados.
La Figura 5.19 muestra los resultados de ejecutar TFR bajo el segundo escenario. En este escenario, ambas estrategias Round Robin y por ubicación no pudieron proporcionar resultados, a excepción de dos ejecuciones de DPM. La memoria más baja asignada al nodo principal genera que la mitad de las pruebas de FJ fallen. Tenga en cuenta que DPM y Pregel no se ven afectados por esta situación porque la fusión de resultados se distribuye en todo el clúster. Por último, como se esperaba, la estrategia de Memoria Disponible ayuda a terminar las pruebas de TFR para todos los usuarios en el conjunto de Seguidores.