Hybrid Code Placement for Heterogeneous Architectures

Carregando...
Imagem de Miniatura

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

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

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por