Director: Dr. Marcelo Naiouf
Codirector: Ing. Armando E. De Giusti
Objetivos generales:
- Estudiar aspectos de arquitecturas y algoritmos en computación de alto desempeño.
- Caracterizar las arquitecturas multiprocesador para HPC, homogéneas e híbridas, analizando técnicas para el desarrollo de código eficiente sobre las mismas.
- Estudiar, desarrollar y aplicar algoritmos paralelos y distribuidos en HPC (incluyendo herramientas para la transformación de código heredado), evaluando la performance de la paralelización de aplicaciones sobre grandes volúmenes de datos (big data) y cómputo intensivo.
- Analizar las métricas de performance para las arquitecturas multiprocesador, considerando escalabilidad, rendimiento computacional y energético, y tolerancia a fallos.
- Tratar aplicaciones de cómputo multiprocesador distribuido, en el área de los Sistemas de Tiempo Real y la robótica.
- Analizar y proponer soluciones en el área de Cloud Robotics.
- Analizar y proponer metodologías y productos en el campo de los Sistemas de Tiempo Real y Robótica.
- Analizar y proponer modelos matemáticos que permitan caracterizar fenómenos y sistemas particulares, proponiendo soluciones numéricas viables para resolver estos modelos.
- Aplicar la investigación de base a problemas concretos, buscando optimizar las soluciones paralelas.
- Formar recursos humanos a nivel de grado y postgrado en los temas del proyecto.
Cabe hacer notar que el proyecto planteado actúa de manera coordinada con otros dos proyectos presentados a esta convocatoria por el III-LIDI, en temas de Ingeniería de Software y Sistemas Inteligentes.
A continuación, se detallan los objetivos y productos finales esperados, por subproyecto.
SubProyecto CAD-1. Arquitecturas Multiprocesador en Computación de Alto Desempeño.
Director: Ing. Armando De Giusti
Codirectores: Esp. Franco Chichizola e Ing. Horacio Villagarcía Wanza
Objetivo
- Caracterizar las arquitecturas multiprocesador orientadas a computación de alto desempeño, analizando técnicas para el desarrollo de código eficiente sobre las mismas.
- Analizar métricas de performance para diferentes arquitecturas multiprocesador, considerando rendimiento computacional y energético.
- Estudiar la conformación de clusters y clouds a partir de configuraciones homogéneas e híbridas de multiprocesadores. Analizar la performance de aplicaciones sobre los mismos, considerando eficiencia computacional/energética y escalabilidad, así como la tolerancia a fallos.
Líneas de Investigación y desarrollo
- Estudio y caracterización de arquitecturas multicore y many-core (procesadores MIC y GPU). Métricas de rendimiento y análisis de técnicas para desarrollar código optimizado sobre ellas.
- Estudio y caracterización de arquitecturas FPGA. Métricas de rendimiento y análisis de técnicas para desarrollar código optimizado sobre ellas.
- Estudio y caracterización de arquitecturas multiprocesador asimétricas. Métricas de rendimiento y técnicas para optimizar código en ellas.
- Arquitecturas híbridas (diferentes combinaciones de clusters, multicores, manycores y FPGAs). Diseño de algoritmos paralelos sobre las mismas.
- Arquitecturas paralelas configuradas como Clusters y Clouds. Software de base y Aplicaciones.
- Desarrollo de algoritmos de planificación de procesos orientado a procesadores asimétricos para optimizar el rendimiento general. Análisis en los diferentes niveles: sistema operativo, compiladores, técnicas de programación.
- Consumo energético en diferentes arquitecturas multiprocesador. Integración de métricas de rendimiento computacional y energético. Predicción de performance de aplicaciones paralelas.
- Investigación de técnicas de tolerancia a fallas en Arquitecturas de Cluster y Cloud.
- Desarrollo de aplicaciones concretas (numéricas y no numéricas) sobre diferentes máquinas paralelas utilizando técnicas de optimización adecuadas a cada arquitectura.
- Cloud Computing. Sistemas inteligentes distribuidos de tiempo real aprovechando la potencia de cómputo del Cloud (Cloud Robotics).
Productos y/o Resultados finales esperados
- Investigación aplicada orientada a la optimización del uso de arquitecturas multiprocesador para computación de alto desempeño, considerando las nuevas tendencias tecnológicas y la importancia creciente del tema consumo energético y tolerancia a fallas.
- Formar recursos humanos en los temas de Computación de Alto Desempeño, incluyendo Tesis de Postgrado.
SubProyecto CAD-2. Algoritmos paralelos en computación de alto desempeño. Fundamentos, construcción y evaluación de aplicaciones.
Director: Dr. Marcelo Naiouf
Codirector: Dra. Laura De Giusti
Objetivo
Investigar en temas de cómputo paralelo y distribuido de alto desempeño, tanto en lo referido a los fundamentos como a la construcción y evaluación de las aplicaciones. Esto incluye los problemas de software asociados con el uso de arquitecturas multiprocesador.
Interesa la construcción, evaluación y optimización de soluciones utilizando algoritmos concurrentes, paralelos y distribuidos sobre diferentes plataformas de software y arquitecturas con múltiples procesadores (multicore, clusters, GPU, FPGA, entornos cloud), los lenguajes y paradigmas de programación paralela (puros e híbridos a distintos niveles), los modelos y paradigmas paralelos, la asignación de procesos a procesadores, el balance de la carga de procesamiento, y las métricas de evaluación de complejidad y rendimiento (speedup, eficiencia, escalabilidad, consumo energético, costo de programación).
Se propone aplicar los conceptos en problemas numéricos y no numéricos de cómputo intensivo y/o sobre grandes volúmenes de datos (aplicaciones científicas, búsquedas, simulaciones, imágenes, bioinformática, big data, etc).
Líneas de Estudio/Investigación y Desarrollo
- Paralelización de algoritmos secuenciales. Diseño y optimización de algoritmos.
- Comparación de lenguajes y bibliotecas para procesamiento paralelo y distribuido.
- Estudio de complejidad de algoritmos paralelos, considerando multicore y heterogeneidad.
- Modelos y paradigmas de computación paralela. Modelo MapReduce.
- Predicción de performance de algoritmos paralelos.
- Métricas del paralelismo.
- Arquitecturas multicore y many-core. Arquitecturas FPGA. Arquitecturas de bajo costo.
- Arquitecturas híbridas (combinaciones de multicores y GPUs) y Arquitecturas heterogéneas.
- Técnicas de programación sobre modelos híbridos
- Técnicas de programación sobre arquitecturas many-core (GPU y Xeon Phi) y FPGA
- Técnicas para soluciones de HPC en cloud.
- Lenguajes y Estructuras de Datos para nuevas arquitecturas de cómputo paralelo.
- Exploración de nuevos lenguajes y modelos de programación para HPC.
- Mapeo de procesos. Balance de carga estático y dinámico. Técnicas.
- Desarrollo de soluciones paralelas a problemas de cómputo intensivo y/o con grandes volúmenes de datos (aplicaciones científicas, búsquedas, simulaciones, imágenes, realidad virtual y aumentada, bioinformática, big data). sobre diferentes modelos de arquitectura homogéneas y heterogéneas (multicores, clusters, GPU, MIC, FPGA y cloud). Ajuste del modelo de software al modelo de hardware a fin de optimizar el sistema paralelo.
- Evaluación de rendimiento prestacional (speedup, eficiencia, escalabilidad), eficiencia energética y costo de programación de las diferentes soluciones implementadas teniendo en cuenta las arquitecturas y las herramientas de programación utilizadas.
- Ambientes para la enseñanza de programación concurrente.
Productos y/o Resultados finales esperados
- Realizar investigación aplicada en algoritmos paralelos para computación de alto desempeño sobre diferentes arquitecturas de soporte actuales, tanto homogénea como heterogénea, evaluando diferentes métricas de rendimiento.
- Formar recursos humanos en los temas de Computación de Alto Desempeño, incluyendo Tesis de Postgrado a nivel de Maestría y Doctorado y Trabajos de Especialización.
SubProyecto CAD-3. Procesamiento para problemas de Tiempo Real / Robótica
Director: Dr. Fernando Tinetti
Codirector: Mg. Fernando Romero
Objetivo
Investigar y desarrollar metodología de cómputo destinada a Sistemas de Tiempo Real (sistemas en los cuales las restricciones temporales en los plazos son estrictas), atendiendo en especial los aspectos relacionados con planificación de tareas y comunicaciones, realizando implementaciones de robots y en general, sistemas de adquisición y control.
Líneas de Estudio/Investigación y Desarrollo
- Optimización de cómputo, utilización de recursos y planificación de procesos para sistemas de tiempo real.
- Verificación y validación de diferentes plataformas de hardware, a fin de encontrar los más adecuados, como así también plantear mejoras en el mismo, utilizando simulaciones y sistemas reales a los cuales se les medirá rendimiento tanto en lo temporal como en el consumo de energía.
- Estudio y construcción de redes de sensores, utilizando como plataforma microcontroladores interactuando con una PC, utilizando tanto comunicaciones cableadas en los protocolos de comunicaciones MODBUS y CANBUS como inalámbricas, sea utilizando RF, Bluetooh o WiFi.
- Diseño y construcción de vehículos, no tripulados, estudiando sistemas de navegación y odometría.
Metas/ Productos y/o Resultados finales esperados
- Benchmark y verificación de rendimiento tanto de plataformas de hardware (microcontroladores, dispositivos de comunicación, actuadores y sensores) como de software (Sistemas Operativos de Tiempo Real y lenguajes – compiladores). La verificación de rendimiento implica desarrollo de metodología y artefactos para la medición de consumo y tiempos de latencia, en particular del cómputo y entrada/salida.
- Vehículos no tripulados con sistemas de navegación que le permiten seguir trayectorias, reconocer ambiente, evitar obstáculos.
- Red de sensores con dispositivos heterogéneos, a diferentes niveles: local y remoto.
SubProyecto CAD-4. Modelos y métodos computacionales. Procesamiento de señales y reconocimiento de patrones.
Directores: MSc. Oscar Bria Mg. Javier Giacomantone
Objetivo
Analizar y proponer modelos matemáticos que permitan caracterizar fenómenos y sistemas particulares. Estudiar y proponer soluciones numéricas viables para resolver estos modelos. Según la línea de investigación y el tema particular abordado será necesario estudiar distintos tipos de modelos: descriptivo o predictivo, determinístico o probabilístico, dinámico o estático y eventualmente lineal o no lineal.
Los resultados obtenidos podrán ser de aplicación en problemas de diversas áreas tales como big data, análisis de imágenes o reconocimiento de patrones.
Líneas de Estudio e Investigación
- Modelos en reconocimiento estadístico de patrones.
- Modelos en análisis de señales e imágenes en particular.
- Modelos que permitan evaluar el desempeño e integridad de sistemas.
Resultados finales esperados
- Métodos alternativos para detección de valores atípicos (outliers).
- Métodos de segmentación espectral en imágenes de rango.
- Métodos de análisis y generación de descriptores.
- Segmentación adaptiva. Modelos deformables.
- Evaluación de la integridad en el sistema GBAS (Ground Based Augmentation System), que provee corrección diferencial en tierra.
- Evaluación de la disponibilidad del sistema GBAS.
- Modelos y métodos basados en núcleos dispersos.
- Métodos basados en máquinas de soporte vectorial.
- Análisis de datos GNSS (Global Navigation Satellite System) en busca de anomalías.
- Métodos de selección de características en SVM (Support Vector Machines).
Modelos multidimensionales basados en filtros anisotrópicos.