Вы находитесь на странице: 1из 6

Cluster: Computao de Alto Desempenho

Hilrio Viana Bacellar


Instituto de Computao, Universidade Estadual de Campinas Av. Albert Einstein 1251, Cidade Universitria, CEP 13083-970 Campinas, SP, Brasil

hvbacellar@gmail.com RESUMO
Este artigo apresenta um estudo sobre a computao de alto desempenho de sistemas fracamente acoplados clusters. Apresenta a arquitetura comum utilizada na construo de clusters de computadores, tambm apresenta solues de cluster de software livre, sendo um paralelo e outro que funciona por migrao de tarefas, assim como as bibliotecas de comunicao paralela, por fim apresenta as vantagens e desvantagens da computao de alto desempenho cluster. quantidade de carga que passa a ser processada de maneira independente, limitando a troca de informao entre os ns dos clusters. O objetivo geral desse artigo fazer um levantamento sobre os tipos de clusters de alto desempenho, e listar as vantagens e desvantagens dessa arquitetura. Para apresentar as vantagens e desvantagens dos clusters o artigo est organizado da seguinte forma: capitulo 2, fundamentao terica, neste capitulo abordado os principais componentes de um cluster de alto desempenho. No capitulo 3 apresentada a arquitetura de clusters de computadores .No capitulo 4 so apresentados os tipos mais comuns de clusters de alto desempenho. No capitulo 5 so escritos as consideraes finais sobre os cluster de computadores abordado nesse artigo.

Palavras-chave
Cluster; Beowulf; OpenMosix; MPI; PVM.

1. INTRODUO
Atualmente pode-se observar um grande numero de aplicaes que exigem cada vez mais uma grande quantidade de processamento de dados, aplicaes de mapeamento gentico, computao grfica, previses metrolgicas e at mesmo programas que exigem um grande numero de variveis de entrada. Para solucionar essa demanda por poder computacional foram criados os supercomputadores Os supercomputadores que so sistemas fortemente acoplados possuem um custo elevado e, portanto no usual a sua implementao em termos de custo. Uma alternativa vivel para essa demanda a utilizao de cluster, tambm conhecido como sistema fracamente acoplado. Os clusters de computadores processam as tarefas paralelas de forma transparente, ou seja, aparentando ser um nico sistema para o usurio. Para a implementao de um cluster, deve-se levar em considerao a aplicao que ser executada, haja vista que, em problemas de granulosidade fina, o cluster no to eficiente quanto a um supercomputador, entretanto, para os problemas de granulosidade grossa, o cluster se mostra to eficiente quanto um supercomputador. Conforme explica Kalinka Regina, ao se tratar de problemas de granulosidade fina a aplicao de cluster no se mostra to eficiente, devido necessidade de troca de informaes dos ns com o n mestre. Essa atividade causa alto trfego na rede, e isso interfere diretamente no tempo de execuo das tarefas, logo o cluster perde sua finalidade que ganhar tempo com o paralelismo das tarefas [2]. Para o problema de granulosidade grossa, que exige um nmero considervel de processamento, a soluo via cluster torna-se uma alternativa vivel, uma vez que, cada n recebe uma grande

Figura 1 - Granulosidade

2. FUNDAMENTAO TEORICA
Na fundamentao terica so apresentados conceitos tcnicos e tericos para o entendimento sobre os clusters de computadores.

2.1 Sistemas Operacionais


A principal funo de um sistema operacional controlar o funcionamento de um computador, gerenciar a utilizao e o compartilhamento dos seus diversos recursos como processadores, memrias e dispositivos de entrada e sada [1].

Em clusters o sistema operacional o principal sistema, e atravs dele o sistema deve garantir o funcionamento primordial das seguintes tarefas: Controle de recursos: Nessa tarefa o sistema operacional realiza um controle de entrada e sada de cada n do cluster envolvido na realizao da tarefa, e assim, garantir a consistncia dos dados executados. Monitorao: Tarefa responsvel por verificar a disponibilidade de cada n do cluster, assim como a quantidade de carga que cada n poder receber. Contabilidade: Essa tarefa funciona como um medidor de desempenho do cluster seja ela, para calcular custos da operao ou at mesmo medir desempenho. Consulta. Nesta tarefa o sistema operacional armazena em fila de prioridades todos os processos que sero executados, levando em considerao as tarefas executadas por diferentes nveis de usurios. Planificao: Funciona como um planejador, e atravs dele que o sistema operacional organiza da melhor maneira quais tarefas sero distribudas entre os ns do cluster.

Memria Virtual (Swap): Memria utilizada para gerenciar o uso de programas que exijam mais memria do que a RAM possa fornecer. Atravs da memria virtual, alocada uma rea em disco e assim evitar que programas travem por falta de recursos.

2.2.2 Transmisso de dados


Em clusters, a transmisso de dados o principal gargalo, nas operaes. Isso ocorre devido latncia que h nas informaes que so trocadas entre os ns. Hoje o principal meio de comunicao de dados a rede, sendo composta por meios fsicos e mecanismos de controle para o transporte, alem de uma poltica de sincronizao de dados. Na seqncia so apresentadas algumas das principais tecnologias de redes existentes usadas em clusters:

Ethernet: Existem dois tipos de Etertnet, a Fast Ethernet e a Gibabit Ethernet, a mais utilizada em clusters ainda a Fast que tem velocidade entre 10 Mbps e 100 Mbps, porm com uma rede Gigabit a velocidade pode chegar a casa dos 1 Gbps Myrinet: rede de alta velocidade, sua velocidade pode chegar faixa de 2,4 Gbps, seu funcionamento se deve atravs de interruptores no qual so traadas as rotas de transmisso de dados [7]. cLan: rede apropriada para os clusters, seu funcionamento assim como o Myrinet tambm se deve atravs de interruptores, alcana a faixa de 2,5 Gbps, entretanto, com a falta de especificaes e documentaes apropriadas fazem com que esse tipo de rede no seja usadas freqentemente.

2.2

Hardware

Atualmente existem muitas implementaes de clusters no mercado, isso ocorre devido grande variedade de opes de arquitetura que um cluster de alto desempenho pode proporcionar. Na parte de hardware clusters pode ser divido em duas partes principais, execuo e transmisso de dados.

2.2.1 Execuo
Execuo ou processamento de dados realizado por computadores usuais, usadas para operaes domesticas. Como podemos destacar o cluster um aglomerado de computadores que funciona de forma distribuda. Os recursos que influenciam no desempenho desses computadores so: Processador: Responsvel pelo processamento de dados, atualmente so desenvolvidos processadores de mltiplos ncleos, tornando-o, a tarefa mais paralelizvel possvel. O destaque para os processadores so sua memrias cachs cada vez maiores. Memria RAM: Tambm denominada como memria principal, so responsveis por armazenar os dados dos programas que esto em execuo, so memrias voltil e de rpido acesso se comparada ao disco. Placa Me: Principal item do computador, nela contem todos os chips e ligaes entre os componentes de um computador. O barramento de uma placa me a principal via de comunicao entre memria, disco e processador. Disco rgido: Armazena os dados dos programas de maneira permanente, uma memria no voltil, o acesso lento, porm a memria que possui maior capacidade de armazenamento.

2.3

Bibliotecas de comunicao

As bibliotecas de comunicao paralela so responsveis pela comunicao entre os ns do cluster. Cada tipo de biblioteca de comunicao tem suas particularidades, ou seja, elas implementam de maneiras diferentes as solues para os problemas de comunicao paralela. Atualmente existem duas bibliotecas que se destacam, PVM (Parallel Virtual Machine) e o MPI (Message Passing Interface).

2.3.1 PVM
O PVM uma biblioteca de comunicao que emula computao concorrente heterognea de propsitos gerais em computadores interconectados, no qual pode se trabalhar com diversas arquiteturas. A idia do PVM montar uma mquina virtual de n processadores e us-los para enviar tarefas e receber os resultados, de maneira cooperativa. Tudo isso realizado de modo simplificado, utilizando apenas rotinas bsicas, enviando e recebendo mensagens.

2.3.2 MPI
O surgimento do MPI teve como objetivo padronizar a troca de mensagem em ambientes paralelos de memria distribuda. Alm da padronizao, o MPI tambm procura otimizar a comunicao e aumentar o desempenho de aplicaes paralelas ou distribudas. O MPI surgiu da necessidade de se resolver alguns problemas relacionados portabilidade existentes entre as diferentes plataformas e caractersticas peculiares de algumas arquiteturas paralelas [2].

Figura 3 - Arquitetura de cluster com um n controlador Sistemas de computao em cluster tornaram-se populares quando a razo preo/desempenho de computadores pessoais e estaes de trabalho melhorou [3]. Outra razo para o surgimento e rpida aceitao de sistemas em cluster foi maior necessidade de tolerncia a falhas e a alta disponibilidade [1]. Os clusters fornecem desempenho e tolerncia a falhas, no encontrados em qualquer sistema com multiprocessamento simtrico [5]. Figura 2 Estrutura MPI A eficincia e a generalidade do MPI so garantidas por meio da disponibilidade de diversas implementaes para uma mesma funcionalidade. Por exemplo, para o envio de mensagens h funes que implementam comunicao ponto a ponto e coletiva. Uma das grandes vantagens, do ponto de vista da engenharia de programas, que MPI suporta programao modular. Por meio desse conceito, o comunicador capaz de identificar um grupo de processos, no qual uma determinada operao deve ser efetuada.

3.1 Desempenho
Aumentar o desempenho um dos principais objetivos de clusters de computadores, entende-se desempenho como carga ou tempo de execuo de tarefas. Os clusters exploram explicitamente o paralelismo como principal ferramenta, e para comprovar ganhos existem mtricas que so utilizadas a fim de estruturar uma melhor soluo para os problemas paralelizados. O Speedup ou Acelerao (Sp) uma mtrica usada para medir o desempenho de uma aplicao paralela. definida pela razo do tempo gasto para a execuo seqencial (Ts) e o tempo gasto da execuo paralela em p processadores idnticos (Tp), ou seja, Sp = Ts/Tp [2]. A Eficincia uma medida que mostra quanto da potncia computacional disponvel que foi utilizada no processamento. apresentada como a razo entre a Acelerao e o nmero de processadores, logo Ef = Sp/p.

3. ARQUITEURA CLUSTER
Cluster um sistema distribudo de computadores independentes e interligados, cujo o objetivo suprir a necessidade de um grande poder computacional com um conjunto de computadores de forma transparente ao usurio. Conforme apresentado no capitulo 2, o cluster possui trs condies primordiais pra o seu devido funcionamento, Sistema Operacional, Hardware e biblioteca de comunicao. Na figura 3 descrito um ambiente cluster com um n controlador e cinco ns escravos, todos eles conectados a um hub.

Tabela 1 Acelerao e eficincia Caso Ideal Real Excepcional Acelerao (Sp) =p <p >p Eficincia (Ef) =1 <1 >1

3.2 Vantagens
A utilizao de clusters de computadores tem inmeras vantagens, abaixo segue as principais levantadas:

Expansibilidade: A utilizao de clusters de computadores deixa o sistema computacional facilmente expansvel, uma vez que, para aumentar o poder de processamento, basta apenas incluir um novo no ao cluster. Baixo custo: Como os clusters de computadores podem ser configurados e utilizados por computadores convencionais, o custo no fica limitado a apenas um nico fornecedor, dessa forma clusters de computadores so bem mais econmicos que sistemas especficos. Alta disponibilidade: Um n que est desativado no prejudica o sistema como um todo, levando em considerao que tambm, para a manuteno no necessrio tirar cluster inteiro de funcionamento, apenas o n com problemas Tolerncia a falhas: Como os clusters de computadores funcionam de maneira paralela e distribuda, caso uma n venha a falhar, possvel que os dados das operaes no se percam totalmente, pois h a possibilidade de redirecionamento da carga de processamento para outro n que esteja ativo. Balanceamento de carga: Cluster de computadores tambm podem ser formados de forma heterogneas ( com maquinas de configuraes diferentes), sendo assim possvel realizar o balanceamento de carga para as mquinas com maior e menor processamento para executar tarefas distintas.

4. TIPOS DE CLUSTERS
O cluster estudado nesse artigo o de alto poder de processamento, que tem como foco aumentar o desempenho das aplicaes, particularmente s de grandes tarefas computacionais. Uma grande tarefa computacional pode ser dividida em pequenas tarefas que so distribudas entre as estaes, como se fosse um supercomputador paralelo. O cluster de processamento paralelo muito usado para computao cientfica ou anlises financeiras, tarefas tpicas para exigncia de alto poder de processamento.

4.1 Beowulf
O cluster Beowulf nasceu em 1994, idealizado pelos pesquisadores da NASA Thomas Sterling e Donald J. Becker, e voltado computao paralela, com a finalidade de processar as informaes espaciais que a entidade recolhia. O que motivou a criao do cluster Beowulf foi a necessidade de processamento dessas informaes espaciais na ordem de gigaflops , e um supercomputador com esse desempenho custava em torno de um milho de dlares. O cluster Beowulf, diferente de outros tipos empresariais e mais especficos, no exige uma arquitetura especfica to pouco mquinas homogneas. Alm disso, deve satisfazer as seguintes premissas para ser considerado um cluster dessa classe: Conexo entre os ns, que pode ser feita por meio de ethernet. Deve haver um ou mais ns mestres (front-end) para realizar o controle dos ns escravos (back-end). O sistema operacional deve ser baseado em cdigo aberto, sendo que o mesmo deve conter todas as ferramentas necessrias para a configurao do cluster.

3.3 Desvantagens
Como toda tecnologia, clusters de computadores tambm possuem desvantagens e cabe ao pesquisador ou projetista fazer o levantamento de prs e contras na hora de implementar um sistema desse tipo, abaixo segue as principais desvantagens levantadas: Manuteno de equipamento: Por o cluster ser facilmente expansvel, o sistema computacional pode se tornar muito grande, e a manuteno do sistema pode se tornar uma tarefa imensamente grande pois cada mquina em um clusters devem ter todos os seus componentes em perfeito estado de funcionamento. Monitorao dos ns: Monitorar as informaes trocadas em cada n pode ser um problema dependendo como foi configurado o cluster, levando em considerao a expansibilidade do cluster. Gargalos de troca de informaes: Como a comunicao de clusters de computadores ocorrerem por uma tecnologia de rede, a troca de informao se transforma no principal gargalo, uma vez que a transmisso de rede bem lenta se comparada troca de informao com um barramento de um sistema de memria compartilhada, entretanto, possivel realizar ajustes de granulosidade para diminuir esse problema.

necessrio que haja um n mestre (servidor) que realiza toda a distribuio das tarefas e o monitoramento do desempenho do cluster. Este front-end responsvel pelo monitoramento das falhas que possivelmente podem ocorrer e o direcionamento da carga de processamento, caso haja alguma indisponibilidade.

Figura 4 Esquema de um cluster Beowulf

4.2 OpenMosix
Os clusters OpenMosix trabalham com distribuio de processos, que ao detectar o alto volume de processamento, migram as instncias entre as mquinas do cluster, sendo processadas simultaneamente, sem a necessidade de adequao do cdigo. A principal diferena essa, ao invs de quebrar os processos como em clusters Beowulf, o Mosix realiza esta migrao. A migrao de processos permite que um usurio inicie uma aplicao em qualquer n (denominado n nativo), e se mover transparentemente para outros ns a fim de, por exemplo, fazer uso eficiente de recursos, [3]. Caso possua trs micros homogneos, ao abrir uma instncia de programa, aps o OpenMosix atuar, cada um ficaria com uma instncia e a tarefa total seria concluda em pouco mais de um tero do tempo original. Mas o que torna ele pouco flexvel quando o desejo executar uma nica tarefa ou instncia do programa, pois para agilizar esta tarefa ele move a mesma para um n mais rpido e no a divide. Aps detectar a ociosidade de um dos ns do cluster, por meio de troca de informaes de carga a instncia do processo todo migrada para a mquina do cluster. Apesar de o sistema possuir uma das maiores bases de usurios dentre todos os gerenciadores, os responsveis pelo projeto anunciaram que descontinuaram suas atividades e o projeto em maro de 2008 [4]. Figura 5 Arquitetura Microwulf

6. CONCLUSO
Os clusters de computadores possuem inmeras vantagens, porm como todo sistema computacional, tambm possui desvantagens, cabe ao projetista analisar as opes e escolher a melhor tecnologia para resolver sua tarefa da melhor forma possvel. Com o baixo custo de implementao clusters de computadores atualmente so usados com bastante freqncia nos mundos acadmico e empresarial devido a sua grande aplicabilidade em diversas reas cientificas e tecnolgicas. Tambm importante destacar que os cluster de computadores no so bons para resolver problemas que exijam constante troca de informaes, pois o tempo, limita-se pela tecnologia de rede, entretanto, o programador pode aumentar a carga e assim diminuir a troca de informao entre os ns, diminuindo assim necessidade de troca de informaes reduzindo o tempo de espera. A disponibilidade dos servios e tolerncia a falhas e escalabilidade tambm so vantagens presentes em cluster de computadores, uma vez que, sistemas em cluster so formados por micros subsistemas independentes.

5. TRABALHOS CORRELATOS
Nesta seo so apresentados trabalhos acadmicos com foco em pode de processamentos desenvolvidos com cluster de computadores.

5.1 Multipinguim
No trabalho realizado por Marcos Pitanga [5], o cluster Multipinguim usado para a computao paralela constitudo por um computador mestre e sete computadores escravos interligados por uma rede local de alto desempenho. O computador mestre responsvel por distribuir as tarefas entre os computadores escravos que realizam o processamento. O projeto uma implementao de cluster do tipo Beowulf, cujo objetivo criar um supercomputador acessvel a laboratrios de pesquisa e instituies de ensino superior.

7. REFERENCIAS
[1] MACHADO, Francis Berenger. MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 4 ed. Editora LTC, So Paulo, 2007. [2] JAQUIE, Kalinka Regina Lucas. Extenso da Ferramenta de Apoio Programao Paralela (F.A.P.P.) para ambientes paralelos virtuais. Disponvel em: <http://www.teses.usp.br/teses/disponiveis/55/55134/tde08022001-095456/>, visitado em: 23 de mai.2010. [3] TANENBAUN, Andrew S. Sistemas Distribudos: Princpios e Paradigmas. 2 ed. Editora Pearson Prentice Hall, So Paulo, 2007 [4] Site Oficial OPENMOSIX.ORG. Disponvel em: <http://openmosix.sourceforge.net/>, visitado em: 25 de mai.2010. [5] PITANGA, Marcos. Construindo supercomputadores com Linux. 2 ed. Editora Brasport. Rio de Janeiro, 2004.

5.2 Microwulf
O professor americano Joel Adams e o estudante Tim Brom da Faculdade Calvin em Michigan (Estados Unidos) desenvolveram um projeto de pesquisa chamado Microwulf [6]. O objetivo do projeto era atingir a menor relao custo/benefcio de cluster de alta performance porttil, visando quebrar a barreira dos 100 dlares por gigaflop. Ao final do projeto com um custo de 2570 dlares o supermicro computador alcanou a marca de 26,25 gigaflops.

[6] ADAMS, Joel. BROM Tim. Layton Jeff. Microwulf: Breaking the $100/GFLOP Barrier. Disponvel em: <http://www.clustermonkey.net//content/view/211/1/>, visitado em: 30 de mai.2010.

[7] Site Myrinet. Disponvel em: <http://www.myri.com/myrinet/overview/>, visitado em: 29 de mai.2010.