COMPUTACIÓN PARALELA Y DISTRIBUÍDA

Compiladores para arquitecturas paralelas:

Xeración automática de código paralelo: Esta liña de investigación direcciona a paralelización automática de programas secuenciais. Afróntase o desenrolo de técnicas de compilación para convertir un programa secuencial nun programa concurrente executable en arquitecturas multi-core e many-core. En concreto, estamos a traballar no desenrolo de técnicas de análise avanzado de programas para descubrir o paralelismo implícito nos programas secuenciais e o desenrolo de técnicas de transformación de código orientadas a construcción da versión paralela máis eficiente dun programa secuencial.

Optimización iterativa: O Noso grupo está a traballar na optimización iterativa de códigos sobre arquitecturas heteroxéneas que inclúen GPUs e/ou CPUs. A optimización iterativa permite xerar un enorme número de versións optimizadas da mesma aplicación e selecciona a versión máis rápida para unha arquitectura dada por medio de modelos analíticos, heurísticas ou a execución do código real.

Linguaxes e librerías para computación paralela:

O Noso grupo deseña e elabora ferramentas (Servet) e librerías (HTA, UPCBLAS) para mellorar a productividade dos programadores, en especial no desenrolo de aplicacións paralelas. Servet é un conxunto de benchmarks portables utilizados para medir os parámetros hardware máis representativos que permitan a optimización automática de aplicacións en clusters de multicores. Hierarchically Tiled Array ou HTA é unha librería deseñada para facilitar a escritura de programas baseados en bloques en linguaxes orientados a obxetos. O seu obxetivo é mellorar a localidade dos acesos a memoria e facilitar ao programador a explotación do paralelismo de datos. UPCBLAS é unha librería numérica paralela para computacións con matrices densas empregando a linguaxe de programación PGAS (Partitioned Global Address Space) UPC (Unified Parallel C). A popularidade das linguaxes PGAS incrementouse nos últimos anos grazas a súa alta programabilidade e rendemento, especialmente en arquitecturas xerárquicas como os clusters de multicores.

As nosas propostas, que cubren sistemas de memoria distribuida, compartida e híbrida, dan lugar a códigos mellor estructurados, máis lexibles e fáciles de manter que aqueles construidos coas ferramentas estándar, mentras que o rendemento é moi similar. Grande parte desta investigación desenrolouse en colaboración con universidades líderes como a University of Illinois at Urbana-Champaign ou empresas de primeriro nivel como HP ou IBM.

Tolerancia a erros e maleabilidade de aplicacións paralelas:

Os sistemas empregados para a execución de aplicacións paralelas de longa duración deberían proporcionar algún mecanismo de tolerancia a erros xa que a probabilidade de erro aumenta co tempo de execución e o número de nodos. O checkpointing e a posterior recuperación é unha das técnicas máis populares para proporcionar soporte de tolerancia a erros. Nós desenrolamos CPPC (ComPiler for Portable Checkpointing), unha ferramenta de tolerancia a erros a nivel de aplicación para aplicacións paralelas de paso de mensaxes deseñada con especial énfase na portabilidade.

Actualmente estamos explorando a posibilidade de implementar maleabilidade nas aplicaciones MPI como unha extensión da ferramenta CPPC, de forma que a aproximación final permita a reconfiguración transparente durante a execución da aplicación.

Computación de propósito xeral sobre GPUs:

Neste eido estáse a traballar no desenrolo dunha ferramenta que permita a implementación automática ou semiautomática dun algoritmo sobre unha GPU. Outra meta desta liña de investigación é a implementación de bibliotecas de funcións para sistemas multi-GPU que faciliten o desenrolo de aplicacións que necesiten unha comunicación eficiente entre as diferentes GPUS. En ambos casos plantéxase que o traballo desenrolado sexa útil para as principais linguaxes de programación empregadas neste tipo de sistemas, como OpenCl e Cuda.

CLUSTER PLUTÓN

COMUNICACIONES JAVA

Comunicacións Java de alta velocidade:

Estamos a traballar en middleware de comunicaciones de baixa latencia en Java para redes de altas prestacións tales como 10/40 Gigabit Ethernet e InfiniBand. O middleware desenrolado soporta comunicacións mediante paso de mensaxes (Fast MPJ), ademáis de permitir a aceleración das comunicacións de forma transparente para o usuario (Java Fast Sockets). O seu principal obxetivo é a reducción do tempo de resposta de aplicacións paralelas e distribuidas en Java, algo estratéxico en numerosos ámbitos coma o trading financeiro.

GRÁFICOS POR COMPUTADOR

Gráficos por computador e visualización científica:

O principal obxetivo desta liña de investigación é o procesamento eficiente de diversas formas de representación de modelos gráficos complexos, como subdivisión de superficies, superficies paramétricas ou representación híbrida de terreos. Facemos especial énfase na procura dun procesamento interactivo en tempo real, para o que se plantexa a explotación eficiente do hardware presente nos sistemas actuais: CPUs multinúcleo e GPUs (Graphics Processing Unit).

Outro aspecto que se plantexa dentro desta liña de investigación é a representación de imáxes sintéticas con un alto grado de realismo, tanto a través de métodos de iluminación realistas como do procesamento correcto de transparencias e texturas.

MICROPROCESADORES DE ALTAS PRESTACIÓNS

Deseño de microarquitecturas de computadores:

O GAC participou no desenrolo de SESC, un simulador microarquitectural de investigación empregado en todo o mundo. O grupo tamén innova neste campo propoñendo novas arquitecturas e políticas de xestión da xerarquía de memoria co obxetivo de reducir tanto os tempos de execución como a enerxía consumida pola ejecución de aplicacións en sistemas de un solo procesador e multicores.

Deseño de aceleradores hardware para multimedia e computación eficiente:

En términos de eficiencia enerxética, a diferencia entre microprocesadores e circuitos de aplicación específica medra de forma sostida. A aceleración hardware é, por tanto, unha ferramenta poderosa para reducir costes e mellorar no respeto ao medio ambiente.

Mentras que os costes de deseño e manufacturar circuitos de aplicación específica é moi elevado, existen varias alternativas dispoñibles, tales como FPGAs, ASICs estructurados ou ASIPs. Na meirande parte, as novas plataformas proveñen do mundo dos sistemas empotrados, onde xa aportaron velocidade e baixo consumo.

Esta liña de investigación explora o potencial de mapear as tarefas máis comúns sobre aceleradores hardware co propósito de mellorar a eficiencia enerxética, aumentar a velocidade e reducir a cantidad de hardware necesario. Os principais escenarios que se contemplan son a computación de altas prestacións, Software-as-a-Service e Web 2.0, onde un grande número de servidores poden compartir un número reducido de aceleradores que se fan cargo das tarefas de máis peso.

Modelado e predicción do rendemento da xerarquía de memoria:

O noso grupo levou a cabo unha ferramenta analítica que permite predecir de forma precisa o comportamento caché. A nosa plataforma, que permite obter prediccións en menos dun segundo, solo require como entrada o código fonte e a configuración da xerarquía de memoria. A nosa aproximación é totalmente automatizable e pode ser empregada nun compilador. A nosa ferramenta foi empregada con éxito para guiar optimizacións de compilación complexas tales como a selección do tamaño de bloque óptimo así como para predecir o peor tempo de execución en sistemas en tempo real.

ROBÓTICA MÓVIL

Un dos actuais desafíos en robótica é a integración de robots nos ambientes cotidianos. Para elo é preciso levar a cabo un sistema de desplegue rápido e sinxelo que permita aos robots sair dos centros de investigación e estar fora da continua supervisión de expertos en robótica. Os robots deberían poder ser instalados e postos en operación en curtos periodos de tempo.

Nesta liña, os nosos principais obxetivos son: evitar completamente predefinir o control dos robots e aprender este control a partir da interacción co entorno y da observación dos seres humanos; identificar e localizar persoas e robots en interiores; e interactuar coa xente de modo amizable e natural.

Outra importante cuestión aberta é permitir que os robots se movan autónomamente en entornos non estructurados, complexos e dinámicos. Para elo é preciso levar a cabo eficientes sistemas de percepción 3D, métodos de representación do entorno e fusión de datos sensoriais. Finalmente, os robots teñen que mapear e localizarse a si mesmos no seu entorno. Estamos desenrolando algoritmos para localizar o robot a partir de mapas coñecidos e para simultáneamente mapear e localizar o robot no entorno. Coma sensores principais estamos empregando cámaras de omnivisión, cámaras estéreo, sensores Kinect e láseres 3D.

SISTEMAS DE INFORMACIÓN XEOGRÁFICA

O Grupo de Arquitectura de Computadores ten 15 anos de experiencia no campo dos Sistemas de Información Xeográfica (SIX). Ten desenvolvido diversos proxectos en ámbitos como as infraestruturas, a ordenación do solo, a concentración parcelaria, a información meteorolóxica, o aproveitamento de terras e a xestión forestal. Os tipos de desenvolvemento que se realizan inclúen sistemas de información SIX-web, algoritmos de optimización de altas prestacións para a resolución de problemas con compoñentes espaciais, aplicacións para dispositivos móbiles, servizos web, módulos para aplicacións de escritorio, e visualización de conxuntos masivos de datos xeorreferenciados. Na meirande parte dos proxectos que se levan a cabo prímase o emprego de software libre e de estándares SIX, contribuíndo ao desenvolvemento das chamadas Infraestruturas de Datos Espaciais.

Os principais campos de aplicación das investigacións e traballos que se realizan son a ordenación territorial e o desenvolvemento rural. Cabe destacar a contribución realizada nestes campos á innovación dentro da administración pública. Mediante diversos contratos con distintas administracións desenvolvéronse sistemas que, ademais de mellorar a xestión, fomentan e facilitan a participación pública, a transparencia e o goberno electrónico.

Outra liña de traballo dentro deste campo é a aplicación de técnicas de computación de altas prestacións aos SIX, como por exemplo a paralelización de algoritmos para a elaboración de plans urbanísticos sobre sistemas multinúcleo e clústers. Esta é unha liña na que se pretende afondar. Entre os plans de traballo futuro atópase a aplicación deste tipo de técnicas a algoritmos de teledetección, os cales tamén presentan importantes custos computacionais.

Entre as ferramentas desenvolvidas ou nas que colabora pódense citar SITEGAL, Sistema de Información de Terras de Galicia, para a xestión do Banco de Terras, MeteoSIX mobile, aplicación móbil para Android e iPhone que ofrece a información de predición numérica de Meteogalicia, MeteoRoute, aplicación para Android e iOS que ofrece a predición meteorolóxica sobre rutas, a API do MeteoSIX, o visor xeográfico do Observatorio Raia e SIUXFor, sistema para a creación das antigas Unidades de Xestión Forestal. O GAC tamén ten desenvolvido ferramentas experimentais para concentración parcelaria, permuta de parcelas entre particulares, apoio na elaboración de plans de ordenación municipal e visualización de datos tridimensionais, por exemplo datos de voos LiDAR.