• Home
  • Química
  • Astronomia
  • Energia
  • Natureza
  • Biologia
  • Física
  • Eletrônicos
  • Preparando aplicativos científicos para computação exascale

    Os computadores Exascale serão usados ​​para resolver problemas em uma ampla gama de aplicações científicas, inclusive para simular as operações de vida de pequenos reatores nucleares modulares (à esquerda) e compreender a relação complexa entre os processos de impressão 3-D e as propriedades do material (à direita). Crédito:Oak Ridge National Lab

    Espera-se que os computadores Exascale sejam lançados em breve, incluindo Frontier no Departamento de Energia dos EUA (DOE) Oak Ridge Leadership Computing Facility (OLCF) e Aurora no Argonne Leadership Computing Facility (ALCF), ambos DOE Office of Science User Facilities, em 2021. Esses sistemas de computação de próxima geração são projetados para superar a velocidade dos supercomputadores mais poderosos de hoje em cinco a dez vezes. Esse aumento de desempenho permitirá que os cientistas lidem com problemas que, de outra forma, não têm solução em termos de complexidade e tempo de computação.

    Mas atingir esse alto nível de desempenho exigirá adaptações de software. Por exemplo, OpenMP - as interfaces de programação de aplicativos padrão para computação paralela de memória compartilhada, ou o uso de vários processadores para completar uma tarefa - terá que evoluir para suportar a disposição de diferentes memórias, aceleradores de hardware, como unidades de processamento gráfico (GPUs), várias arquiteturas de computação exascale, e os padrões mais recentes para C ++ e outras linguagens de programação.

    Evoluindo OpenMP para exascale com o projeto SOLLVE

    Em setembro de 2016, o DOE Exascale Computing Project (ECP) financiou um projeto de desenvolvimento de software chamado SOLLVE (para escalonamento de OpenMP via máquina virtual de baixo nível para desempenho e portabilidade Exascale) para ajudar nessa transição. A equipe do projeto SOLLVE - liderada pelo Laboratório Nacional Brookhaven do DOE e consistindo de colaboradores de Argonne do DOE, Lawrence Livermore, e Oak Ridge National Labs, e Georgia Tech - vem projetando, implementando, e padronizar as principais funcionalidades do OpenMP que os desenvolvedores de aplicativos ECP identificaram como importantes.

    Impulsionado pela SOLLVE e patrocinado pela ECP, A Computational Science Initiative (CSI) do Brookhaven Lab sediou um hackathon OpenMP de quatro dias, de 29 de abril a 2 de maio, organizado em conjunto com Oak Ridge e IBM. O hackathon OpenMP é o mais recente de uma série de hackathons oferecidos pela CSI, incluindo aqueles com foco em GPUs NVIDIA e processadores Intel Xeon Phi de vários núcleos.

    "O OpenMP está passando por mudanças substanciais para atender aos requisitos dos próximos sistemas de computação exascale, "disse o coordenador do evento local Martin Kong, um cientista computacional no Grupo de Ciência da Computação e Matemática da CSI e o representante do Brookhaven Lab no OpenMP Architecture Review Board, que supervisiona a especificação do padrão OpenMP. "Portar códigos científicos para o novo hardware e arquiteturas exascale será um grande desafio. A principal motivação deste hackathon é o envolvimento do aplicativo - para interagir mais profundamente com diferentes usuários, especialmente aqueles dos laboratórios DOE, e informá-los sobre as mudanças que devem esperar no OpenMP e como essas mudanças podem beneficiar suas aplicações científicas. "

    O supercomputador Summit. Crédito:Oak Ridge National Lab

    Estabelecendo a base para portabilidade de desempenho de aplicativos

    Cientistas computacionais e de domínio, desenvolvedores de código, e especialistas em hardware de computação de Brookhaven, Argonne, Lawrence Berkeley, Lawrence Livermore, Oak Ridge, Georgia Tech, Indiana University, Rice University, Universidade de Illinois em Urbana-Champaign, IBM, e a Administração Nacional de Aeronáutica e Espaço (NASA) participaram do hackathon. As oito equipes foram orientadas pelo laboratório nacional, universidade, e mentores da indústria que foram selecionados com base em sua vasta experiência em programação de GPUs, participando do OpenMP Language Committee, e conduzir pesquisa e desenvolvimento em ferramentas que suportam as especificações OpenMP mais recentes.

    Durante a semana, as equipes trabalharam para portar seus aplicativos científicos de unidades de processamento central (CPU) para GPUs e otimizá-los usando a versão mais recente do OpenMP (4.5+). Entre as sessões de hacking, as equipes tiveram tutoriais sobre vários recursos OpenMP avançados, incluindo a programação do acelerador, ferramentas de perfil para avaliar o desempenho, e estratégias de otimização de aplicativos.

    Algumas equipes também usaram as funcionalidades OpenMP mais recentes para programar CPUs IBM Power9 aceleradas com GPUs NDIVIA. O supercomputador mais rápido do mundo - o supercomputador Summit da OLCF - é baseado nesta nova arquitetura, com mais de 9.000 CPUs IBM Power9 e mais de 27, 000 GPUs NVIDIA.

    Dando passos em direção à exascale

    Os aplicativos das equipes abrangeram muitas áreas, incluindo física nuclear e de alta energia, lasers e ótica, Ciência de materiais, sistemas autônomos, e mecânica dos fluidos.

    Um esquema da rede para cálculos cromodinâmicos quânticos. Os pontos de interseção na grade representam valores de quark, enquanto as linhas entre eles representam os valores do glúon. Crédito:Laboratório Nacional de Brookhaven

    O participante David Wagner da Incubadora de Computação de Alto Desempenho do Centro de Pesquisa Langley da NASA e os colegas Gabriele Jost e Daniel Kokron do Centro de Pesquisa Ames da NASA vieram com um código para simular elasticidade. Seu objetivo no hackathon era aumentar a instrução única, paralelismo de múltiplos dados (SIMD) - um tipo de computação em que vários processadores executam a mesma operação em muitos pontos de dados simultaneamente - e otimiza a velocidade na qual os dados podem ser lidos e armazenados na memória.

    "Cientistas da NASA estão tentando entender como e por que os materiais das aeronaves e espaçonaves falham, "disse Wagner." Precisamos ter certeza de que esses materiais são duráveis ​​o suficiente para suportar todas as forças que estão presentes no uso normal durante o serviço. No hackathon, estamos trabalhando em um mini aplicativo que é representativo das partes mais intensas em computação do programa maior para modelar o que acontece fisicamente quando os materiais são carregados, dobrado, e esticado. Nosso código tem muitas pequenas fórmulas que precisam ser executadas bilhões de vezes. O desafio é realizar todos os cálculos com muita rapidez. "

    De acordo com Wagner, uma das razões pelas quais a NASA está pressionando por essa capacidade computacional agora é entender os processos usados ​​para gerar peças fabricadas aditivamente (impressas em 3-D) e as diferentes propriedades dos materiais dessas peças, que estão cada vez mais sendo usados ​​em aeronaves. Saber essas informações é importante para garantir a segurança, confiabilidade, e durabilidade dos materiais ao longo de suas vidas operacionais.

    "O hackathon foi um sucesso para nós, "disse Wagner." Temos nosso código configurado para execução paralela massiva e rodando corretamente em hardware de GPU. Continuaremos com depuração e ajuste de desempenho paralelo, pois esperamos ter hardware e software adequados da NASA disponíveis em breve. "

    Outra equipe adotou uma abordagem semelhante ao tentar fazer o OpenMP funcionar para uma pequena parte de seu código, um código de cromodinâmica quântica de rede (QCD) que está no centro de um projeto ECP chamado Lattice QCD:Lattice Quantum Chromodynamics for Exascale. Lattice QCD é uma estrutura numérica para simular as fortes interações entre partículas elementares chamadas quarks e glúons. Essas simulações são importantes para muitos problemas de alta energia e física nuclear. Simulações típicas requerem meses de execução em supercomputadores.

    "Gostaríamos que nosso código fosse executado em diferentes arquiteturas exascale, "disse o membro da equipe e cientista computacional Meifeng Lin, vice-líder do grupo do novo Quantum Computing Group da CSI e coordenador local de hackathons anteriores. "Agora mesmo, o código roda em GPUs NVIDIA, mas os próximos computadores exascale devem ter pelo menos duas arquiteturas diferentes. Esperamos que, ao usar o OpenMP, que é suportado pelos principais fornecedores de hardware, poderemos transportar mais facilmente nosso código para essas plataformas emergentes. Passamos os primeiros dois dias do hackathon tentando fazer o OpenMP descarregar o código da CPU para a GPU em toda a biblioteca, sem muito sucesso. "

    John Mellor-Crummey faz uma apresentação sobre o HPCToolkit, um conjunto integrado de ferramentas para medir e analisar o desempenho do programa em sistemas que variam de desktops a supercomputadores. Crédito:Laboratório Nacional de Brookhaven

    Mentor Lingda Li, um associado de pesquisa CSI e um membro do projeto SOLLVE, ajudou Lin e o colega de equipe Chulwoo Jung, um físico do Grupo de Teoria de Alta Energia de Brookhaven, com o descarregamento do OpenMP.

    Embora a equipe tenha conseguido fazer o OpenMP funcionar com algumas centenas de linhas de código, seu desempenho inicial era ruim. Eles usaram várias ferramentas de perfil de desempenho para determinar o que estava causando a lentidão. Com esta informação, eles foram capazes de fazer um progresso fundamental em sua estratégia de otimização geral, incluindo a resolução de problemas relacionados ao descarregamento inicial da GPU e simplificação do mapeamento de dados.

    Entre as ferramentas de criação de perfil disponíveis para as equipes do hackathon, estava uma desenvolvida pela Rice University e pela University of Wisconsin.

    "Nossa ferramenta mede o desempenho de códigos acelerados por GPU no host e na GPU, "disse John Mellor-Crummey, professor de ciência da computação e engenharia elétrica e da computação na Rice University e o investigador principal no projeto ECP correspondente Estendendo o kit HPCToolkit para medir e analisar o desempenho do código em plataformas Exascale. "Temos usado em vários códigos de simulação esta semana para observar o desempenho relativo da computação e movimentação de dados dentro e fora das GPUs. Podemos dizer não apenas por quanto tempo um código está em execução, mas também quantas instruções foram executadas e se a execução estava em alta velocidade ou parada, e se parado, porque. Também identificamos problemas de mapeamento com as informações do compilador que associam o código de máquina e o código-fonte. "

    Outros mentores da IBM estiveram disponíveis para mostrar às equipes como usar os compiladores IBM XL - que são projetados para explorar todo o poder dos processadores IBM Power - e ajudá-los em quaisquer problemas que encontrem.

    "Compiladores são ferramentas que os cientistas usam para traduzir seu software científico em código que pode ser lido por hardware, pelos maiores supercomputadores do mundo - Summit e Sierra [em Lawrence Livermore], "disse Doru Bercea, membro da equipe de pesquisa do Advanced Compiler Technologies Group no IBM TJ Watson Research Center. "O hackathon nos dá a oportunidade de discutir as decisões de design do compilador para fazer o OpenMP funcionar melhor para os cientistas."

    QMCPack pode ser usado para calcular as energias do estado de aterramento e excitado de defeitos localizados em isoladores e semicondutores, por exemplo, em manganês (Mn) 4+ - fósforos dopados, que são materiais promissores para melhorar a qualidade da cor e a luminosidade dos diodos emissores de luz branca. Crédito:Laboratório Nacional de Brookhaven

    De acordo com o mentor Johannes Doerfert, um bolsista de pós-doutorado na ALCF, os aplicativos que as equipes trouxeram para o hackathon estavam em vários estágios em termos de prontidão para os próximos sistemas de computação.

    "Algumas equipes estão enfrentando problemas de portabilidade, alguns estão lutando com os compiladores, e alguns têm problemas de desempenho de aplicativos, "explicou Doerfert." Como mentores, recebemos perguntas vindas de qualquer lugar neste amplo espectro. "

    Algumas das outras aplicações científicas que as equipes trouxeram incluem um código (pf3d) para simular as interações entre lasers de alta intensidade e plasma (gás ionizado) em experimentos na National Ignition Facility de Lawrence Livermore, e um código para calcular a estrutura eletrônica dos átomos, moléculas, e sólidos (QMCPack, também um projeto ECP). Outra equipe do ECP trouxe um ambiente de programação portátil (RAJA) para a linguagem de programação C ++.

    "Estamos desenvolvendo uma abstração de alto nível chamada RAJA para que as pessoas possam usar quaisquer estruturas de hardware ou software disponíveis no backend de seus sistemas de computador, "disse o mentor Tom Scogland, um pós-doutorado no Center for Applied Scientific Computing em Lawrence Livermore. "O RAJA visa principalmente OpenMP no host e CUDA [outro modelo de programação de computação paralela] no backend. Mas queremos que o RAJA funcione com outros modelos de programação no backend, incluindo OpenMP. "

    "O tema do hackathon foi OpenMP 4.5+, uma versão em evolução e não totalmente madura, "explicou Kong." As equipes saíram com uma melhor compreensão dos novos recursos do OpenMP, conhecimento sobre as novas ferramentas que estão se tornando disponíveis na Summit, e um roteiro a seguir em longo prazo. "

    "Aprendi várias coisas sobre o OpenMP 4.5, "disse o membro da equipe pf3d Steve Langer, um físico computacional em Lawrence Livermore. "O maior benefício foram as discussões com mentores e funcionários da IBM. Agora sei como empacotar minhas diretivas de descarregamento OpenMP para usar GPUs NVIDIA sem enfrentar limitações de memória."


    © Ciência https://pt.scienceaq.com