Numerical simulations on heterogeneous systems: dynamic workload and power management
Roberto Ribeiro · Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT) · 2019
Numerical simula ons are among the most relevant and computa onally demanding applicaons used by scien sts and engineers.As accuracy requirements keep increasing so does the corresponding workload and, consequently, the demand for addi onal compu ng power.HPC systems are thus a fundamental tool to allow for a me effec ve execu on of such simula ons; performance maximiza on is therefore a per nent and crucial subject of research.Over the last decade HPC has undergone a major shi , resul ng on heterogeneous parallel compu ng systems, which integrate devices with different architectures, exposing different instruc on sets, programming and execu on models, and ul mately, delivering significantly different performances.This heterogeneity raises a variety of challenges to applica on developers, such as performance and code non-portability, performance imbalances and disjoint memory address spaces.These challenges not only widen the gap between peak and sustained performance, but also significantly reduce development produc vity.Addi onally, numerical applica ons o en exhibit dynamic workloads, with unpredictable computa onal requirements, which, together with associated code divergence and branching workflow, further aggravates the heterogeneity challenge -this is defined as the Two-fold Challenge.The increasing scale in HPC systems also leads to a fast growing power consump on, with power management solu ons being of crucial importance.The design of such solu ons becomes harder within the two-fold challenge context.This thesis addresses the Two-fold Challenge in the context of numerical simula ons and HPC systems, focusing on op mising sustained performance and power consump on.A variety of mechanisms is proposed and validated across different parallel compu ng paradigms.These mechanisms include a unified execu on and programming model, a transparent data management component and heterogeneityaware dynamic load balancing and power management systems.The contribu ons of this thesis are divided into three areas: efficient and effec ve applica on development and execu on on heterogeneous single-nodes with mul ple compu ng devices, load and performance imbalances in heterogeneous distributed systems and power-performance trade-offs in heterogeneous distributed systems.In order to foster the adop on of proposed mechanisms, some were designed and integrated into a widely used numerical simula on library -OpenFOAM.Experimental results assert the effec veness of the proposed approaches, resul ng on significant gains in performance and reduced power consump on in mul ple scenarios.vii viii Simulações Numéricas em Sistemas Heterogéneos: carga dinâmica e gestão de potência Resumo.Simulações numéricas são uma das mais importantes e computacionalmente exigentes aplicações usadas por cien stas e engenheiros.A carga computacional destas aplicações é proporcional aos requisitos de precisão da simulação, que por sua vez, têm aumentado significa vamente, resultando numa maior exigência a nível de poder computacional.Os sistemas de computação de alto desempenho (High Performance Compu ng (HPC)) são uma ferramenta fundamental, que permitem executar estas aplicações em tempo ú l.Obter o desempenho máximo destes sistemas é portanto uma área de inves gação de elevada importância e per nência.Na ul ma década, a computação de alto desempenho tem sido alvo de consideráveis mudanças, resultando em sistemas computacionais paralelos e heterogéneos.Estes sistemas são compostos por disposi vos com diferentes arquiteturas, instruc on sets e modelos de programação e execução, resultando em desempenhos significa vamente diferentes.Esta heterogeneidade levanta vários desafios, nomeadamente, código da aplicação e desempenho não portáveis entre disposi vos, diferenças de desempenho e espaços de endereçamento de memória disjuntos.Estes desafios, não só aumentam a diferença entre o pico de desempenho e o desempenho ob do, mas também reduzem significa vamente a produ vidade.Mais ainda, as aplicações numéricas exibem, frequentemente, cargas dinâmicas, cujos requisitos computacionais são imprevisíveis.Este dinamismo, combinado com a divergência do código e com o controlo de fluxo condicional, agrava as complexidades associadas à heterogeneidade do sistema, sendo referido como Two-fold Challenge.O progressivo aumento da dimensão dos sistemas HPC tem também, como consequência, um rápido aumento do consumo de potência.Sistemas de gestão de potência são portanto de extrema importância, no entanto, o desenvolvimento destes sistemas torna-se complexo perante o Two-fold Challenge Esta tese aborda o Two-fold Challenge no contexto de simulações numéricas e sistemas HPC, focando-se na o mização do desempenho e potência consumida.Vários mecanismos são propostos e validados em diferentes paradigmas de computação paralela.Nomeadamente, modelos unificados de execução e programação, sistemas transparentes de gestão de dados e sistemas de balanceamento de carga e gestão de energia baseados na heterogeneidade do sistema.As contribuições desta tese são divididas em três áreas: desenvolvimento e execução eficiente de aplicações em sistemas heterogéneos com um único nó e múl plos disposi vos, desbalanceamento de carga computacional e desempenho em sistemas heterogéneos distribuídos e compromissos entre desempenho e potência consumida em sistemas heterogéneos distribuídos.De forma a promover o uso dos mecanismos propostos, parte destes foram desenvolvidos e integrados numa conceituada biblioteca de simulações numéricas -OpenFOAM.Resultados experimentais validam a eficácia dos mecanismos propostos, resultando em ganhos significa vos de desempenho e redução de potência consumida em múl plos cenários.