LogoLidi Logo30años
LogoUNLP

11-F010-Arquitecturas multiprocesador distribuidas. Modelos, Software de Base y Aplicaciones.

Director
Ing. Armando De Giusti

Co-Director
Dr. Fernando Tinetti
Objetivos

Caracterizar las arquitecturas multiprocesador distribuidas, en particular las basadas en procesadores de múltiples núcleos, tales como Clusters, Multiclusters y Grid con el objetivo de modelizarlas, estudiar su escalabilidad, analizar y predecir perfomance de aplicaciones paralelas y estudiar esquemas de tolerancia a fallas en las mismas.

Desarrollar software de base para clusters de multicores, tratando de optimizar perfomance de las arquitecturas, suponiendo diferentes modelos de programación paralela y diferentes esquemas o paradigmas de resolución de aplicaciones.

Es de hacer notar que este proyecto se coordina con otros dos proyectos presentados por el III-LIDI y relacionados con Algoritmos Distribuidos/Paralelos y Sistemas de Software Distribuido.


SubProyecto AMD P1: Arquitecturas Multiprocesador Distribuidas. Modelos, Simulacion , Software de base y Aplicaciones

Directores
Ing. Armando De Giusti
Ing. Horacio Villagarcía Wanza

Objetivo

Caracterizar las arquitecturas multiprocesador distribuidas, en particular las basadas en procesadores de múltiples núcleos, tales como Clusters, Multiclusters y Grid con el objetivo de modelizarlas, estudiar su escalabilidad, analizar y predecir perfomance de aplicaciones paralelas y estudiar esquemas de tolerancia a fallas en las mismas. Desarrollar / utilizar herramientas de simulación de arquitecturas y sistemas multiprocesador para el análisis de comportamiento.

Desarrollar software de base para clusters de multicores, tratando de optimizar perfomance de las arquitecturas, suponiendo diferentes modelos de programación paralela y diferentes esquemas o paradigmas de resolución de aplicaciones.

Estudiar la optimización de aplicaciones paralelas sobre arquitecturas multiprocesador distribuidas.

Temas de Estudio e Investigación

  • Arquitectura de procesadores multicore. Software de base. Multhreading sobre multicore.
  • Modelos de predicción de performance para arquitecturas “híbridas” (con memoria compartida y memoria distribuida). Aplicación a clusters de multicores.
  • Simulación de arquitecturas.
  • Paradigmas orientados a arquitecturas distribuidas débilmente acopladas. Modelos de comunicación y sincronización. Lenguajes para programación paralela.
  • Arquitecturas de cluster y multicluster. Casos de memoria totalmente distribuida y parcialmente compartida .
  • Arquitecturas de multicluster dedicados. Caracterización de las comunicaciones. Relojes distribuidos.
  • Tecnología GRID. Middleware de GRID. Descubrimiento y configuración de recursos en GRID.
  • Asignación óptima de procesos a procesadores. Migración dinámica. Optimización de rendimiento en GRID.
  • Impacto de la heterogeneidad de los procesadores en el rendimiento de procesadores de múltiples núcleos, clusters, multiclusters y GRID. Predicción de performance considerando la heterogeneidad de procesadores y comunicaciones.
  • Escalabilidad de algoritmos paralelos en arquitecturas de cluster ,multicluster y GRID, considerando procesadores de múltiples núcleos.
  • Métricas de eficiencia en algoritmos paralelos sobre multicores, clusters y multiclusters.
  • Análisis de complejidad en algoritmos paralelos, considerando procesadores de múltiples núcleos (potencialmente heterogéneos).
  • Dependencia de la eficiencia respecto de las comunicaciones intra-cluster e inter-cluster.
  • Procesamiento Paralelo sobre arquitecturas Grid. Aplicaciones de modelos paramétricos. Aplicaciones de servicios WEB distribuídos. Aplicaciones de data mining distribuido.
  • Cloud computing. Análisis comparativo con cluster y grid computing.
  • Paralelización de Web Services.

Investigación experimental

  • Desarrollo y prueba de un cluster de multicores (64-128-256 núcleos), incluyendo el estudio de las alternativas de lenguajes de programación y bibliotecas de comunicación/sincronización.
  • Modelos de predicción de perfomance en esquemas multicluster heterogéneos. Escalabilidad de clases de aplicaciones sobre multicluster.
  • Pruebas con el GRID configurado como “Cluster de Clusters” con UNLP, UNSur, UNComahue, UN San Luis, UCMadrid, UPValencia y UABarcelona.
  • Análisis de algoritmos no numéricos sobre esquemas de cluster de multicores y multi-cluster. Migración de algoritmos desarrollados para un cluster clásico homogéneo. Balance dinámico y migración de datos y procesos.
  • Técnicas de mapping (estático y dinámico) para arquitecturas de cluster y multicluster.
  • Técnicas de virtualización (estática y dinámica) para arquitecturas de cluster y grid.
  • Investigación de los paradigmas de programación paralela en clases de aplicaciones sobre multicluster y GRID.

Productos y/o Resultados finales esperados:

  • Investigación aplicada orientada a la optimización del uso de arquitecturas multiprocesador distribuidas, configuradas como Clusters, multiclusters y Grid en aplicaciones paralelas.
  • Formar recursos humanos en los temas de Sistemas Distribuidos y Paralelos, incluyendo Tesis de Postgrado.

SubProyecto AMD P2: Procesamiento Paralelo de aplicaciones numéricas de Alto Rendimiento

Directores
Dr. Fernando Tinetti
Ing. Armando De Giustia

Objetivo

Investigar temas específicos sobre procesamiento paralelo, enfocados a la resolución de aplicaciones numéricas de alto rendimiento.
Estos temas abarcan el desarrollo de patrones de resolución de clases de algoritmos paralelos, la investigación y desarrollo de una biblioteca de sincronización de relojes distribuidos y la transformación/optimización de los algoritmos paralelos de álgebra lineal sobre clusters, considerando la tecnología de procesadores de múltiples núcleos (multicores) que emerge actualmente.

Líneas de Estudio/Investigación y Desarrollo:

  • Arquitectura de procesadores multicore. Multhreading sobre multicore.
  • Clusters de multicores.
  • Patrones de resolución paralela de problemas sobre clusters de multicores.
  • Paradigmas, Modelos de comunicación y sincronización y Lenguajes para programación paralela.
  • Arquitecturas de multicluster dedicados. Caracterización de las comunicaciones. Relojes distribuidos.
  • Métricas de eficiencia en algoritmos paralelos sobre multicores, clusters y multiclusters.
  • Análisis de complejidad en algoritmos numéricos paralelos (en particular de Algebra Lineal), considerando procesadores de múltiples núcleos (potencialmente heterogéneos).
  • Caracterización de rendimiento de cómputo y de las comunicaciones en clusters e interclusters.
  • Sincronización de relojes distribuidos.
  • Optimización y/o desarrollo de rutinas y/o bibliotecas de comunicación específicamente optimizadas para clusters e interclusters.
  • Identificación de patrones de cómputo y comunicación que optimizan el cómputo paralelo.
  • Aplicación de los patrones de programación paralela para los problemas de álgebra lineal.
  • Mantenimiento y optimización de una biblioteca de Algebra Lineal Paralela sobre clusters de procesadores de múltiples núcleos

Productos y/o Resultados finales esperados:

  • Investigar patrones de resolución de clases de problemas en cómputo paralelo.
  • Desarrollar, mantener y mejorar una biblioteca de sincronización de relojes distribuidos, enfocada a arquitecturas de cluster y multicluster.
  • Mantener y optimizar la biblioteca de álgebra lineal en paralelo optimizada para cómputo en clusters que se dispone, adecuando las funciones a los clusters de procesadores de múltiples núcleos.
  • Formar recursos humanos en los temas de Sistemas Distribuidos y Paralelos, incluyendo Tesis de Postgrado.