Hybrid Code Placement for Heterogeneous Architectures
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Dissertação de mestrado
Título alternativo
Primeiro orientador
Membros da banca
Adriano Alonso Veloso
Resumo
Arquiteturas de computadores modernas estão se tornando a cada dia mais heterogêneas. Essa heterogenidade emerge da possibilidade de combinação, dentro de um mesmo dispositivo, de diferentes tipos de processadores. Escolher a melhor configuração desses processadores é uma tarefa difícil, porque programas, mesmo em tamanhos moderados, apresentam diferentes fases durante a sua execução. Essas fases se beneficiam de forma diferente do dispositivo. Pesquisadores vêm utilizando diversas técnicas para lidar com o problema, mas duas delas se destacam: a dinâmica e a estatica. A primeira, é implementada em tempo de execução, seja por um sistema operacional ou um escalonador. A última, é implementada em tempo de compilação. Nessa dissertação, investigaremos a mescla das duas abordagens de modo a conseguir uma sinergia a qual não seria obtida por cada uma das técnicas individualmente. Nesse novo esquema, nós usamos uma ferramenta de instrumentação que cria programas que se migram sozinhos usando ambas informações retiradas do código fonte e informações coletadas em tempo de execução. A ferramenta de instrumentação foi implementada na infraestrutura de compilação LLVM. Para demonstrar que nossas ideias são úteis e efetivas, essa dissertação de mestrado compara esse novo gerador decódigo, chamado Astro, com abordagens no estado-da-arte, o utilizando para reduzir o consumo de energia (mantendo restrições de performance) em conjuntos de aplicações entre diferentes placas embarcadas.
Abstract
Modern computer architectures are becoming each day more heterogeneous. Choosing the best hardware configuration for a given program is difficult, because programs, even of moderate size, go through many phases during execution. These phases benefit differently from the same hardware configuration. Researchers have used a plethora of techniques to deal with this problem, but two techniques seem to standout: dynamically or statically. The former is implemented at the runtime level, be it through an operating system or a scheduler/middleware. The latter is implemented at compilation level. In this dissertation, we will investigate the mixing of both approaches achieving a synergy that, otherwise, could not be attained by each technique individually. To demonstrate that our ideas are useful and effective, we compare this new code generator, called Astro, with state of the art approaches, which were used to reduce the energy consumption, maintaining performance constraints.
Assunto
Compiladores (Computadores), Computação, Arquitetura de computador
Palavras-chave
non-assisted instrumentation, LLVM, energy-efficient systems, semi-supervised learning, adaptive programs, heterogeneous architectures, Compilers, reinforcement learning