18 de abril de 2010

Quero orçar um cluster: em que devo pensar?


Atualmente, devido à questão do paralelismo, é muito difícil definirmos o desempenho de um cluster pelo número de processadores e frequência de clock. A maneira correta de se comparar desempenho entre máquinas são os FLOPS (floating point operations per second). Não adianta nada ter duas máquinas de oito núcelos cada a 3GHz se a comunicação entre elas é por rede doméstica (100 Mbps). 95% dos ciclos do processador estariam ociosos aguardando dados para serem processados.

Assim, a primeira coisa importante é uma rede de alta velocidade (10 - 30 Gbps) (conhecida como InfiniBand). Ou seja, de 100 a 300 vezes mais rápida que uma rede doméstica comum. Uma das empresas detentoras dessa tecnologia é a Voltaire.

Outra coisa importante para um cluster é a eficiência energética, além do desempenho. Embora seja fácil encontrar no mercado PCs com clock de 3GHz, raramente você encontrará isso em clusters. Isso porque o consumo energético (junto com aquecimento do sistema e consequente necessidade de mais potência de refrigeração) aumenta exponencialmente com a frequência de clock. O mais comum para clusters são processadores na faixa de 2,2 - 2,4 Ghz. É claro que, por enquanto, estamos falando apenas de CPUs. Mas porque não pensar em GPUs (placas gráficas)? Para computação científica! Isso mesmo!

Os computadores atuais tem três níveis de armazenamento: disco rígido, memória RAM e memória cache. A capacidade em disco necessária está ligada à quantidade de dados que o laboratório quer armazenar (por exemplo, os resultados transientes de uma simulação). A capacidade de memória RAM está ligada ao volume de dados que precisa ser alocado para o(s) cálculo(s). A memória cache vem junto com o chip, e é para onde vão os dados da memória RAM antes de serem processados. Quanto maior a capacidade da memória cache, maiores as chances de aumentar os FLOPS com o mesmo número de processadores, mesmo clock, mesmo InfiniBand, etc. Atualmente, pode-se considerar 512 kB de cache por núcleo como minimiamente aceitável e 2 MB de cache por núcelo como muito bom.

Entretanto, está para se popularizar mais um nível de armazenamento: os SSDs (memória não-volátil), com exatamente o mesmo funcionamento do seu pendrive. Ela fica entre os discos rígidos e a memória RAM (veja a imagem abaixo), com o objetivo de armazenar aquela taxa de dados que a memória já quer gravar (passar para os discos) mas que os discos não são capazes de fazê-lo. São como um "buffer" da RAM para os HDDs. Não digo que seja essencial. O CESUP, por exemplo, ainda não tem. Para se ter uma referência, a taxa de escrita em disco do CESUP era, em 2009, de 800 MB/s.


Sobre o sistema operacional, os mais utilizados para computação científica, hoje, são os Linux. Especificamente, o RedHat, embora não seja gratuito.

Uma opção de montagem de cluster é com blade servers. São computadores especialmente desenhados para serem acomodados em racks (estandes), em nome da economia de espaço (veja imagem abaixo). Uma alternativa é fazer um cluster com gabinetes torre comuns. Neste caso, atenção: cada computador de um cluster não necessita de diversos periféricos (mouses, teclados, caixas de som,...). Também não é necessário mais de um monitor, drive óptico, etc.


Todo o cluster adquirido deve ter uma propriedade muito boa chamada escalabilidade. Ou seja, a adição de máquinas com o objetivo de aumentar o poder computacional deve poder ser feita sem prejudicar o poder computacional das máquinas existentes ou das adquiridas. Esse tipo de coisa apenas o fabricante pode querer garantir, e um especialista querer questionar.


Agora, falemos de fabricante e especialista.

Não aconselho que sejam adquiridas máquinas Sun/Oracle para um recurso de computação científica. A Sun/Oracle está muito mais voltada ao mercado de datacenters - é uma das líderes do mercado -, então a qualidade de informações e suporte para o recurso de computação científica seria deficiente. Se o laboratório quiser seguir a "onda", o mercado de clusters para computação científica tem sido dominado praticamente pela HP, dos menores aos maiores recursos computacionais.

Sobre especialista: a administração de um cluster é algo bem complicado e exige muito conhecimento específico. O laboratório deveria, certamente, contratar um funcionário responsável por isso.

Nenhum cluster para alta produtividade científica deveria estar, na minha opinião, à mercê de quedas de luz e surtos de energia elétrica. Deveria-se dispor de três equipamentos básicos: quadros de luz (que atenuam surtos de rede antes de chegarem às fontes dos computadores, que têm o mesmo objetivo); geradores; e no-breaks (capazes de manter o sistema funcionando por no máximo alguns segundos, até que o gerador entre em funcionamento). Não utilizar estabilizadores, que prejudicam as fontes dos computadores. As fontes dos computadores devem ter PFC ativo. De onde que eu tirei isso? Daqui.

É claro que tudo isso deve ter um sistema de refrigeração. O insuflamento de ar frio deve ser feito de cima para baixo, na região frontal dos computadores. A exaustão de ar deve ser feita atrás deles. A temperatura do ar frio à frente das máquinas deve ser tal que a umidade do ar não condense (geralmente entre 20-22ºC).

Um outro fator recentemente descoberto é a influência do ruído na latência de transferência de dados. Um ambiente absorvedor de som ao redor do cluster é aconselhável. Dê só uma olhada que interessante, nesta postagem: Não grite no datacenter!

Bom, se achas que tudo isso dá muito trabalho, uma alternativa é contratar um serviço de computação em nuvem. Ao invés de investir em um cluster, administração e manutenção, pode-se deixar tudo isso com especialistas no assunto (fornecedores de infraestrutura de computação como serviço) (veja imagem abaixo). Isso não é nada além do que o SINAPAD faz: um recurso computacional como serviço. O laboratório poderia, ainda, procurar um outro serviço que prove ser mais adequado.  Infelizmente, além dos centros do SINAPAD, do qual o CESUP faz parte, não conheço nenhum voltado à computação científica.


Finalizamos, assim, finalmente descobrindo o que a computação em nuvem tem a ver com a comunidade científica, como prometido há muito tempo: sempre se quer pesquisar, mas nem sempre se quer administrar um complexo sistema computacional como um cluster.

Um comentário:

  1. Alguém conhece um representante da HP? Liguei p a HP, o atendimento é péssimo, a única informação que passam é que deve comprar pelo site.

    ResponderExcluir

 
Nota de responsabilidade:
As informações contidas nesse blog têm caráter informativo, mas muitas vezes subjetivo, da mesma forma que as referências citadas. Afinal, quem cria e faz a Engenharia são sempre pessoas, e não livros. Recomenda-se análise crítica e pedem-se sugestões de correção se o leitor acreditar serem oportunas. O autor não se responsabiliza pelos comentários postados ou por qualquer consequência negativa resultante da utilização das informaçoes aqui contidas, de forma que o leitor deve usá-las sob sua própria conta e risco.
Licença Creative Commons
Mec. Flu., CFD e HPC de Marco Leonardelli Lovatto está sob uma Licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 3.0 Não Adaptada. Permite-se e incentiva-se a cópia, tradução e adaptação por qualquer meio, desde que para fins não comerciais, mantendo-se essas mesmas condições e fazendo referência ao link original do texto.