Linhas de Pesquisa e Desenvolvimento
1. Modelagem e Auto-Ajuste do desempenho da The Machine
Nessa linha de pesquisa, iremos prover um modelo para capturar as características da The Machine, focando nos efeitos que a memória universal e a rede de fótons provocam na execução de aplicações. Investigaremos também maneiras para automaticamente encontrar melhores parâmetros de compilação para ajustar (“tune”) as aplicações à The Machine.
A ideia principal é derivar um modelo teórico no qual diversas possibilidades de algoritmos de escalonamento ou até resultados de complexidade possam ser investigados.
Nós temos trabalhado em técnicas e arcabouços para auto-ajuste (“auto-tuning”) empírico, como opentuner.org, para otimizar a busca por escolhas algorítmicas e combinações que podem resolver um dado problema. Os espaços de busca gerados por este tipo de problema são enormes.
Motivados por avanços recentes em arquiteturas de computadores e sua grande variedade, propomos aplicar técnicas de auto-ajuste empíricas para os problemas de paralelização automática e otimizações de compiladores em diferentes arquiteturas de processador. Também estamos interessados em fazer isto de modo simulado, possivelmente em um ambiente de Computação em Nuvem, já que não podemos predizer a disponibilidade inicial de muitas The Machine.
1.1 Membros e Pesquisa
Pedro Bruel
O melhor aproveitamento da crescente heterogeneidade de modelos de programação e arquiteturas para a computação paralela e distribuída é a principal motivação para a linha de pesquisa na área de autoajuste de desempenho para a The Machine. O trabalho nessa linha envolve o estudo e a aplicação de heurísticas de busca na otimização de programas e configurações de aceleradores de hardware com potencial para compor a The Machine.
Pedro aplica heurísticas de busca e desenvolve ferramentas para o autoajuste de programas e configurações em CPUs, GPUs e FPGAs. Estuda a aplicabilidade e o desempenho de ferramentas existentes, como o arcabouço OpenTuner (http://opentuner.org/), a diferentes domínios e arquiteturas para Computação de Alto Desempenho. Pedro também desenvolve extensões do OpenTuner para execução em ambientes de nuvem, e uma biblioteca para autoajuste na linguagem Julia (https://github.com/phrb/StochasticSearch.jl).
2. Modelagem e Simulação de Cidades Inteligentes
Em resumo, esta linha de pesquisa tem como objetivos de longo prazo os seguintes itens:
· Elucidar requisitos para cidades inteligentes
· Modelar cenários concretos de aplicação (diferentes classes de aplicações e diferentes situações nas cidades)
· Desenvolver um simulador (software livre) para cidades inteligentes
· Propor ferramentas avançadas de engenharia de software para o desenvolvimento de aplicações de cidades inteligentes
· Integrar ferramentas de engenharia de software e o simulador em um único ambiente
· Conceber e desenvolver uma App Store para a The Machine
2.1 Membros e Pesquisa
Arthur Del Esposte
Arthur realiza pesquisas sobre as principais questões técnicas relacionadas ao desenvolvimento e implantação de plataformas de Cidades Inteligentes. A primeira parte da pesquisa envolve avaliar e comparar as plataformas de Cidades Inteligentes existentes a partir de simulações e estudos técnicos. A parte complementar da pesquisa tem como objetivo desenvolver um protótipo de plataforma para Cidades Inteligentes escalável e integrada para abordar as principais questões técnicas abertas na área. A plataforma desenvolvida é baseada em uma arquitetura de microservices, com código aberto disponível em: https://gitlab.com/smart-city-software-platform.
Plataformas de Cidades Inteligentes são aplicações com potencial de se beneficiar das inovações arquiteturais da TheMachine para atender aos principais requisitos de escalabilidade, eficiência e gerenciamento de dados. Em particular, a linha de pesquisa desenvolvida por Arthur visa identificar as evoluções técnicas necessárias que devem ser consideradas nessas plataformas para que se beneficiem dos avanços providos pela TheMachine. Alinhado com os objetivos do projeto e de pesquisa, a plataforma de Cidades Inteligentes em desenvolvimento deverá ser continuamente avaliada a partir de experimentos com cenários realistas de Cidades Inteligentes, apoiada principalmente através dos estudos com Simuladores de Cidades Inteligentes.
Eduardo Santana
Reponsável pelo desenvolvimento do simulador de cidades inteligentes, que tem o objetivo de auxiliar testes de aplicações e plataformas de cidades inteligentes e também ajudar administrações municipais na tomada de decisões sobre a infraestrutura necessária para melhorar diversos aspectos da cidade como quais as melhores posições para a rede de sensores da cidade, quais os efeitos da utilização de um semáforo inteligente e qual o impacto na mudança de uma linha de ônibus.
O simulador é importante no projeto The Machine por ser uma aplicação que necessitará de um grande porder computacional, pois, para simular uma grande cidade, como São Paulo, será necessário simular milhares de atores como sensores, carros, pedestres e ônibus.
Rafael Aquino
Ferramentas de Big Data tem como principal objetivo realizar processamento em grande quantidade de dados, que não poderia ser realizada em um sistema comum. Esta pesquisa tem como objetivo comparar ferramentas de big data, levando em consideração o tempo de execução como principal parâmetro. Nossas principais escolhas são as ferramentas HPAT (High Performance Analytics Toolkit) e Spark, pois utilizam a memória RAM como principal escolha durante a sua execução e isto gera uma maior eficiência em suas execuções.
Nosso principal objetivo é encontrar qual a ferramenta que melhor se encaixa em um ambiente baseado em memória e quais as principais vantagens e desvantagens encontradas nas ferramentas. Com isso, podemos tentar prever qual das ferramentas se encaixaria melhor em um ambiente como a The Machine.
Rodrigo Tinini
Redes ópticas são uma tecnologia de transmissão de dados que permite que dados sejam enviados a altas velocidades e grandes taxas. Esta pesquisa tem como objetivo propor novos mecanismos na operação e gerenciamento de ambientes de redes ópticas em dois cenários diferentes: Infraestruturas tradicionais de redes ópticas, como no suporte a transmissão de dados entre longas distâncias e Interconexão Óptica entre processadores dentro de computadores (Optical Networks on-chip), provendo comunicação de alta velocidade entre centenas ou milhares de processadores em um único chip.
Nosso objetivo está focado na otimização da operação das redes ópticas considerando a crescente taxa de dados gerados nos dias atuais e em temas que constituem novas preocupações, como a economia no consumo de energia gerado pela utilização de tais redes. Em específico, nosso foco está na proposta de novos algoritmos de Roteamento e Alocação de Comprimento de Onda (Routing and Wavelength Assingment - RWA) e Roteamento, Modulação e Alocação de Espectro (Routing, Modulation and Spectrum Allocation - RMSA) para redes WDM e Redes Ópticas Elásticas, respectivamente, além de modelos de otimização baseados em Programação Linear Inteira (Integer Linear Programming).