(2015~) Efficient Smart Memories for Data Intensive Computing
O processamento próximo aos dados está se tornando uma técnica promissora para reduzir as transferências de dados. Adicionar recursos de processamento dentro ou perto da DRAM tem um alto potencial para melhorias de desempenho e eficiência de energia, evitando enormes e ineficientes transferências de dados. O objetivo principal deste projeto é fornecer novas ideias de software e hardware para o contexto de processamento em memória (PIM), melhorando assim o tempo de execução e o consumo de energia.
Este projeto recebeu um aporte financeiro do Instituto Serrapilheira de R$ 100.000 para o primeiro ano (2018) e recebemos um segundo aporte de recursos no valor aproximado de R$ 1 Milhão para a segunda fase nos próximos 3 ~ 5 anos (2019 ~ 2024).
(2016~) Migrating Database Operations to In-Memory Processing
Uma grande carga do tempo de processamento de bancos de dados com predominância de leituras consiste em mover dados pela hierarquia de memória, em vez de processar dados no processador. A movimentação de dados é penalizada pela lacuna de desempenho entre o processador e a memória, que é o conhecido problema chamado de memory-wall. O surgimento de memórias inteligentes, como o novo Hybrid Memory Cube (HMC), permite mitigar o problema da parede de memória executando instruções em chips lógicos integrados na base de uma pilha de DRAMs. Essas memórias podem permitir não apenas bancos de dados na memória, mas também apresentam o potencial de computação na memória de operações de banco de dados.
(2016~) Thread and data placement for HPC
Muitos aplicativos de computação de alto desempenho apresentam diferentes fases durante sua execução. No entanto, as técnicas de escolha de afinidade de thread e processo geralmente fornecem apenas métodos estáticos para melhorar a localidade de dados e das threads. Da mesma forma, data centers de computação em nuvem podem apresentar variações em termos de latência ao longo do tempo de execução de aplicativos. O objetivo principal deste projeto é propor técnicas que forneçam o melhor mapeamento estático e dinâmico de aplicações paralelas considerando o uso de seus recursos.
(2016~) Expansible Network-on-Chip
A interconexão tem grande importância para fornecer uma comunicação de alta largura de banda entre sistemas paralelos. A Network-on-Chip (NoC) é a opção atual de interconexão intra-chip. Porém, a NoC é formada por estruturas estáticas dificilmente permitindo a inclusão ou remoção de elementos. Explorando esse problema, surge um novo paradigma, o Expandable Network-on-Chip (ENoC). Ele permite a interconexão instantânea de diferentes NoCs ou chips unificando-os. As comunicações entre chips serão assim realizadas em uma largura de banda alta em um canal sem fio de alcance muito limitado. No entanto, conectar diferentes sistemas de diferentes fabricantes levanta enormes problemas de segurança.
(2012~) Cache line usage predictor
Nos últimos anos, a redução constante no tamanho do transistor permitiu às memórias cache um grande crescimento em capacidade. Hoje em dia, as memórias cache ocupam até 50% da área de chip dos processadores modernos, esse aumento também foi impulsionado pela memory-wall e problemas de dark-silicon. No entanto, esse aumento de capacidade influencia o consumo de energia para manter os dados e operar sobre essas grandes memórias cache. Isso torna a energia consumida pelos caches uma importante área de estudo. Existem muitos métodos para economizar a energia consumida por esses caches.