Scheduling in heterogeneous architectures via multivariate linear regression on function inputs
Carregando...
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
Escalonamento de código em arquiteturas heterogêneas via regressão linear multivariável sobre parâmetros de funções
Primeiro orientador
Membros da banca
Daniel Fernandes Macedo
Rupesh Nasre
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
Departamento
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
