Otimização do tempo de vida de processadores multicore homogêneos através da variação do grau de TLP e das políticas de alocação de threads - Medeiros, Thiarles Soares (2021)
O avanço na tecnologia dos transistores tem permitido o aumento no número de cores em um único chip. Isso, por sua vez, possibilita o desenvolvimento de sistemas de alto desempenho com melhores capacidades para explorar o paralelismo no nível de threads (TLP). No entanto, isso também leva a problemas relacionados à temperatura desses sistemas. Alcançar altas temperaturas acelera o processo de envelhecimento dos componentes de hardware influenciando suas causas (por exemplo, instabilidade de temperatura de polarização negativa - NBTI). Adicionalmente, este efeito não depende apenas do número de cores, mas também da distância entre eles e seu uso. Além disso, as aplicações paralelas apresentam vários padrões, como irregularidade, cálculos desequilibrados ou altas taxas de comunicação. Essas diferentes características podem acentuar esses efeitos adversos. Com etapa preliminar desta dissertação, realizamos a execução de treze benchmarks bem conhecidos em três arquiteturas multicore diferentes para avaliar diferentes configurações de TLP e políticas de placement e estratégias de afinidade de threads implementadas em OpenMP. Os resultados demonstraram que não há uma configuração única que forneça o melhor NBTI para todas as aplicações. Diante deste cenário, esta dissertação propõe AATS, uma metodologia para reduzir o aging através da combinação de exploração de TLP e estratégia de alocação de threads. AATS foi empregado de duas maneiras, uma que atua de modo offline executando externamente à aplicação e uma online que faz a otimização em tempo de execução. AATS offline apresentou resultados efetivos na redução do aging com uma distância de apenas 1.02 da melhor solução encontrada na exploração de espaço de projeto para a arquitetura AMD de 16 cores. Ainda, é capaz de encontrar uma solução em um grande espaço de exploração avaliando um número reduzido de configurações, como por exemplo na arquitetura IBM de 160 cores na qual foram avaliadas, na média, apenas 1,9% das configurações possíveis. No caso do AATS online foi possível observar que os ajustes dinâmicos durante a execução da aplicação não possibilitaram redução do aging, principalmente pelo aumento do tempo de execução. A justificativa para tal está no aumento da quantidade de acessos à memória devido à variação das políticas de alocação, as quais requerem atualização dos dados que estão nas memórias cache quando as threads são realocadas. Palavras-chave: Otimização. Envelhecimento. Afinidade de threads. Paralelismo a nível de threads. OpenMP.