| 06 Fevereiro 2012
O que será necessário para obter uma nuvem HPC verdadeira?
Escrito por Doug razo 01 de fevereiro de 2012
Em eNewsletter do mês passado, Flutuando HPC na nuvem , nós comparamos as capacidades de nuvem tradicionais às de um recurso HPC, e descobriu que o fornecimento de HPC verdadeiro na nuvem poderia ser uma proposta difícil. Para ser bem sucedido, HPC na nuvem precisa entregar as capacidades e desempenho para que os usuários estão acostumados HPC.
Uma questão importante e muitas vezes mal interpretada em relação ao desempenho é a escalabilidade. Há um equívoco geral que a adição de mais servidores para um problema HPC automaticamente aumenta a performance. Em HPC, a escalabilidade é vagamente definida pela questão: "Como os processadores (núcleos) são adicionados, o quanto mais rápido irá executar o programa?" Um programa altamente escalável pode utilizar muitos núcleos, enquanto um programa menos escalável não irá mostrar nenhum aumento de velocidade, quando mais núcleos são adicionados. Assim, a escalabilidade é uma função do programa, e é bem descrito por Lei de Amdahl . Há, no entanto, aspectos de máquinas que podem contribuir para a escalabilidade através de lei de Amdahl. Simplificando, quanto mais as coisas têm que esperar por dados, pior a escalabilidade. (Para aqueles que estão familiarizados com a lei de Amdahl, isso equivale a aumentar a parte seqüencial do programa.)
Em HPC, o objetivo é acelerar aplicações, mantendo recursos tão ocupados quanto possível. Se os recursos estão esperando, então a utilização não é o ideal e adicionar mais recursos pode realmente piorar as coisas. Como afirmado, a escalabilidade é uma função do programa. Assim, em uma extremidade dos programas de espectro pode ser altamente escalável, ou "embaraçosamente paralelo", e sobre os programas, os outros podem ser difíceis de escala, que chamaremos de "interligar sensível."
Um cluster HPC pode ser construído usando muitos tipos diferentes de hardware. Em geral, a melhor ligação entre os núcleos (a interconexão entre os nós do servidor), os melhores interconexão sensíveis programas serão executados. Se um programa altamente escalável (isto é, renderização de imagem) é executado em um cluster com Gigabit Ethernet e também em um cluster com InfiniBand, a escalabilidade eo desempenho seria quase idêntica (todas as outras coisas sendo iguais). Se, no entanto, um programa de interconexão sensível (isto é, a modelagem do tempo) foram executados nos mesmos dois clusters, a escalabilidade no cluster Ethernet Gigabit seria muito menos do que no cluster InfiniBand, eo desempenho no cluster InfiniBand seria muito melhor.
Por causa do hardware subjacente é importante para a escalabilidade para alguns programas, maximizando aspectos de hardware certos pode ajudar a melhorar drasticamente o desempenho do aplicativo. Na verdade, InfiniBand vai para grandes comprimentos para manter a aplicação como perto do "fios" quanto possível. Nuvens mais tradicionais usar Gigabit ou 10-Gigabit Ethernet. Casos de HPC nessas nuvens vai funcionar muito bem para programas embaraçosamente paralelos, mas podem ter dificuldades quando necessitam de uma melhor interconexão. Desempenho, escalabilidade e, portanto, vai sofrer. Um verdadeiro HPC nuvem precisa oferecer uma interconexão de alto desempenho que não irá limitar a escalabilidade do aplicativo.
Uma nuvem HPC também precisa de para manter os usuários tão perto quanto possível, para o hardware, um requisito de que é executado contador para a camada de virtualização que é usado em todas as nuvens-padrão. A virtualização oferece uma grande flexibilidade aos usuários, mas é projetado para mantê-los de tocar no hardware real. Como implementado, esta exigência pode limitar a flexibilidade de uma nuvem HPC verdade. Dito isto, há uma maneira de proporcionar alto desempenho e flexibilidade nuvem para aplicações de HPC.
A chave para uma nuvem de HPC é o provisionamento dinâmico. Um cluster tradicional normalmente tem um sistema operacional fixo (OS) em todos os servidores de computação. Um programa do usuário deve obedecer a esta especificação, ou não pode ser executado. Como uma nuvem padrão, uma nuvem de HPC deve permitir ao usuário escolher (ou mesmo design) o ambiente do sistema operacional para os servidores de computação, e isso pode ser feito apesar de provisionamento dinâmico, onde todos os servidores de computação são bare-metal provisionados pelo recurso scheduler. Em essência, os nós de computação são recriados cada vez que um programa é executado.
Enquanto o provisionamento dinâmico pode parecer demorado e ineficiente, algumas coisas devem ser tidas em consideração. Em primeiro lugar, a maioria das aplicações de HPC correr durante horas, dias ou mesmo semanas. Dando um pequeno pedaço de tempo de execução no início é um preço pequeno a pagar por um ambiente de nuvem flexível. Em segundo lugar, e talvez mais importante ainda, existem são de provisionamento métodos que não exijam a unidade de disco rígido em cada nó trabalhador para ser re-imaged, reduzindo assim o tempo necessário para disposição o nó.
Usando opções como memória RAM com base em discos, NFS e outras ferramentas padrão * NIX, nós pode ser facilmente configurado com ambientes únicos mínimos sem tocar em nenhum dos discos rígidos de nós (eles devem mesmo existir). Os discos rígidos nos nós ainda pode ser usado para armazenamento de zero local, mas todos os arquivos importantes do sistema operacional e os diretórios são carregadas pelo alocador de recursos em um disco RAM. Um exemplo interessante deste tipo de ferramenta é o Projeto Warewulf .
O conjunto de ferramentas Warewulf é um pacote disponível gratuitamente que permite a fácil criação e manipulação de imagens de nós que são então carregados como imagens de disco de memória RAM para os servidores de computação. Iniciando um nó é realmente muito rápido e pode ser facilmente alterado para atender às preferências do usuário ou aplicação. Uma solução flexível provisionamento comercial é brilhante Cluster Manager , que permite fácil instalação, monitoramento e gerenciamento de clusters. Brilhante também oferece a capacidade de nuvem estourar onde os trabalhos podem ser direcionados para nuvens externas.
Nuvens de HPC que combinam alta performance e interliga provisionamento dinâmico pode oferecer as características da nuvem mais desejáveis, tais como flexibilidade, escalabilidade e escolha de software, ao mesmo tempo mantendo características HPC que proporcionam níveis de desempenho esperados.
HPC armazenamento é outro aspecto fundamental da HPC nuvens, que será abordado no próximo mês. Enquanto nuvens padrão oferecem muitas opções de armazenamento, HPC geralmente requer um componente de armazenamento robusto e previsível, o que não é oferecido com muitas nuvens Acordos de Nível de Serviço (SLAs). Durante o mês que vem, você pode querer ficar ligado aos esforços de nuvem em cima da HPC HPCTools.com .







