Escalonador adaptativo para laços paralelos em processadores multinúcleo assimétricos
Visualizar/ Abrir
Data
2020-03-30Primeiro membro da banca
Charão, Andrea Schwertner
Segundo membro da banca
Queiroz, Leonardo Fialho de
Metadata
Mostrar registro completoResumo
A crescente demanda por potência computacional e eficiência energética em computação
móvel desencadeou o desenvolvimento de processadores heterogêneos com núcleos
especializados para diferentes tipos de tarefas computacionais, como processadores ARM
big.LITTLE, que tem núcleos distintos que aliam desempenho a baixo consumo energético.
Tal diferença na composição dos núcleos nesse tipo de processadores acaba induzindo
uma assimetria no desempenho computacional desses sistemas, tornando complicada a
tarefa de prever o comportamento de aplicações paralelas com relação a desempenho
quando usados todos os seus núcleos. Essa assimetria pode ser percebida em aplicações
que façam uso de laços paralelos, um recurso de programação paralela que permite dividir
a carga de trabalho de uma rotina iterativa entre os núcleos presentes em um processador.
Escalonadores de laços paralelos que não são projetados de modo a evitar a perda
de desempenho em processadores multinúcleo assimétricos (AMPs) podem comprometer
a implementação de soluções de software construídas para esse tipo de arquitetura.
Esta dissertação apresenta a proposta de implementação de um escalonador para laços
paralelos que utiliza um algoritmo adaptativo para distribuição da carga de trabalho entre
as threads, visando extrações de desempenho mais eficientes em AMPs. O escalonador
utiliza-se de roubo de trabalho paralelo e extração de trabalho sequencial o mais livre de
travas quanto for possível para fazer frente às demais soluções existentes. Sua implementação
foi realizada na linguagem C++, com possibilidade de portabilidade para a linguagem
C. Com a finalidade de avaliar o desempenho da solução, uma análise foi realizada sobre o
conjunto de benchmarks NAS e quatro aplicações científicas distintas bem consolidadas na
literatura relacionada, sobre dois ambientes assimétricos embarcados reais, contra duas
soluções existentes (OpenMP e Intel TBB). A análise mostra que o escalonador consegue
extrair mais desempenho em determinados casos e se aproxima muito das melhores soluções
na maioria dos casos restantes, com potencial de escalabilidade em teoria maior para
casos onde o sobrecusto de escalonamento se torna um empecilho nas demais soluções.
Coleções
Os arquivos de licença a seguir estão associados a este item: