Exascale Computing Project lança nova versão do Extreme Scale HPC Scientific Software Stack

A partir da esquerda, Mike Heroux, Laboratório Nacional Sandia; Sameer Shende, Universidade. do Oregon; Todd Gamblin, Laboratório Nacional Lawrence Livermore

O ecossistema de software de computação de alto desempenho (HPC) Extreme-scale Scientific Software Stack (E4S), uma ampla coleção contínua de recursos de software continuamente desenvolvidos para atender às necessidades científicas emergentes da comunidade do Departamento de Energia dos EUA ., lançada recentemente na versão 22.02.

O E4S, que começou no outono de 2018, visa acelerar o desenvolvimento, implantação e uso de software HPC, reduzindo assim as barreiras para os usuários de HPC.

O Spack serve como uma ferramenta de metaconstrução para identificar as dependências de software dos produtos E4S e permitir a criação de uma árvore de produtos construída recursivamente.

“O E4S fornece receitas do Spack para instalação de software em sistemas inteiros com a ajuda de um cache de compilação binário do Spack”, disse Sameer Shende, líder do projeto ECP E4S e professor associado de pesquisa e diretor do Laboratório de Pesquisa de Desempenho, OACIS, Universidade de Oregon. “Fornece uma variedade de contêineres que abrangem imagens de base habilitadas para Spack com suporte para GPUs NVIDIA nas arquiteturas x86_64, ppc64le e aarch64. No x86_64, há suporte para GPUs de todos os três fornecedores: NVIDIA, Intel e AMD. Isso permite que um usuário crie imagens de container compactas e personalizadas a partir de imagens de base do E4S. Uma imagem E4S completa que suporta ferramentas de visualização como VisIt, ParaView e TAU tem 100 produtos E4S instalados com Spack e inclui tempos de execução de GPU, incluindo CUDA, NVHPC, ROCm e oneAPI, bem como pacotes de AI/ML como TensorFlow e PyTorch que suporta GPUs. Isso oferece aos desenvolvedores uma variedade de opções específicas de plataforma para implantar facilmente seus aplicativos HPC e AI/ML em GPUs.”

Os dois principais contribuintes para o E4S são a ST e a área de co-design dentro do portfólio de desenvolvimento de aplicativos ECP. Os produtos ST tendem a abranger abordagens mais estabelecidas de como ferramentas e bibliotecas matemáticas podem ser disponibilizadas e usadas por muitas equipes diferentes para desenvolver, implantar e executar aplicativos científicos em plataformas HPC. O co-design de ECP envolve padrões emergentes que incorporam funcionalidades que podem ser usadas por muitas aplicações diferentes.

O E4S encapsula os produtos ST e Co-design com outras ferramentas de desenvolvimento de software, como a estrutura de aprendizado de máquina PyTorch, a plataforma de origem TensorFlow para aprendizado de máquina e a memória distribuída Horovod, que fica no topo das outras duas ferramentas.

“Nossas equipes de Tecnologia de Software e Co-design estão trabalhando em novos recursos para plataformas de computação exascale”, disse Heroux. “Agora esse trabalho está sendo feito em ambientes muito específicos onde estamos em sistemas de acesso antecipado. Estamos trabalhando em estreita colaboração com nossas equipes de desenvolvimento de aplicativos para desenvolver novos recursos. Essas coisas não estão na E4S hoje; Será, mas ainda não chegou.”

As equipes E4S também estabeleceram recursos que aprenderam nos últimos meses que agora estão disponíveis apenas para o ramo de lançamento de equipes independentes de desenvolvimento de produtos de software.

Por exemplo, a capacidade do pacote de software hypre numeric para modelagem e simulação de parques eólicos usado pelo projeto ECP ExaWind está disponível apenas localmente, isolado no estágio de desenvolvimento de uma versão futura e da versão atual do hypre. Esse novo recurso é adicionado ao repositório de pacotes de software no GitHub após a conclusão de correções de bugs e outros trabalhos orientados a lançamentos, e quatro a seis meses depois, o projeto E4S o adiciona ao portfólio E4S.

“Você pode pensar no E4S como o veículo final de entrega de recursos verdadeiramente robustos e reforçados que os ECPs fornecem como bibliotecas e ferramentas reutilizáveis”, disse Heroux.

Projetado para enfrentar os desafios científicos mais recentes, o E4S é testado para interoperabilidade e portabilidade em várias arquiteturas de computação, suportando GPUs da NVIDIA, AMD e Intel em uma única distribuição. O E4S incluirá cada vez mais ferramentas e bibliotecas de inteligência artificial (IA) que são especificamente necessárias para aplicar a conjuntos de problemas científicos.

A computação de borda científica, que envolve muita instrumentação e dados recebidos que precisam ser gerenciados e então assimilados para uma compreensão científica mais profunda, também fará parte do E4S, assim como a tecnologia quântica em seu desenvolvimento. Produtos de software científico (bibliotecas e ferramentas) serão necessários para acessar os recursos fundamentais oferecidos pelos dispositivos quânticos.

Os usuários que trabalham em sistemas de computador que não possuem as inovações mais recentes também podem se beneficiar do E4S. Por exemplo, as versões mais robustas e reforçadas das bibliotecas e ferramentas do E4S estão atualmente disponíveis e são úteis para uso em clusters com nós de CPU ou em laptops. Muitos desenvolvedores de E4S usam um laptop como seu principal ambiente de desenvolvimento de software e compilam e executam seus softwares nessa máquina.

“O ECP nos deu um conjunto ambicioso de metas que nos obrigaram a trabalhar juntos em laboratórios, universidades e parceiros do setor para fornecer software para aplicativos de grande escala e para a comunidade científica mais ampla”, disse Heroux. “É um problema grande o suficiente e grande o suficiente, e eu teria que dizer, distorcido o suficiente, que nos obrigou e nos incentivou a trabalhar juntos nesse tipo de portfólio. Como comunidade científica do DOE, temos desenvolvido muitos desses produtos; estes geralmente não são produtos novos. Esses são recursos completamente novos voltados para sistemas exascale.”

O legado duradouro do projeto E4S terá duas facetas: sua facilidade de uso em diferentes plataformas de GPU e sua abordagem de portfólio.

“Como tivemos que entregar esses produtos em um cronograma muito agressivo, temos que trabalhar juntos para garantir que não estamos introduzindo bugs à medida que criamos novos recursos, e fazê-lo como um portfólio é muito mais eficaz e eficiente do que ter cada equipe de produto individual entra nesses sistemas de acesso antecipado, entra em sistemas exascale de forma independente e precisa passar por todo o processo por conta própria”, disse Heroux. “Como um portfólio coletivo, e ainda em uma escala mais fina, o SDK [software development kit] nível de integração, onde reunimos coisas como bibliotecas matemáticas como um grupo, essas duas camadas adicionais de colaboração nos permitem acelerar e tornar mais robusta a coleção de software que fornecemos.”

A qualidade do E4S como plataforma comunitária é sua proposta de valor para os cientistas. Os usuários podem configurar seus aplicativos em cima do E4S e tirar proveito de seu enorme conjunto de recursos, e os contribuidores do E4S podem disponibilizar suas próprias bibliotecas ou ferramentas para suas comunidades de usuários. O E4S também faz parte do ecossistema Spack mais amplo, portanto, seus pacotes podem ser usados ​​em conjunto com mais de 6.000 outros pacotes de software no Spack.

Os 100 pacotes de software E4S dependem de mais de 400 dependências do Spack.

“O Spack se beneficia muito da qualidade e dos esforços de fortalecimento da equipe E4S – eles garantem que um conjunto básico de pacotes muito complexos seja integrado e funcione de forma confiável para os usuários do Spack”, disse Todd Gamblin, líder do Spack. “Também usamos os pacotes E4S para testar o próprio Spack. A cada alteração no Spack, executamos testes para garantir que as compilações do E4S continuem funcionando. Ambos os esforços são altamente alavancados: o trabalho contínuo dos quase 1.000 colaboradores do Spack garante que as dependências do E4S estejam atualizadas e funcionando de maneira confiável, e a equipe do E4S garante que o software ECP mais recente esteja disponível para a comunidade em geral. ”.

Heroux se referiu à singularidade do E4S.

“É um bom conjunto de ferramentas, muitas funcionalidades que você não encontra em uma coleção semelhante em nenhum outro lugar do planeta”, disse Heroux. “Ele fornece alguns recursos de compilação muito bons por meio do Spack e, na verdade, se você começar a usar nosso material e quiser criar o que é chamado de cache de compilação, também poderá reduzir a quantidade de tempo gasto construindo as bibliotecas e ferramentas no E4S porque manteremos um versão binária em cache de uma compilação anterior, e você pode obtê-la em vez de ter que reconstruí-la. Vemos os tempos de construção sendo reduzidos de, digamos, um tipo de construção de um dia para algumas horas. … Também fornecemos o E4S como um contêiner e ele suporta todas as arquiteturas de GPU que visamos nesses contêineres. Além disso, o E4S pode ser instalado em nós de nuvem, por exemplo, da AWS, a nuvem da Amazon, e estamos trabalhando com outros provedores de nuvem para que você possa confiar que o E4S estará disponível; você se torna parte do ecossistema, em vez de ter que construí-lo o tempo todo.”

Links Relacionados

fonte: Scott Gibson, Exascale Computing Project

Leave a Comment