Paralelización de Análisis de Reglas de Asociación Andrés Villavicencio T.
Itinerario. División del Algoritmo secuencial. Propuesta Inicial. Evaluación de rendimiento. Corrección propuesta. Evaluación de rendimiento. Comentarios.
División del Algoritmo secuencial. Aplanar transacciones: aproximadamente 5% del consumo de cpu. Expandir itemes: aproximadamente 25% del tiempo de procesamiento. Generar Pares: aproximadamente 10% del tiempo de procesamiento. Almacenar reglas: 60% del procesamiento y 95% del consumo de memoria.
Propuesta inicial Se divide el algoritmo en 2 procesos. – Procesador de archivos. – Servidor de Almacenamiento (Activo). Se pueden crear cualquier numero de instancias de ambos procesos.
Procesador de Archivos. Recibe como parámetro la lista de servidores de almacenamiento creados. Realiza: aplanamiento, expansión y generación de pares. Construye grupos de 1 millón de pares de productos y los envía al servidor correspondiente.
Servidor de Almacenamiento. Es un objeto activo Realiza el almacenamiento de los datos. Esquema de operación: – Si hay un paquete de datos esperando ser recibido, se recibe. – En cualquier otro caso procesa datos.
Evaluación del rendimiento.
Corrección Propuesta Gran parte de la reducción de la velocidad esta asociada a problemas de red. 1.5 millones de transacciones con un promedio de 80 itemes por transacción significan: 3200 pares * 12 bytes por par * transacciones = bytes o alrededor 57 GB de transferencia.
Correccion Propuesta En vez de transmitir los pares de reglas, transmitimos los itemes de las transacciones. 1.5 millones de transacciones a 80 itemes por transacción: 324 bytes * = 486M por servidor.
Evaluación del rendimiento 2.
Comentarios Aun hay asuntos por resolver: – Manejo de excepciones. – Deployment automatizado. – Configuración optima de servidores almacenamiento vs procesador de archivos. – Carga máxima de red.
¿Preguntas?