ESTUDO DE CLUSTERS PARA MODELOS DE PREVISÃO METEOROLÓGICA - PDF
ESTUDO DE CLUSTERS PARA MODELOS DE PREVISÃO METEOROLÓGICA
Download "ESTUDO DE CLUSTERS PARA MODELOS DE PREVISÃO METEOROLÓGICA"
Antônio Aires Arantes
1 ESTUDO DE CLUSTERS PARA MODELOS DE PREVISÃO METEOROLÓGICA Mariane Cechinel Gonçalves Centro Federal de Educação Tecnológica de Santa Catarina CEFET-SC Avenida Mauro Ramos, 950 Angela Paula De Oliveira Centro Federal de Educação Tecnológica de Santa Catarina CEFET-SC Avenida Mauro Ramos, 950 Maria Rita Lua de Quadros Centro Federal de Educação Tecnológica de Santa Catarina CEFET-SC Avenida Mauro Ramos, 950 Mário Francisco Leal De Quadro Centro Federal de Educação Tecnológica de Santa Catarina CEFET-SC Avenida Mauro Ramos, 950 Abstract: A computer cluster is a group of computers connected to each other through fast local area networks that work together. In general, clusters are usually deployed to improve performance. There are many kinds of clusters, among them the Beowulf, which is the most commom, and was chosen to be a base for this research. In view of the great utility of cluster in meteorology and its low cost, the focus of this research is explain its assembly and functioning, being able to be used as base for a deeper study that would result in the assembly of a cluster in CEFET/SC Centro Federal de Educação Tecnológica de Santa Catarina. Resumo: Um cluster é um aglomerado de computadores ligados em rede que funcionam como se fossem um só, com o objetivo de diminuir o tempo para a realização de tarefas que envolvem cálculos matemáticos. Existem vários tipos de cluster, entre eles o Beowulf, que é o mais utilizado, o qual foi escolhido para ser a base deste estudo. Tendo em vista a grande utilidade do cluster na meteorologia e seu baixo custo, o foco desta pesquisa é explicar sua montagem e funcionamento, podendo ser usado como base para um estudo mais aprofundado que resultaria na montagem de um cluster no CEFET/SC Centro Federal de Educação Tecnológica de Santa Catarina.
2 1 INTRODUÇÃO Um cluster é um aglomerado de computadores ligados entre si através de uma rede local, cujo objetivo é compartilhar recursos de processamento e memória, formando um único computador de grande capacidade, podendo até chegar ao nível dos supercomputadores, que são computadores com grandes velocidade de processamento e capacidade de memória e não devem ser confundidos com clusters. Um cluster possibilita que atividades que demorariam muito tempo para serem realizadas sejam concluídas muito mais rapidamente, pois neste sistema, as atividades são divididas entre todos os computadores, sendo para isto utilizado o processamento paralelo ou sistema distribuído. A idéia do processamento paralelo é baseada no fato de que o processo de solucionar um problema pode, geralmente, ser dividido em pequenas tarefas, as quais podem ser feitas simultaneamente com alguma coordenação. O computador no qual os processos foram iniciados distribui entre os outros os processos a serem executados, utilizando ao máximo os recursos disponíveis no conjunto e minimizando o tempo de resposta. Na meteorologia o cluster é utilizado basicamente para rodar modelos de previsão, já que a elaboração da previsão envolve muitos cálculos matemáticos complexos que, sem um cluster, demorariam muito mais tempo para serem feitos. Tendo em vista o baixo custo e a grande utilidade de um cluster, o objetivo desta pesquisa é explicar a montagem e funcionamento de um cluster, podendo ser usado como base para um estudo mais aprofundado que resultaria na montagem de um cluster no CEFET/SC Centro Federal de Educação Tecnológica de Santa Catarina. 2 METODOLOGIA Para a elaboração deste estudo foi feita uma revisão bibliográfica para a obtenção de material de apoio. Foram feitas visitas ao CIRAM Centro de Informações de Recursos Ambientais e Hidrometeorológicos centro que possui
3 um cluster (figura 1) e também à UFSC Universidade Federal de Santa Catarina. Colaboraram para a execução desta pesquisa o Meteorologista Marcelo Moraes do CIRAM e o Físico e pesquisador da UFSC Reinaldo Haas. Figura 1: Cluster do CIRAM, composto por oito nós. 3 EVOLUÇÃO DOS COMPUTADORES 3.1 Primeiras invenções: máquinas de calcular Ao contrário do que se imagina, a história dos computadores começou muito tempo atrás, cerca de a.c., quando o homem descobriu que só com os dedos não dava mais pra fazer cálculos. Para agilizar os cálculos, foi criado nesta mesma época, um aparelho muito simples, o ábaco, formado por uma placa de argila na qual se escreviam os algarismos que auxiliavam nos cálculos. Com a
4 evolução, cerca de 200 a.c., o ábaco era constituído por uma moldura retangular de madeira, varetas paralelas e pedras deslizantes (figura 2). Figura 2: Ábaco, máquina simples para efetuar cálculos, criada a.c. Muito tempo depois, em 1642, o físico, matemático e filósofo francês Blaise Pascal criou uma máquina com seis rodas dentadas, cada uma contendo algarismos de 0 a 9, que permitia efetuar as quatro operações matemáticas com até três parcelas de cada vez, desde que o total não ultrapassasse (figura 3). Esta calculadora funcionou por 200 anos. Figura 3: La Pascaline, máquina de calcular inventada por Pascal. Em 1671, Gottfried Leibnitz inventou uma máquina parecida com a de Pascal, que tornou-se antecessora direta das calculadoras manuais. Em 1802, na
5 França, Joseph Marie Jacquard construiu um tear automatizado, programado por uma série de cartões perfurados, cada qual controlando um movimento da lançadeira (figura 4) Figura 4: Máquina de Leibnitz de 1671 (à esquerda) e tear automático de Jacquard de 1804 (à esquerda). Ainda no século XIX, um cientista inglês chamado Charles Babbage aperfeiçoou as máquinas já existentes, e, utilizando os cartões de Jacquard, criou a máquina diferencial (figura 5), que permitia cálculos com funções trigonométricas e logarítmicas. Em 1834, incrementou sua invenção, o que resultou em uma máquina analítica (figura 5), que executava as quatro operações matemáticas, armazenava dados em uma memória e imprimia resultados. Esta máquina, que só foi concluída após sua morte, tornou-se a base para a estrutura dos computadores atuais, fazendo com que Babbage fosse considerado o Pai do computador.
6 Figura 5: Máquina diferencial de 1822 (à esquerda) e máquina analítica de 1834 (à direita): criações do cientista inglês Charles Babbage. 3.2 A era da computação Em 1890, para apurar os resultados do censo dos EUA, Hermann Hollerith aperfeiçoou os cartões perfurados e aprimorou as máquinas, fazendo com que elas manipulassem os cartões. Como obteve sucesso, em 1896 fundou a TMC (Tabulation Machine Company), a qual mais tarde associou-se com outras duas empresas, formando em 1914, a Computing Tabulation Recording Company, que, em 1924, tornou-se a conhecida IBM (International Business Machines). As inovações para as máquinas existentes eram cada vez melhores. Quando se iniciou a 2 a Guerra Mundial, viu-se a necessidade de projetar máquinas com maior capacidade para a execução de cálculos balísticos com rapidez e precisão, para serem usados da indústria bélica. Para este fim, em 1941 na Alemanha, surgiu o Z3 (figura 6), cuja função era a codificação de mensagens. Como foi destruído em Berlim, não se sabe muitas informações sobre seu funcionamento. Para não ficar atrás, os ingleses desenvolveram, em 1944, o MARK I (figura 6), elaborado na Universidade de Harvard pelo grupo do professor H. Aiken e com ajuda financeira da IBM. O MARK I possuía 15 metros de comprimento, 2,5 de largura e era protegido por uma caixa de vidro e aço inoxidável. Suas principais características eram: Possuía peças, 800 km de fios, 420 interruptores para controle. Realizava uma soma em 0,3 s
7 Realizava uma multiplicação em 0,4 s Realizava uma divisão em cerca de 10 s Figura 6: Z3 (à esquerda), criação dos alemães e MARK I (à direita) criado pelos ingleses: inovações da 2 a Guerra Mundial. 3.3 O cluster A idéia de se montar um cluster começou a ser moldada na década de Porém, sua concepção foi feita por muitas pessoas, sendo praticamente impossível determinar a data do primeiro cluster. A engenharia básica do cluster, fazendo trabalho paralelo, foi desenvolvida por Gene Amdahl, da IBM (International Business Machines, empresa americana voltada para a área da informática). O projeto inicial era construir um sistema capaz de interligar mainframes (grandes computadores que processam grande volume de informações) para conseguir-se um melhor desempenho das máquinas. Para isto era usados os sistemas HASP (Houston Automatic Spooling Priority) e JES (Job Entry System) que possibilitavam a distribuição de tarefas entre os mainframes. Porém, o cluster como o conhecemos hoje, surgiu na década de 1980, quando três conceitos foram incluídos na área da informática: microprocessadores, redes de computadores e computação distribuída. Os microprocessadores controlam e coordenam todas as funções do computador; rede de computadores é um conjunto de dois ou mais computadores ligados entre si que trocam informações e computação distribuída é a capacidade de unir vários computadores para realizarem uma tarefa em comum. Com o avanço da tecnologia, vários programas foram criados para ajudar na performance do cluster até que, a NASA (National Aeronautics and Space
8 Administration) sentiu a necessidade de aumentar a velocidade do seu sistema. Para satisfazer as necessidades computacionais da NASA, os pesquisadores Thomas Sterling e Donald J. Becker começaram a desenvolver, em 1993, um sistema que serviria de alternativa aos supercomputadores. Em 1994 começava o Projeto Beowulf. O protótipo inicial do cluster consistia em 16 computadores, cada um contendo um microprocessador, usando o sistema operacional Linux, ligados em uma rede Ethernet. O primeiro cluster Beowulf foi construído para resolver problemas relacionados com o grande número de dados que freqüentemente envolviam o setor de Ciências da Terra e do Espaço (ESS Earth and Space Sciences, na sigla em inglês) da NASA. Este conjunto atingiu a marca de 70 megaflops, velocidade não muito baixa para a época se comparada aos pequenos supercomputadores comerciais disponíveis. O valor total deste cluster foi de U$ , bem menos que um supercomputador. 3.4 Como funciona Um cluster, como já mencionado, é um sistema de dois ou mais computadores, ou nós, que trabalham de maneira conjunta para realizar processamento pesado. Os computadores dividem as tarefas e trabalham como se fossem um só, tornando possível a realização de processamentos que só supercomputadores seriam capazes de fazer. Este processo de dividir as tarefas chama-se sistema distribuído ou paralelo. A seguir, através do MPI, tem-se um exemplo de distribuição de tarefas em um cluster para calcular o número π (pi): Com 1 nó temos: /usr/local/mpich-1.2.7p1/bin/mpirun -np 1 /home/opera/mpich-1.2.7p1/examples/basic/pi Process 0 of 1 is alive Enter the number of intervals: (0 quits) pi is approximately: Error is:
9 Com 8 nós temos: /usr/local/mpich-1.2.7p1/bin/mpirun -np 8 /home/opera/mpich-1.2.7p1/examples/basic/pi Process 0 of 8 is alive Process 1 of 8 is alive Process 3 of 8 is alive Process 2 of 8 is alive Process 4 of 8 is alive Process 5 of 8 is alive Process 6 of 8 is alive Process 7 of 8 is alive Enter the number of intervals: (0 quits) pi is approximately: Error is: Neste pequeno exemplo, feito por Reinaldo Haas, observou-se que a redução do tempo, quando se utilizou oito nós, foi substancial, porém, não medida. O processo de cálculo acarreta um erro no resultado. Nota-se que este erro aumenta quanto mais nós são acrescentados. Isto ocorre porque o valor encontrado é resultado da interação entre as máquinas, o que aumenta a margem de erro. Os computadores do cluster devem ser interconectados com os outros para formarem uma rede de qualquer topologia (fig 7) e devem possuir o mesmo sistema operacional (ou somente Windows, ou somente Linux, etc), pois cada sistema operacional possui características que, se não compatíveis com as outras, poderiam influenciar no funcionamento do cluster. A rede deve permitir que nós sejam acrescentados ou retirados (em caso de danos), mas sem alterar o desempenho do cluster. É preciso também o emprego de um software que permita a montagem do cluster, que será responsável pela distribuição e processamento. O software precisa trabalhar de forma que erros sejam detectados e reparados sem interromper as atividades do cluster.
10 Figura 7: Topologias (estruturas) de rede. 3.5 Aplicações As áreas da ciência que utilizam clusters são aquelas que necessitam de processamento pesado, como a meteorologia (previsão do tempo e condições climáticas), simulações geotérmicas (ou seja, simulação de eventos no solo), renderização de efeitos especiais (muito usado em filmes), simulações financeiras, distribuição de carga, etc. Os serviços que não podem parar de funcionar ou não podem perder dados podem utilizar um cluster devidamente configurado para não sofrerem falhas graves, podendo utilizar nobreaks (equipamentos que utilizam baterias para gerar energia) ou geradores nos casos de falta de energia, além de meios de manutenção e detecção eficientes de falhas, como já citado. 3.6 Tipos de cluster Neste tópico serão descritos alguns tipos de cluster, bem como suas características e especificações.
11 Beowulf (fig 8): foi criado em 1994 pela NASA, a fim de processar informações espaciais que a agência recolhia. Desde então, empresas como HP e IBM e universidade estão implantando clusters deste tipo com cada vez mais nós. Figura 3: Esquema simples de um cluster Beowulf. Este tipo de cluster distingue-se dos outros pelas seguintes características: - A conexão dos nós pode ser feita por redes do tipo Ethernet (mais comum); - Existe um servidor responsável para controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento (pode haver mais de um servidor, dedicado a tarefas específicas, como monitoração de falhas). Este servidor é chamado de Front-end; - O sistema operacional é baseado Linux, sendo necessário que ele contenha todos os programas para cluster;
12 - Podem-se usar computadores comuns, inclusive modelos considerados obsoletos; - Não é necessário usar equipamentos próprios para clusters. Basta equipamentos comuns a redes e os tradicionais PCs (Personal Computer Computador Pessoal), o que faz este tipo de cluster ser o mais utilizado. O cluster Beowulf permite o processamento que pode realizar altos valores de gigaflops (um gigaflop equivale a 1 milhão de instruções por segundo) em operações. Além de poder utilizar um sistema operacional gratuito, este tipo de cluster pode ser aprimorado de acordo com sua finalidade, fazendo com que seja aplicado para vários fins. Atualmente, 28 das 500 máquinas mais rápidas que existem são clusters Beowulf (o mais rápido atinge 237 gigaflops). Cluster para Alta Disponibilidade: são utilizados em áreas que quase não param de funcionar e, geralmente, possuem meios eficientes de proteção e detecção de falhas. Cluster para Balanceamento de Carga: refere-se à distribuição de processamento aos nós do cluster, sendo utilizado na Internet, em servidores de , comércio eletrônico e em sistemas de lojas. Este tipo de cluster necessita de monitoramento constante da comunicação, pois qualquer falha poderá interromper o funcionamento do cluster. Cluster Combo: combina as características dos clusters de alta disponibilidade e de balanceamento de carga. Cluster MOSIX (Multicomputer Operating System for Unix): é um cluster utilizado para Linux, voltado para o Balanceamento de Carga e não necessita da utilização de softwares voltados para o cluster.
13 3.7 Curiosidades e informações adicionais A palavra cluster vêm do inglês grupo e é utilizada na informática para designar um grupo de computadores. Beowulf é o nome de um poema épico escrito em inglês antigo entre d.c. O poema narra a história de um herói que viaja à corte do rei Hrothgar para o livrar do demônio Grendel. O herói vence o demônio utilizando somente as mãos. A mãe de Grendel quer vingar a morte do filho, matando muitas pessoas. Beowulf segue seu rastro onde luta e vence. A história continua e no final, encontra-se Beowulf idoso e rei de seu país. Um dragão libertado por um servo que roubara a taça do seu tesouro é o novo adversário de Beowulf, que só o vence à custo da sua vida. O poema termina com o funeral do rei e herói. O cluster mais rápido do mundo é o BlueGene/L, com capacidade de 360 teraflops. Foi desenvolvido pela IBM Watson Research Center, está localizado no Lawrence Livermore National Laboratory, e é utilizado para simulações científicas. O BlueGene/L possui memória total de GigaBytes, consome 1.5 megawatts e ocupa uma área de aproximadamente 760m². O sistema completo tem nós. Megaflops é a realização de um milhão de operações por segundo. O primeiro cluster tinha a capacidade de 70 megaflops, ou seja, realizava 70 milhões de operações por segundo. Gigaflops equivale a um bilhão de instruções por segundo. Teraflops é a realização de um trilhão de operações por segundo (10 9 ). 4 Montagem e instalação do cluster Para se montar um cluster são necessários os equipamentos de uma rede de computadores, como PCs, placas de rede, cabos, switch (dispositivos que encaminham quadros entre os nós), monitor (um só basta, para o usuário poder acessar as informações do nó principal e, a partir deste, acessar os outros nós do cluster), processadores e softwares.
14 O ambiente no qual se instalará o cluster deve ser refrigerado, pois o cluster fica sempre ligado e gera certo aquecimento, que deve ser controlado. Além disso, é preciso instalar o mesmo sistema operacional em todos os nós, para que não haja incompatibilidade no sistema. Os programas a serem instalados para que o cluster funcione, são os que possibilitam a distribuição das tarefas, como MPI, MPICH, SSH, RSH, RIS entre outros. O MPI (Message-passing Interface) é uma linguagem utilizada para programar computadores paralelos. O MPICH é uma implementação do MPI que possui um ambiente de programação e inclui um sistema para a análise de desempenho de programas MPI. Para utilizar este software é necessário que se faça a instalação do ambiente Java, visto que o MPICH fornece ferramentas visuais para a análise da execução de programas paralelos que são construídas em Java. O programa que descreve a instalação do MPICH1 está no anexo 1. O SSH (Secure Shell) é um pacote de programas para logar em outro computador através de uma rede, bem como para executar comandos em outra máquina e para remover arquivos de um computador para outro. É um programa seguro, que protege o usuário de hackers que roubam senhas e arquivos. A instalação segue no anexo 2. O NIS (Network Information Service) foi elaborado pela Sun Microsystems para fazer distribuição de informações em uma rede. 5 CONCLUSÃO Para a montagem física do cluster, é necessário um estudo mais aprofundado da parte de introdução de montagem e manutenção de computadores, porém antes é necessário a parte introdutória que encontra-se neste projeto sendo a mesma a parte de histórico, pesquisa bibliográfica, visita em centros para obtenção de informação quanto ao funcionamento. Conclui-se, então, que para a montagem do cluster é preciso a intercomunicação entre o nó mestre e
15 os nós posteriores trabalhando em conjunto na mesma linguagem ou software, com o objetivo de realizar tarefas em um período menor de tempo, facilitando atividades como rodar os modelos que compõem a previsão do tempo. 6 AGRADECIMENTOS Ao Meteorologista da EPAGRI/CIRAM, Marcelo Moraes, que auxiliou a pesquisa mostrando o cluster da empresa e mostrando seu funcionamento. Ao Físico e pesquisador da UFSC, Reinaldo Haas, que mostrou a programação e softwares necessários para a montagem de um cluster. REFERÊNCIAS A evolução da informática no mundo, disponível em: ALECRIM, Emerson, Cluster: principais conceitos, disponível em: BARBIERI, Gustavo S., SSH, disponível em: BRAGA, Ataualpa A.C. Aspectos técnicos envolvidos na construção de um cluster Beowulf, disponível em: Cluster, disponível em: História do computador, disponível em: Joseph Marie Jacquard, disponível em: MERKEY, Phill. Beowulf history, disponível em: Message-passing interface, disponível em:
16 NG, Paulino, O que é o SSH?, disponível em: Nobreaks, disponível em: O que é um microprocessador?, disponível em: Projeto cluster, disponível em: Top500 Supercomputers Site, disponível em:
17 ANEXO 1 Instalação do MPICH Faça o download do arquivo de instalação do MPICH1 para o diretório /tmp. Agora, descompacte o arquivo conforme mostrado a seguir: % cd /tmp % tar xvfz mpich.tar.gz Após a execução acima, observe que será criada uma pasta chamada /tmp/mpich Antes de usar o mpich é preciso configurá-lo e compilá-lo. O processo de configuraçăo analisa o sistema aonde o mpich será instalado e determina as configuraçőes a serem realizadas. Diretório de Instalaçăo Escolha o diretório de instalaçăo: /home/usuario/mpich Configurando 1 Execute o comando de configuraçăo conforme mostrado abaixo. 2 Por default, o MPICH versão 1 efetua comunicação por meio do uso de RSH. Para alterar para SSH, é preciso informar o parâmetro -rsh=ssh. 3 Também é preciso configurar o SSH para não solicitar senha. Tal configuração pode ser feita conforme mostrado na seção SSH sem Senha mais adiante neste documento. % cd /tmp/mpich %./configure prefix=/home/usuário/mpich rsh=ssh Verifique se houve algum erro no processo anterior. Se sim, voçê deverá solucioná-lo antes de prosseguir. Compilando Compile o mpich com o comando a seguir: % make A compilaçăo será mais ou menos demorada dependendo da capacidade de processamento de sua máquina.
18 Instalando Instale o mpich com o comando abaixo: % make install O passo acima irá instalar o mpich no diretório especificado em --prefix no passo de configuraçăo. A instalaçăo consistirá na inclusăo dos diretórios include, lib, bin, sbin, www, man e examples. Se for necessário remover a instalaçăo, basta apenas executar o comando sbin/mpiuninstall.
19 ANEXO 2 Instalação do SSH O ssh possui a home-page Através dela pode-se chegar a diversos repositórios para copiar o pacote. A versão mais atual é a Esta versão foi instalada no NA-SP em maquinas Solaris 2.4, AIX e Linux- Slackware 3.2 com service pack 2 aplicado. A compilação não apresentou nenhum problema utilizando o gcc /2. A seguir são dadas algumas sugestões de configurações e uso do ssh. Nas estações AIX e Solaris é interessante utilizar o comando:./configure with-rsh=/usr/bin/rsh Para configurar a compilação do pacote. Esta opção permitirá ao ssh encontrar o rsh que será utilizado quando não houver um servidor sshd funcionando no host contactado. Nesse caso, os comandos s (seguros) passam a usar os comandos r (remotamente seguros), alem de instalar no diretório /usr/local/bin links simbólicos rsh, rlogin e rcp para ssh, slogin e scp, respectivamente. Os comandos "make" e "make install" não apresentaram maiores dificuldades para instalar o pacote na maquina utilizada para a compilação. Nas outras maquinas que compartilham o codigo, não é necessario fazer um "make install", mas é necessário executar o comando "make hostinstall" para cada maquina que use o código compartilhado. O "make hostinstall" instala os arquivos de configuração de default no diretório /etc (ssh_config e sshd_config) e gera o par de chaves publica/privada para a estação. As chaves das estações são geradas sem nenhuma frase-senha, observe que estas chaves são diferentes das chaves do "root" da estação (veja geração de chaves pessoais com o ssh-keygen).
Administração de Sistemas de Armazenamento Linux. Rodrigo Caetano Filgueira
Administração de Sistemas de Armazenamento Linux Rodrigo Caetano Filgueira Tipos de cluster Cluster para Alta Disponibilidade (High Availability) - Proteção e de detecção de falhas. Cluster para Balanceamento
Manual de Acesso ao Sistema e Guia de Utilização do Sun Grid Engine (SGE)
Manual de Acesso ao Sistema e Guia de Utilização do Sun Grid Engine (SGE) Meira & Fernandez Centro Nacional de Supercomputação 10 de Dezembro de 2014 1 Acesso Remoto ao Sistema Para acesso externo ao cluster