Scheduling in heterogeneous architectures via multivariate linear regression on function inputs

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

Escalonamento de código em arquiteturas heterogêneas via regressão linear multivariável sobre parâmetros de funções

Membros da banca

Daniel Fernandes Macedo
Rupesh Nasre

Resumo

Heterogeneous multicore systems, such as the ARM big.LITTLE, feature a single instruction set with different types of processors to conciliate high performance with low energy consumption. An important question concerning such systems is how to determine the best hardware configuration for a particular program execution. The hardware configuration consists of the type and the frequency of the processors that the program can use at runtime. Current solutions are either completely dynamic, e.g., based on in-vivo profiling, or completely static, based on supervised machine learning approaches. Whereas the former solution might bring unwanted runtime overhead, the latter fails to account for the diversity in program inputs. In this dissertation, we show how to circumvent this last shortcoming. To this end, we provide a suite of code transformation techniques that perform numeric regression on function arguments, which can have either scalar or aggregate types, so as to match parameters with ideal hardware configurations at runtime. We have designed and implemented our approach on top of the Soot compilation infrastructure, and have applied it onto programs available in the PBBS and Renaissance suites. We show that we can consistently predict the best configuration for a large class of programs running on an Odroid XU4 board, outperforming other techniques such as ARM’s GTS or CHOAMP, a recently released static program scheduler.

Abstract

Sistemas heterogêneos multinúcleo combinam, sob um mesmo conjunto de instruções, diferentes tipos de processadores com o objetivo de conciliar alto desempenho com baixo consumo de energia. Uma pergunta importante sobre esses sistemas é como determinar a melhor configuração de hardware para diferentes execuções de programas. Uma configuração de hardware consiste no tipo e na frequência dos processadores que o programa pode usar em tempo de execução. As soluções atuais são completamente dinâmicas, por exemplo, baseadas em perfilamento in vivo ou completamente estáticas, com base em abordagens supervisionadas de aprendizado de máquina. Enquanto a abordagem dinâmica pode gerar sobrecarga indesejada no tempo de execução, a estática falha em não considerar a diversidade de entradas para os programas. Nesta dissertação, mostramos como contornar essa limitação de abordagens estáticas. Para esse fim, fornecemos um conjunto de técnicas de transformação de código que realizam regressão numérica em argumentos de funções, que podem ter tipos escalares ou abstratos, de modo a associar parâmetros com configurações ideais de hardware em tempo de execução. Nós projetamos e implementamos nossa abordagem em uma infraestrutura de compilação conhecida como Soot e a avaliamos em programas reais dos conjuntos PBBS e Renaissance. Mostramos que podemos prever consistentemente a melhor configuração para uma classe grande de programas executando em uma placa Odroid XU4, superando outras técnicas como o GTS da ARM ou o CHOAMP, um escalonador estático lançado recentemente.

Assunto

Computação – Teses, Compiladores (Computadores) – Teses, Escalonamento de processos – Teses, Otimização combinatoria – Teses, Análise de regressão – Teses

Palavras-chave

Regression, Function, Heterogeneous Architecture, Compilers, big.LITTLE

Citação

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por

Licença Creative Commons

Exceto quando indicado de outra forma, a licença deste item é descrita como Acesso Aberto