set 08
16
Mais uma vez estamos aqui para continuar a discussão sobre simulações computacionais. Para isso convidei novamente o estudante de pós-graduação Weslley Souza Patrocinio, aquele que escreveu, aqui no TecnoSapiens, o artigo A Elite das Simulações Computacionais: Os Supercomputadores, para nos dar mais algumas informações sobre ferramentas que são usadas em computação de alto desempenho. Como já foi dito no outro artigo, ele é formado em Física computacional e mestrando na mesma área no Instituto de Física da USP – São Carlos, para maiores informações acesse seu currículo Lattes. Segue o artigo!
Por Weslley Souza Patrocinio
Olá caros leitores. Estou aqui para continuar a fazer um panorama dos equipamentos usados em simulações computacionais no meio científico/tecnológico. Em nosso último encontro falamos sobre o que há de high-tec no mercado: os supercomputadores. Entretanto, apenas uma fatia muito pequena dos pesquisadores/desenvolvedores tem acesso a essas máquinas turbinadas, afinal não é todo mundo que tem um limite de US$ 100.000.000,00 no cartão de crédito pra comprar um brinquedinho desses. E acredite, a falta de poder computacional é o limitante de bons resultados de pesquisa em muitas simulações.
Cabe à “massa” então usar de alternativas factíveis a nossa (sim, eu também faço parte dela) realidade financeira. Um dos caminhos mais explorados pelos usuários da computação de alto desempenho (HPC – high performance computing) é “copiar” a idéia de um supercomputador, construindo uma máquina composta por vários computadores existentes no mercado (off the shelf). Entretanto, existem duas possibilidades de construir uma máquina dessa forma, e ambas as formas são bastante confundidas entre elas; os clusters e os grids.
Os clusters são um conjunto de computadores (onde cada computador é chamado “nó”) construídos especificamente para os cálculos envolvidos em uma dada simulação/modelagem, ou seja, são máquinas extremamente aplicadas. Embora seja constituído de arquiteturas “comuns”, geralmente é usada tecnologia de ponta. Atualmente quase todo cluster montado é composto por processadores multi-cores, muitos e muitos gigaBytes de memória, rede Gigabit Ethernet e por aí vai. Fora o hardware envolvido, um cluster envolve a utilização de bibliotecas e protocolos de comunicação entre os processadores para utilizar todos os nós da melhor forma possível.
Os grids já incluem uma idéia (bastante interessante, por sinal) um pouco diferente dos clusters. Um grid seria um cluster “heterogêneo”, ou seja, cada nó possui uma arquitetura diferente, e muitas vezes um nó é um computador pessoal instalado no seu escritório, ou seja, os nós não são máquinas dedicadas. Com a evolução da internet, muitos grids têm sido construídos com os computadores de usuários comuns. Um software é instalado em seu computador, e quando ele estiver ocioso, alguns cálculos são realizados nele, sem atrapalhar suas tarefas em sua própria máquina. Um dos grids mais famosos baseado nesta idéia é o FightAIDS@Home, usado para buscar a cura da AIDS, constituído por mais de 170 mil nós.
Dessa forma, os pequenos núcleos de pesquisa e desenvolvimento podem contribuir com os avanços tecnológicos, e quem sabe crescerem até o ponto de realizar cálculos em um supercomputador, ou então desenvolver novas tecnologias de cálculos massivos (como o GP/GPU, FPGA e outros).
Vimos então algumas das alternativas mais usadas para aumentar o poder computacional com baixo custo. Caso algum leitor tenha limitação de recursos computacionais para realização de alguns cálculos desejados, pode usar dos artifícios discutidos acima para minimizar tal fato. Que tal construir um grid com os computadores do seu laboratório/sala? Está aí uma boa chance de entrar de cabeça no mundo da computação de alto desempenho, e de brinde você ganhará tempo no processamento de dados.