Director: Dr. Marcelo Naiouf
Codirector: Ing. Armando 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-P1. Arquitecturas Multiprocesador en Computación de Alto Desempeño.
Directores: Dr. Enzo Rucci y Esp. Franco Chichizola
Codirector: Ing. Horacio Villagarcía Wanza
Objetivos
- 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, eficiencia energética y costo de programación.
- 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 el esfuerzo de programación, la portabilidad y la resiliencia.
Líneas de Estudio/Investigación y Desarrollo
- Estudio y caracterización de arquitecturas multicore y many-core (especialmente GPUs). Métricas de rendimiento y análisis de técnicas para desarrollar código optimizado sobre ellas.
- Estudio y caracterización de arquitecturas FPGA y ASIC. 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.
- 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.
- 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.
- Desarrollo de técnicas de tolerancia a fallas que permitan aumentar la resiliencia de sistemas paralelos y distribuidos
- Estudio y diseño modelos de simulación basados en la arquitectura de E/S paralela para la mejora de su rendimiento.
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, portabilidad y resiliencia.
- Formar recursos humanos en los temas de Computación de Alto Desempeño, incluyendo Tesis de Postgrado.
SubProyecto CAD-P2. Algoritmos paralelos en computación de alto desempeño. Fundamentos, construcción y evaluación de aplicaciones.
Directores: Dr. Marcelo Naiouf y Dra. Laura De Giusti
Codirectores: Dr. Adrián Pousa y Dra. Victoria Sanz
Objetivos
- 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, coprocesadores Xeon Phi y placas de bajo costo), 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, criptografía, etc).
Líneas de Estudio/Investigación y Desarrollo
- Investigar en temas de cómputo paralelo y distribuido de alto desempeño, en lo referido a los fundamentos y a la construcción y evaluación de las aplicaciones. Esto incluye los problemas de software asociados con el uso de arquitecturas multiprocesador:
- Lenguajes, modelos y paradigmas de programación paralela (puros e híbridos a distintos niveles).
- Estudio de las capacidades de lenguajes no convencionales para procesamiento paralelo, considerando rendimiento y costo de programación.
- Análisis del proceso de migración de algoritmos entre arquitecturas diferentes, considerando portabilidad, rendimiento y esfuerzo de programación
- Asignación de procesos a procesadores optimizando el balance de la carga de procesamiento.
- Estudio e implementación de algoritmos de coplanificación en sistemas basados en contenedores.
- Métricas de evaluación de complejidad y rendimiento: speedup, eficiencia, escalabilidad, consumo energético, costo de programación.
- Construir, evaluar y optimizar soluciones utilizando algoritmos concurrentes, paralelos y distribuidos sobre diferentes plataformas de software y arquitecturas con múltiples procesadores:
- Arquitecturas de trabajo homogéneas, heterogéneas e híbridas: multicores, clusters, GPU, Xeon Phi, FPGA, placas de bajo costo y entornos cloud.
- 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, realidad virtual y aumentada, bioinformática, big data, n-body).
- Analizar y desarrollar ambientes para la enseñanza de programación concurrente y paralela.
- Caracterizar diferentes modelos de arquitecturas paralelas.
- Representar distintos modelos de comunicación/sincronización.
- Definir métricas de evaluación de rendimiento y eficiencia energética.
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 (homogéneas, heterogéneas e híbridas), evaluando diferentes métricas de rendimiento.
- Desarrollo de herramientas educativas como apoyo a la enseñanza de programación concurrente.
- Formar recursos humanos en los temas de Computación de Alto Desempeño, incluyendo Tesis de Postgrado a nivel de Especialización, Maestría y Doctorado.
SubProyecto CAD-P3. Procesamiento Distribuido: EDGE, FOG y CLOUD Computing. Aspectos de Eficiencia y Resiliencia
Director: Ing. Armando De Giusti
Codirectores: Dr. Diego Montezanti e Ing. Santiago Medina
Objetivos
- Analizar la integración de arquitecturas EDGE y FOG con el procesamiento en la nube (CLOUD).
- Estudiar aspectos de eficiencia en tiempo, consumo energético y comunicaciones en sistemas distribuidos que integran niveles de procesamiento.
- Desarrollar métodos/algoritmos orientados a Tolerancia a Fallos (Resiliencia) en este modelo de procesamiento distribuido, considerando procesadores y comunicaciones.
Líneas de Estudio/Investigación y Desarrollo
- Arquitecturas aplicables en Edge y Fog Computing. Modelos de referencia.
- Administración de recursos y datos en Edge y Fog computing. Integración de los mismos. Seguridad e integridad en los datos.
- Vinculación de las capas Edge y Fog con el Cloud. Servicios requeridos.
- Vinculación de las capas Edge y Fog con plataformas dedicadas al Internet de las Cosas (IoT).
- Estrategias de distribución óptima de procesamiento entre capas.
- Escalabilidad en aplicaciones Edge-Fog-Cloud.
- Migración de inteligencia al nivel Edge para reducir consumo y comunicaciones.
- Métricas de eficiencia considerando tiempo de respuesta / costo comunicaciones / consumo energético / resiliencia.
- Algoritmos colaborativos en tiempo real integrando las tres capas.
- Aplicaciones: sistemas inteligentes distribuidos para reducir el consumo energético.
Productos y/o Resultados finales esperados
- Investigación aplicada orientada a resolver aspectos críticos del Procesamiento Distribuido que integra capas EDGE, FOG y CLOUD.
- Integración de aplicaciones (en particular móviles) y relación entre las capas Edge y Fog.
- Análisis de estrategias para el control de fallos en las diferentes capas de la arquitectura.
- Aplicaciones: robots / drones colaborativos trabajando en comunicación con una capa Fog y con el Cloud.
- Formar recursos humanos en los temas de Computación Distribuida, incluyendo Tesis de Postgrado.
SubProyecto CAD-P4. Procesamiento para problemas de Tiempo Real / Robótica
Director: Dr. Fernando G. Tinetti
Codirector: Mg. Fernando Romero
Objetivos
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. En todos los casos, aprovechar/optimizar las características de hardware para optimizar y limitar tiempos de procesamiento y respuestas a eventos externos.
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, atentidiendo a eventos sincrónicos o periódicos y asincrónicos.
- 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 entre sí o con sistemas de cómputo más complejos como PC o interconectados con Internet.
- Estudio de posibles sistemas y protocolos de comunicaciones sean cableadas o inalámbricas ej: protocolos de MODBUS y CANBUS (cableados), o utilizando RF, Bluetooh o WiFi (inalámbricos).
- Diseño y construcción de vehículos no tripulados, estudiando sistemas de navegación, trayectorias y odometría.
Metas/ Productos y/o Resultados finales esperados
- Benchmarks 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-P5. Título: Modelos Matemáticos y Aritmética Computacional.
Directores: M.Sc. Oscar Bria y M.Eng. Javier Giacomantone
Objetivos
- Estudiar y evaluar modelos matemáticos, métodos numéricos y la implementación aritmética computacional que permita abordar problemas específicos en ingeniería.
- Investigar y desarrollar distinto tipo de modelos asociados al sistema o fenómeno estudiado.
- Determinar los métodos para evaluar el desempeño de los modelos y sus soluciones computacionales.
Líneas de Estudio/Investigación y Desarrollo
- Estudio de modelos determinísticos y estocásticos para procesamiento de imágenes: modelos de difusión anisotrópica, problemas inversos con baja SNR, procesamiento de imágenes ToF (Time of Flight).
- Diseño y evaluación de técnicas híbridas de vigilancia entre SSR (Secondary Surveillance Radar) y ADS-B (Automatic Dependent Surveillance-Broadcast).
- Estudio y análisis de modelos probabilísticos en reconocimiento estadístico de patrones: aprendizaje probabilístico, núcleos dispersos y datos fuertemente desbalanceados.
- Evaluación del monitoreo de la integridad de los sistemas de ayuda a la navegación aérea basados en sistemas GNSS (Global Navigation Satellite System).
Resultados finales esperados
- Contribuciones en el análisis y caracterización de modelos matemáticos y métodos computacionales aplicados a distintos fenómenos, dispositivos y procesos.
- Determinación de los límites operativos para obtener sistemas robustos y confiables, aún fuera del alcance de las hipótesis de diseño del modelo que los sustenta.
- Análisis del desempeño e integridad de los sistemas estudiados o adaptaciones desarrolladas.