Os desafios ocultos da computação de alto desempenho: você sabe o quão difícil é medir a portabilidade do desempenho?

No mundo da computação de alto desempenho (HPC), a portabilidade de desempenho é uma meta perseguida por muitos desenvolvedores. Entretanto, com a diversificação das plataformas de computação, essa meta enfrenta muitos desafios. Portabilidade de desempenho não significa apenas fazer um aplicativo rodar em diferentes plataformas de hardware, mas, mais importante, como manter sua compatibilidade sem comprometer o desempenho. Até o momento, não existe um padrão universal para quantificar e avaliar a portabilidade de desempenho, o que dificulta o trabalho dos desenvolvedores na hora de projetar software.

A portabilidade de desempenho representa a suposição de que a base de código única de um desenvolvedor terá bom desempenho em novas arquiteturas e manterá limites de desempenho aceitáveis ​​em uma variedade de arquiteturas atuais que ainda não foram testadas.

A definição e a medição da portabilidade de desempenho são muito debatidas. Alguns argumentam que a principal questão é a portabilidade do aplicativo, enquanto outros insistem que a portabilidade do código-fonte é a chave. Especialmente na situação atual, em que o hardware muda a cada dia, os desenvolvedores precisam considerar como permitir que seus produtos continuem sendo executados em diversas plataformas. O Programa de Supercomputação (ECP) do Departamento de Energia dos EUA enfatiza esse ponto, pois eles precisam criar um ecossistema de computação compatível para diferentes arquiteturas de hardware.

Acredita-se geralmente que "um código pode rodar bem em múltiplas arquiteturas, o que é portabilidade de desempenho".

Ao avaliar a portabilidade de desempenho, os desenvolvedores normalmente consideram dois fatores: portabilidade e desempenho. A portabilidade pode ser medida observando as linhas de código usadas em diferentes arquiteturas, enquanto o desempenho pode ser determinado comparando versões otimizadas para plataforma com versões portáteis. Apesar desses métodos de medição, o setor ainda carece de padrões transparentes, o que dificulta que os desenvolvedores entendam claramente como obter o melhor desempenho de portabilidade.

Na Conferência de Portabilidade do DOE (Departamento de Energia dos EUA) de 2016, os participantes se envolveram em um debate acalorado sobre portabilidade de desempenho. Muitos desenvolvedores e cientistas renomados compareceram à reunião para compartilhar novos insights e requisitos para portabilidade de desempenho. Vale ressaltar que há uma visão de que a portabilidade de desempenho fornecida pelos futuros modelos de programação paralela será mais significativa do que o que os próprios aplicativos podem fornecer.

Conforme mencionado na reunião, "Um código é portátil quando a equipe de aplicação o considera portátil."

Diante de diversas plataformas de hardware, os desenvolvedores precisam encontrar uma estrutura adequada para dar suporte ao seu código. Estruturas conhecidas como OpenCL, SYCL e OpenMP alegam facilitar a portabilidade de funcionalidades. Essas estruturas oferecem suporte à programação paralela em diversas plataformas, permitindo que os desenvolvedores programem em diversas linguagens. No entanto, além de frameworks, também existem soluções sem framework, como autoajuste e linguagens específicas de domínio, que também podem ajudar a melhorar a portabilidade do desempenho.

Resumindo, a questão da portabilidade de desempenho está se tornando cada vez mais importante na computação de alto desempenho porque afeta diretamente a eficiência do trabalho do desenvolvedor e o desenvolvimento sustentável de aplicativos. À medida que as necessidades de computação mudam no futuro e a tecnologia da computação avança rapidamente, como os desenvolvedores devem se adaptar e enfrentar esses desafios?

Trending Knowledge

Por que a comunidade HPC é tão obcecada com 'portabilidade de desempenho'?
No campo da computação de alto desempenho (HPC), os desenvolvedores são quase fanáticos pela "portabilidade de desempenho". Esse fenômeno decorre da necessidade de programas e aplicativos de computado
nan
A definição e aplicação das ferrovias de passageiros variam significativamente em cada região.Essas diferenças não apenas refletem o desenvolvimento de sistemas de transporte público em vários lugare
Portabilidade de desempenho: como fazer seu programa funcionar perfeitamente em diferentes plataformas de hardware?
Na era digital altamente interconectada de hoje, a portabilidade de desempenho tornou-se uma questão importante no desenvolvimento de software. Portabilidade de desempenho refere-se à capacidade de um

Responses