ESPACO
DICAS / - Redes - Virtualização


Transforme uma rede de PCs num cluster para acelerar operações demoradas

Se você tem PCs ligados em rede, pode montar um supercomputador sem gastar nenhum centavo. É verdade. E a supermáquina não vai exigir nenhuma reconfiguração de hardware ou mesmo instalação de software. Basta usar uma distribuição Linux que roda em CD, a Dynebolic. INFO testou essa solução e comprovou que ela funciona. O Dynebolic é um Linux ajustado para rodar em CD. Traz embutido o openMosix, solução que dá ao sistema a capacidade de distribuir o trabalho que está sendo executado num PC com outras máquinas da rede. Tecnicamente, o openMosix monta um cluster — ou seja, um conjunto de máquinas, todas rodando o mesmo sistema operacional, que funciona como uma única CPU. Com isso, uma tarefa pesada, que levaria horas, pode ser feita em minutos, graças à reunião dos micros na base do todos por um. Acompanhe os detalhes da experiência.

A grande vantagem do Dynebolic é que você pode incluir qualquer PC que esteja ligado a uma rede, não importa o potencial das máquinas utilizadas. Aliás, os desenvolvedores do produto dizem que ele é “otimizado para máquinas mais lentas”. Também não importa se o PC tem instalado o Windows, o Linux ou outro sistema operacional. Todas as máquinas que vão fazer parte do cluster vão rodar o Dynebolic. Como ele roda num CD, é necessário ter vários CDs com o sistema. Além disso, cada micro tem de estar ajustado para inicializar pelo CD.

1. OBTENHA O SISTEMA

A primeira tarefa consiste em baixar o sistema operacional (www.info.abril.com.br/download/3880.shtml). O Dynabolic é distribuído num arquivo ISO de 443 MB, que é a imagem de um CD de boot, contendo o sistema e alguns aplicativos. Baixado esse arquivo, queime um CD. Antes de tudo, use esse CD e tente dar o boot em cada um dos micros que pretende incluir no cluster. O teste prévio lhe dirá quantas máquinas será possível usar. Você pode incluir notebooks no teste. Em nosso caso, o Dynebolic mostrou-se incompatível com alguns PCs, especialmente aqueles com hardware mais recente. Um deles foi um Pentium 4 de 2,8 GHz, com placa-mãe Intel D865PERL e placa de vídeo Radeon 9800 SE. Depois de testados os PCs, queime um CD para cada micro que vai entrar no cluster.

2. O PRIMEIRO NÓ

Num cluster, cada máquina é conhecida como nó. Escolha um PC para ser o nó 1. Pode ser qualquer micro, de preferência com um HD formatado no padrão FAT32 (Windows) ou Ext2 ou Ext3, do Linux. Nesse PC, crie um diretório c:dyne, em máquina Windows, ou /dyne, em máquina Linux. Em ambos os casos, copie para esse diretório o conteúdo da pasta isolinux, no CD. Para que isso? Quando roda do CD, o Dynebolic armazena em memória os arquivos temporários. Nesse caso, a pasta dyne será detectada no disco rígido e os dados temporários serão gravados aí.

Agora, dê o boot na máquina 1 e configure a rede. Clique no desktop com o botão direito e escolha System/Network. Clique no botão Static IP e indique o número IP interno da máquina (por exemplo, 192.168.1.120) e o IP do gateway (endereço do servidor: exemplo, 192.168.1.1). Dê, em seqüência, os comandos OK, Apply e Save. Isso salva as configurações na memória. Vamos agora salvá-las no disco rígido. Clique outra vez com o botão direito na área de trabalho e, no menu, acione Version 1.1. Abre-se a tela de boas-vindas do sistema. Na orelha Getting Started, clique no botão Nest Dynebolic. Esse comando armazena no HD as configurações de rede e outras que você fizer. Isso evita refazer as configurações a cada reinicialização. Também é possível salvar as configurações num disquete ou num memory key — as opções surgem após o comando Nest Dynebolic. Essas opções são úteis no caso de o HD estar formatado no padrão NTFS, no qual o Linux não escreve.

3. OS OUTROS NÓS

Agora, passemos à segunda máquina do cluster. Coloque o CD do Dynebolic e reinicialize-a pelo CD. Faça a configuração de rede nessa máquina, indicando o IP e o gateway. Dê os comandos OK, Apply e Save. Use o comando ping número_IP para ver se a rede está ativa. O openMosix é ativado automaticamente. Repita este passo nos outros PCs.

4. CONFIGURE

O CLUSTER Ainda no PC que será o nó 1, configure o openMosix. Localize o arquivo /etc/openmosix. map. Nesse arquivo, inclua linhas no seguinte formato:

1 192.168.1.120 1
2 192.168.1.123 1
3 192.168.1.129 1

Salve o arquivo. Na primeira coluna aparece o número seqüencial do nó. Na segunda, vem o número IP da máquina. Em cada coluna, o último número (1) indica a quantidade de máquinas envolvidas. Outra forma de editar o arquivo openmosix.map é incluir tudo em uma única linha:

1 192.168.1.120 5

Aqui, informa-se que há cinco máquinas no cluster, com IPs seqüenciais começando com o número indicado. Abra a janela de terminal (botão direito no desktop, opção Xterm) e dê o comando /usr/mosix/ openmosix status. Ele informa o total de micros configurados. Na última linha, aparece a informação: “Total configured: N”, sendo N o número de máquinas prontas para formar o cluster. Você pode usar o comando restart para reiniciar o openMosix. Esses comandos também podem ser executados nos outros nós.

5. CLUSTER. PARA QUÊ?

Você já tem alguns micros prontos para o cluster. Agora, como atribuir a eles uma tarefa para ser executada conjuntamente? Aqui, surgem algumas dificuldades. Primeiro, o cluster só se justifica na execução de tarefas pesadas, que demandam muito tempo de processamento. Exemplos: a conversão de um vídeo de duas horas de MPEG para AVI, ou vice-versa, ou a renderização de imagens em programas de CAD ou animação 3D. Para essas tarefas, quanto mais CPU melhor. Portanto, programas de escritório comuns não justificam o uso dessa solução.

No cluster, a tarefa é quebrada em pedaços, que são executados em paralelo pelas várias CPUs. Isso é que acelera o processamento. No entanto, nem todo programa pode ser usado nessa operação. Os programas compatíveis ou já são construídos para rodar em cluster ou aceitam a divisão de suas tarefas para esse fim. Entre os aplicativos que vêm no CD do Dynebolic há um que se enquadra nesse segundo caso. Trata-se do Blender, um programa de código aberto para modelagem 3D e animação. O exemplo que demonstra o trabalho de PCs em cluster é pegar um trecho de animação feita no Blender e dele extrair a seqüência correspondente de quadros, em imagens JPG.

6. A TAREFA

Vamos, então, executar esse exemplo. Primeiro, você precisa fazer dois downloads na máquina 1. Um dos downloads é uma animação criada no Blender, compactada no arquivo blacksmith.tgz. Esse arquivo está no endereço ftp://ftp.info.abril.com.br/222-blacksmith.tgz. O outro download (ftp://ftp.info.abril.com.br/222-blender.gz) é um script que vai dividir a carga de trabalho do Blender em vários processos — um para cada nó do cluster. Descompacte o arquivo blacksmith.tgz para o diretório /tmp: botão direito no arquivo, opção Extract To e indique o diretório /tmp. A operação cria a pasta /tmp/blacksmith. Copie para ela o arquivo render.gz e renomeie-o para render. Clique no arquivo com o botão direito e escolha Attributes. Na orelha Permissions, bloco User, ligue a caixa Execute. Isso dá ao usuário a permissão de executar o script. Agora, ainda no diretório blacksmith, crie a pasta rendered. Ela vai receber os arquivos JPG renderizados.

7. O CLUSTER EM AÇÃO

Clique no desktop com o botão direito e escolha Image/ Blender para abrir o programa Blender. Nele, dê o comando File/Open e abra o arquivo /tmp/blacksmith/blacksmith.blend. Agora, na parte inferior da tela, vamos configurar o tipo de imagem que queremos extrair do arquivo .blend. Na caixa Pics, indique o diretório /tmp/blacksmith/rendered, onde as imagens vão ser salvas. Ligue o botão Extensions para que os arquivos recebam extensão. Agora, no botão-menu ao lado do botão Crop, escolha a opção JPG e, por fim, clique no botão PC. Dê o comando File/Save As e salve o arquivo e essas configurações com o nome blacksmith-jpeg.blend. Feche o programa Blender. Tudo está pronto para renderizar as imagens.

Clique com o botão direito no desktop e escolha Xterm para abrir a janela do terminal. Mude para o diretório blacksmith:

cd /tmp/blacksmith

Verifique a configuração do open Mosix com o comando

/usr/mosix/openmosix status

A resposta deve ser “Total configured: N nodes”. N, no caso, é o número de nós prontos para integrar o cluster. Dê, agora, o comando que vai dar início à renderização:

render blacksmith-jpeg.blend 1 235 N

Substitua o N pelo número de máquinas ativas no cluster. Esse comando diz ao script render para gerar 235 imagens usando N máquinas. A tarefa é demorada. Você pode executá-la apenas no primeiro micro, usando 1 no lugar de N. Na janela de comando, aparece a informação: “Job started at: ”. No final, surge “Job ended at: ”. Subtraia os dois momentos para obter o tempo consumido na operação. Aumente o valor de N para incluir mais micros.

Uma forma de verificar se o PC entrou no cluster é observar o medidor de atividade da CPU, no desktop do Dynebolic. Nosso nó 1 foi um Pentium III de 450 MHz. As outras máquinas do cluster: Athlon XP 2200 (2); outro Athlon XP 2200 (3); e um Pentium III de 800 MHz (4). Ligados em rede de 100 Mbps, todos os PCs tinham 256 MB de RAM, exceto o número 2, com 512 MB. Com o primeiro micro sozinho, a operação consumiu 40min35s. Com duas máquinas, 19min10s; com três, 7min45s; e com quatro, 5min30s. Cada novo PC que entra no cluster reduz o tempo de processamento. Os ganhos, no entanto, tendem a ser cada vez menores com a adição de novas CPUs.




PUBLICIDADE


BLOGS
BLOG Microsoft enfrenta Google com Photosynth
Mistura de software com serviço
online permite juntar fotos numa composição 3D

Postado por Maurício Grego, 21/08/08

BLOG Problema sério fecha downloads
do Fedora

Equipe recomenda que não se façam atualizações até a correção de uma falha misteriosa
Postado por Carlos Machado, 21/08/08

BLOG Mergulhe nos gadgets
Edição especial da INFO traz testes
de mais de 300 produtos em mais
de 30 categorias

Postado por Maria Isabel Moreira, 19/08/08


Mídia Kit   |   Fale com a INFO   |   Anuncie

 Copyright © 2008, Editora Abril S.A.- Todos os direitos reservados. All rights reserved.