Felipe Maciel Pereira. Estudo de Performance em um Cluster OpenMosix

Tamanho: px
Começar a partir da página:

Download "Felipe Maciel Pereira. Estudo de Performance em um Cluster OpenMosix"

Transcrição

1

2 Felipe Maciel Pereira Estudo de Performance em um Cluster OpenMosix Fortaleza - Ceará Dezembro de 2010

3 Felipe Maciel Pereira Estudo de Performance em um Cluster OpenMosix Faculdade Lourenço Filho Fortaleza - Ceará Dezembro de 2010

4 Monografia sob o titulo Estudo de Performance em um Cluster OpenMosix, apresentada por Felipe Maciel Pereira e aprovada em 17 de Dezembro de 2010, em Fortaleza, Estado do Ceará, pela banca examinadora constituida por: MSC. João Frederico Roldan Viana Faculdade Lourenço Filho Prof. Dr. Valdísio Viana Faculdade Lourenço Filho Prof. Dr. Antonio Luiz de Oliveira Barreto Faculdade Lourenço Filho

5 Monografia sob o titulo Estudo de Performance em um Cluster OpenMosix, apresentada por Felipe Maciel Pereira e aprovada em 17 de Dezembro de 2010, em Fortaleza, Estado do Ceará, pela banca examinadora constituida por: MSC. João Frederico Roldan Viana Faculdade Lourenço Filho Prof. Dr. Valdísio Viana Faculdade Lourenço Filho Prof. Dr. Antonio Luiz de Oliveira Barreto Faculdade Lourenço Filho

6 Agradecimentos Agradeço aos meus pais, minha família e a todos aqueles que direta ou indiretamente me ajudaram na elaboração dessa monografia. A todos meus professores, em especial a Valdisio Viana e Luiz Barreto por terem aceitado meu convite para participarem da banca e ao professor Antônio Clécio por ter sido um dos idealizadores desse curso. Ao professor Frederico Viana pela valiosa orientação nesse trabalho. Ao Professor Hélio Moura pelo seu auxílio na escolha do tema desse trabalho.

7 Resumo Nesta monografia foi estudado, através de um estudo de caso, um cluster de computadores. Com o uso de ferramentas de software livre como o OpenMosix, e computadores considerados padrão de mercado, foi criado um sistema que aumenta o poder de processamento de uma aplicação de renderização de imagens. Os resultados obtidos foram analisados e comparados entre si conforme o número de nós do sistema ia aumentando. O objetivo desse procedimento foi estudar o comportamento e a viabilidade de um cluster de computadores. Palavras Chaves: cluster, openmosix, performance.

8 Abstract In this monograph was studied through a case study, a cluster of computers. With the use of free software tools as OpenMosix, and computers that are considered industry standard, was created a system that increases the processing power of an image rendering aplication. The results were analyzed and compared as the number of nodes in the system was growing. The objective of this procedure was to study the behavior and viability of a cluster of computers. Keywords: cluster, openmosix, performance.

9 Sumário Lista de Figuras 9 INTRODUÇÃO 10 1 CLUSTERS Histórico Clusters x Supercomputadores Conceitos Tipos de Clusters Alta Disponibilidade Balanceamento de Carga Alto Desempenho O Projeto Beowulf Definição Finalidades e Características do Projeto Limitações Impostas pelo Hardware Limitações Impostas pelo Software Conclusões Outros Projetos de Clusters Cluster BW10 da Petrobrás Cluster Blue Gene/L da IBM CLUSTERS DE ALTO DESEMPENHO 24

10 2.1 Conceitos Componentes Hardware Software Redes Cluster OpenMosix Histórico Funcionamento Aplicabilidade ESTUDO DE CASO OPENMOSIX Componentes Hardware Software Procedimento Inicialização do Sistema Criação do Arquivo para Renderização Execuçao do Arquivo de Lote Resultados Primeiro Teste: 10 Processos Segundo Teste: 20 Processos Terceiro Teste: 40 Processos CONCLUSÃO 44 Referências 46 Apêndice 48

11 Lista de Figuras 1 Exemplo de uma topologia para um cluster Cluster da NASA no estilo Beowulf Cluster Blue Gene/L da IBM Estado Inicial do OpenMosixview Estado Inicial do OpenMosixMigMon Código Fonte da Renderização Imagem Renderizada Arquivo de Lote OpenMosixView comapenasumnó ativo Estado intermediário do OpenMosixView Tabela Comparativa para 10 Processos Gráfico Comparativo para 10 Processos Tabela Comparativa para 20 Processos Gráfico Comparativo para 20 Processos Tabela Comparativa para 40 Processos Gráfico Comparativo para 40 Processos

12 INTRODUÇÃO Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham interligados através de uma rede de alta velocidade de maneira que sejam realizadas tarefas determinadas. Dentre os seus benefícios, podem-se destacar o aumento de performance, onde o processamento é distribuído entre os computadores para que cada um realize apenas uma parte, fazendo com que o sistema funcione como um único computador de maior porte. E o aumento da disponibilidade, onde o mal funcionamento de um deles não representaria problema, pois um outro assumiria o lugar sem afetar o sistema, tornando-o assim estável e confiável.(vogels et al., 1998) Motivado pelo grande interesse na área de redes de computadores e pela vontade de implementar novas possibilidades de ganho de desempenho em computadores de médio porte foi escrito esse trabalho que será baseado no uso de clusters para o aumento de performance, qualidade essa, fundamental na computação pois na grande maioria das vezes se busca o ganho de velocidade e redução do tempo de resposta. O objetivo desse trabalho é analisar a performance de um cluster conforme o mesmo for ganhando novos nós. O intuito dessa análise é verificar a viabilidade do cluster eem quais tipos de aplicações ele tem um melhor desempenho. Essa monografia está dividida em três capítulos. O primeiro capítuloabordaoassuntoclusters de uma forma geral, trazendo informações necessárias para o acompanhamento dessa monografia. Inicialmente éexposto um breve histórico com a apresentação das metas e motivações dos cientistas na criação dos primeiros clusters, logo depois são mostrados quais os conceitos básicos, como é o funcionamento, quais os tipos existentes e suas respectivas características e por fim alguns projetos de clusters previamente implementados, com um enfoque especial no Projeto Beowulf. A segundo capítulo aborda, em específico e de forma detalhada, um cluster de alto desempenho, quais seus conceitos e componentes. Depois é apresentado o cluster Open- Mosix quefoiotipoescolhidoparaaimplementação, como é seu funcionamento e quais suas vantagens e desvantagens.

13 11 No terceiro capítulo é apresentado como foi feita a implementação, como o OpenMosix usa técnicas de clusters de alto desempenho visando diminuir o tempo de resposta, qual o hardware utilizado, quais aplicativos e tarefas foram usados nos testes e quais resultados foram obtidos conforme o número de nós do sistema era alterado. Por fim, na conclusão, são analisadososresultados obtidosna implementação. Também é feito um estudo da viabilidade do cluster, apontando quais os casos que podem obter um melhor desempenho com o uso desse sistema.

14 1 CLUSTERS 1.1 Histórico A União faz a força, essa deveria ser a filosofia em mente quando, em 1960, engenheiros da IBM criaram o HASP (Houston Automatic Spooling Priority), umsistema que distribuía tarefas por diversos mainframes interligados. Esse pode ter sido o primeiro projeto que utilizou o conceito principal de um cluster, queé o de interligar vários computadores através de uma rede e fazê-los trabalhar como em paralelo para resolver um determinado problema. Oprimeiroprodutocomercialparaclusters foi o ARCnet, desenvolvido pela Datapoint em O ARCnet não foi um sucesso comercial, e os produtos para clusters só começaram a ter sucesso quando a DEC (mais tarde chamada Compaq) lançou o VAXcluster em 1984, para o sistema operacional VAX/VMS. O ARCnet eovaxcluster não só foram utilizados como o suporte para a computação paralela, mas também partilhavam sistemas de arquivos e dispositivos periféricos. Era suposto serem capazes de oferecer uma capacidade de processamento paralelo, enquanto mantinham a confiança assim como a não redundância da informação.(wikiac, 2007) Com a chegada de novas arquiteturas computacionais na década de 80, dentre as quais estavam a evolução dos microprocessadores, das redes e de ferramentas padronizadas para computação distribuída de alto desempenho, o conceito de cluster veio a ganhar força. Outros fatores importantes foram a demanda de poder de processamento para aplicações científicas e comerciais e a questão do alto custo e da baixa acessibilidade dos tradicionais supercomputadores, que custavam cerca de um milhãode doláres (SILVEIRA; PINTO; SILVA, 2007) O primeiro projeto de renome na área de clusters veio no final de 1993, quando Donald Becker e Thomas Sterling, dois pesquisadores da NASA, procurando soluções para combater o alto custo dos supercomputadores iniciaram um esboço de um sistema

15 13 de processamento paralelo construído a partir de hardware de baixo custo. No início de 1994, trabalhando no CESDIS(Center of Excellence in Space Data and Information Sciences) da NASA (National Aeronautics and Space Administration), com o patrocínio do projeto HPCC/ESS (High Performance Computing Cluster/Earth and Space Sciences), eles criaram o primeiro cluster de alto desempenho, o projeto Beowulf, queemseções posteriores será mais detalhado.(braga, 2003) 1.2 Clusters x Supercomputadores Uma forma de proporcionar alto poder computacional é a utilização de Máquinas Paralelas, que utilizam mais de um processador para executar uma mesma tarefa e, assim, conseguir um desempenho melhor. Os tipos mais comuns de Máquinas Paralelas são: supercomputadores e os clusters de computadores. (PITANGA, 2004) Os supercomputadores são máquinas desenvolvidas com tecnologias proprietárias e, geralmente, possuem finalidades pré-definidas pelo fabricante que acabam gerando desvantagens, como: Utilização de softwares proprietários e caros; Alto custo de manutenção; Total dependência de fornecedores; Dificuldade de atualização; Clusters são mais acessíveis ao mercado pois são máquinas construídas com utilização de dois ou mais microcomputadores comuns e de baixo custo. Estes são interligados por uma rede e trabalham em paralelo para resolver um determinado problema. O poder de processamento de um cluster écomparável ao de um supercomputador, pois esse utiliza técnicas de processamento distribuídoecontacomumagerência inteligente na distribuição de processos para os equipamentos interligados, que são chamados de nós. Normalmente existe um nó mestre que distribui as tarefas entre os demais nós, chamados de escravos, que servem apenas para processar isoladamente partes da tarefa como um todo, enviando apenas os resultados para o nó mestre.(vide figura 1)(OLIVEIRA, 2004)

16 14 Figura 1: Exemplo de uma topologia para um cluster Fonte : Elaborado pelo Autor Segundo Pitanga (2004) algumas vantagens dos clusters são: Alta Disponibilidade: prover uma alta disponibilidade de recursos e serviços o maior tempo possível, onde há uma grande dependência dos computadores; Alto Desempenho: resolução de problemas muito complexos em tempo hábil; Balanceamento de Carga: distribuição equilibrada do processamento em todos os nós que compõe o cluster; Escalabilidade: facilidade de adicionar novos nós para melhoria da performance, à medida que se cresce a carga de trabalho; Tolerância à falhas: o aumento da confiabilidade do sistema, a medida que algum dos nós venha a falhar, o sistema não fica prejudicado; Custo Reduzido: custos reduzidos com processamento de alto desempenho utilizando hardware de fácil disponibilidade, como PCś(Computadores Pessoais); Independência de fornecedores: utilização de hardware aberto, software livre e independência de fabricantes e licenças de uso.

17 15 Nota-se com essas características que a utilização de Clusters éumaopção muito flexível e vantajosa financeiramente, pois o numero de nós é diretamente proporcial ao poder de processamento requerido. Outros fatores que corraboram com esse pensamento são a utilização de hardware aberto e software livre. 1.3 Conceitos Originado do inglês, cluster quer dizer: grupo compacto de coisas do mesmo tipo; agrupar(-se); juntar(-se). Especificamente neste caso, cluster é um conjunto de computadores interligados via rede que trabalham em conjunto trocando informações entre si em torno de um único objetivo.(pereira FILHO, 2004) Um cluster pode ser caracterizado como um agrupamento de nós processadores (Personal Computers ou estações) autônomos e que, quando interligados através de uma rede de alta velocidade, comportam-se como um sistema de imagem única. O conceito de imagem única significa que um sistema, seja ele paralelo ou distribuído, deve comportar-se como um sistema único do ponto de vista do usuário, independente de ser composto por vários processadores, estando eles num mesmo lugar ou geograficamente distribuídos. Assim, todos os aspectos que dizem respeito aos usuários, sejam eles a distribuição de dados e de tarefas, comunicação e sincronização entre tarefas e a organização física do sistema devem ser abstraídos deles, ou seja, devem ser transparentes ao usuário(vogels et al., 1998). De acordo com Pitanga (2002) a diferença básica de um cluster para uma MPP (máquina proprietária de processamento massivo) se deve ao fato de que o cada nódo primeiro é um conjunto completo, com sistema operacional e hardware, enquanto no segundo eles são caracterizados pela ausência de discos e sistema operacional baseado em microkernel. Essa característica de um cluster também o diferencia de uma máquna SMP (máquina multiprocessada), pois nesta todos os processadores estão sobre apenas uma estrutura, compartilhando memória e sistema operacional. Uma das vantagens de se utilizar cluster, emrelação a esses dois tipos de máquinas citadas acima, éocustodeimplementação, que é bem inferior por contar com a utilização de máquinas comuns, em vez de arquiteturas propriétarias.

18 Tipos de Clusters Os três tipos mais comuns de clusters de computadores encontrados atualmente são os de Alta Disponibilidade (High Availability), de Balanceamento de Carga (Load Balancing) e o de Alto Desempenho (High Performance).(MANOEL; FERREIRA, 2005) Alta Disponibilidade Este tipo de cluster é projetado para prover uma disponibilidade de serviços e recursos de forma que não haja interrupções. Esse serviço contante é conseguido através do uso da redundância implícitas ao sistema. A idéia geral é que se um nó docluster vier a falhar (failover), aplicações ou serviços possam estar disponíveis em outro nó. Para se obter esse resultado todas as informações contidas em um nó devem ser constantemente replicadas para todos os outros nós que compôem o sistema. Estes tipos de cluster são utilizados para base de dados de missões críticas, correio, servidores de arquivos e aplicações Balanceamento de Carga Este modelo possui um servidor principal que éresponsavél por distribuir, entre as máquinas que compõem cluster, quase todo o tráfego que está recebendo ou as requisições de recursos provenientes dos nós que executam os mesmos programas. Todos os nós são responsáveis por controlar os pedidos e se um vier a falhar, as requisições são redistribuídas entre os que estão disponíveis no momento. Este tipo de solução é normalmente usada em fazendas de servidores de web (web farms) Alto Desempenho Este modelo é que melhor define o conceito de clusters, poisneleosnós trabalham unidos para aumentar o poder de processamento. Com esse ganho de performance é possível resolver grandes tarefas computacionais em menos tempo, pois elas são divididas em pequenas tarefas e distribuídas entre os nós como se fosse um supercomputador massivamente paralelo. É comum associar este tipo de cluster ao projeto Beowulf da NASA.(vide figura 2) Estes clusters são usados para computação cientifica ou análises financeiras, tarefas típicas para exigência de alto poder de processamento.

19 O Projeto Beowulf Figura 2: Cluster da NASA no estilo Beowulf Fonte : MTU (2010) Por ser um dos primeiros projetos de cluster mundialmente conhecido, ter tido uma grande importância no meio computacional e se tratar de um modelo de alto desempenho será dada uma atenção especial ao projeto Beowulf Definição Beowulf éumpoemaépicodoséculo X que conta a história de um herói, com o mesmo nome do título, que luta contra monstros e dragões. Assim como o herói, o Projeto Beowulf veio para vencer desafios, pois precisava ser de baixo custo e ter uma alta capacidade de processamento. É composto por uma arquitetura de multicomputadores utilizados para computação paralela ou distribuída. Normalmente se trata de um conjunto de micros de baixo porte divididos em um nó mestre e os nós escravos, ambos conectados via rede e rodando um sistema operacional paralelo. Nesse modelo, o nó mestre tem o objetivo de gerenciar o cluster, distribuir os arquivos e as tarefas para os nós escravos, além de servir como intermediador para uma conexão externa.(albuquerque et al., 2003)

20 Finalidades e Características do Projeto Segundo Santos (1998) o objetivo inicial do projeto Beowulf era obter uma estação para processamento científico, ou seja, numérico, com alta performance e baixo custo. Naquela época já existiam no mercado estações de trabalho de alto desempenho, dotadas de dois a quatro processadores, mas o uso de uma estação que fosse dividida em um número maior de subsistemas baratos permanecia inexplorado. Quando estava sendo projetado haviam duas restrições na arquitetura da estação que deveriam ser consideradas: ela devia usar exclusivamente hardware disponível no mercado (commodity hardware) enão devia custar mais do que uma estação científica de alto desempenho (em torno de cinqüenta mil dólares). O desafio principal era criar uma estação de processamento científico que chegasse a ordem de um gigaflop (equivalente a um milhão de operações em ponto flutuante por segundo), o projeto Beowulf veio para vencer esse desafio. O requisito computacional do ESS (Earth and Space Science) era muito intenso e elevado, dessa forma exigia sistemas que dessem um melhor tempo de resposta para os cientistas, que trabalhavam com um grande volume de informações, nos quais precisavam adquirir, examinar, manipular, visualizar e às vezes transformar grandes conjuntos de dados complexos, podendo envolver atividades de computação intensiva e grande movimentação de dados. As estações de trabalho padrões para a época não eram dotadas de armazenamento de massa suficiente para o volume de dados requerido pelos cientistas, isso acarretava em um tempo de resposta elevado e sobrecarga de recursos compartilhados. O projeto da estação de trabalho paralela Beowulf iniciou para vencer esse desafio e enfatizava, segundo Santos (1998) os seguintes aspectos: Uso de componentes disponíveis no mercado de massa; Processadores dedicados, ao invés de usar tempo ocioso de estações; Uma rede de sistema privada (system area network). Além disso, a estação também tem as seguintes características: Nenhum componente feito sob encomenda; Replicação fácil a partir de múltiplos vendedores; Uma base de software disponível livremente;

21 19 Uso de ferramentas de computação distribuída disponíveis livremente com alterações mínimas; Retorno à comunidade do projeto e melhorias. Como benefícios desta filosofia, Santos (1998) enumera: O fornecedor não possui os direitos sobre o produto. Podem ser usados componentes de diversas origens, graças ao uso de interfaces padrão, tais como IDE, PCI e SCSI ; As rápidas evoluções tecnológicas possibilitam adquirir sistemas mais recentes, melhores, a menores preços, capazes de continuar rodando o mesmo software. Os sistemas podem ser montados e modificados, de acordo com as necessidades e recursos do usuário, sem depender de configurações disponíveis de um vendedor; Beowulf usa software disponível livremente (Linux), tão sofisticado, robusto e eficiente quanto o comercial. A partir de uma determinada época os microprocessadores passaram a ter características antes somente encontradas nos supercomputadores. Uma vez que eles são de baixo custo, tornou-se viável usá-los em sistemas multiprocessados que não dependiam tanto da rapidez do meio de interconexão. Para que esse tipo de sistema seja proveitoso, é preciso aumentar a granulosidade da aplicação, de forma que se faça o mínimo possível de transferência de dados entre os subsistemas e o máximo possível de processamento dentro de cada um deles. O projeto Beowulf também era inovador pois incorporava a cada subsistema que fazia parte do cluster uma grande quantidade de memória RAM ediscorígido, permitindo, assim, dividir o conjunto de dados de alguns tipos de problema entre os processadores antes do início do processamento e mesmo à medida que aqueles dados iam sendo adquiridos. A evolução do projeto foi facilitada pois o cluster eracompostoexclusivamentede hardware de baixo custo e possuia componentes que eram facilmente encontrados no mercado. Se em vez de utilizar esse tipo de harware o projeto dependesse de um especial, que fosse feito por um único fabricante e tivesse que ser contruído somente para ele, com certeza seu custo seria muito mais alto, já que não poderia se beneficiar da economia de escala.

22 20 A utilização de software open-source, de livre distribuição, é outro ponto importante do sistema. Para se poupar tempo e trabalho, em vez de se criar um novo sistema operacional foi utilizado o Linux, que tinha a vantagem de poder ser alterado o quanto quisessem sem se preocupar com as restrições contidas nas licenças impostas pelas empresas que vendiam sistemas comerciais. Todo o software adicional, com exceção do compilador Fortran 90 da NAG, também era distribuído livremente através da internet. Osoftware livre é resultado de um esforço comunitário de diversas pessoas que colaboram com alterações. Essa filosofia de trabalho permite que cada uma dessas pessoas contribua com o tipo de ajuda que está capacitado a dar, de acordo com sua habilitação e perícia. Para aqueles que não podem contribuir no desenvolvimento, a colaboração pode ocorrer nos testes, encontrando falhas e relatando aos desenvolvedores.(santos, 1998) Limitações Impostas pelo Hardware As limitações de hardware começavam quando se levava em consideração que os nós do cluster eram formado por um computador do tipo PC e, por seguir essa arquitetura, era montado sobre uma placa-mãe e tinha um barrramento comum de E/S(entrada e saída). Assim sendo, era inevitável, mesmo com o uso de barramentos PCI de alta velocidade para a época, que ocorressem algum tipo de contenção intranodo. O barramento da placamãe era contantemente disputado pelo adaptador de rede e a controladora de disco, esse era um dos exemplos que poderiam causar lerdeza no sistema. O uso de adaptadores dotados de buffers, comoosdotiposcsi, reduzia os efeitos da contenção, melhorando o desempenho do nó.(hwang; BRIGGS, 1984) Outra limitação era que os ciclos de máquina que poderiam ser usados em operações de cálculo muitas vezes eram roubados pelas operações de E/S, que exigiam um certo consumo de recursos do processador e era importante que este tivesse o mínimo de envolvimento possível com o controle dos periféricos. O desempenho não era muito prejudicado quando a aplicação trabalhava mais com dados contidos na RAM (Random Access Memory), por ser eminentemente numérica. O problema era agravado quando havia grandes volumes de informações movimentando-se no disco ou pela rede, isso tudo podia consumir muito o processador. Como os dados passam pelo processador antes de irem para a memória, a utilização de controladoras que acessem diretamente a DMA(Direct Memory Access) ajudava bastante no desempenho do sistema, tanto no que diz respeito a controladoras de rede quanto para controladoras de disco SCSI. O penoso uso de controladoras do tipo IDE, pois estas podem

23 21 usar bastante a CPU, passou a ser atrativo quando esses dispositivos passaram a ter uma queda de preço considerável e aumento da sua capacidade de armazenamento.(hwang; BRIGGS, 1984) Santos (1998) diz que: Mesmo que cada um dos subsistemas detivesse sua própria parcela de RAM e disco, era necessário que houvesse comunicação entre eles, entãoarededeinterconexão assume papel fundamental nesse ponto. O uso de uma rede baseada em CSMA/CD, apesar de ter barateado muito o custo do projeto em relação ao que poderia custar um barramento local especializado ou alguma rede multiestágios sofisticada, trouxe junto consigo limitações. Ethernet usa um meio compartilhado, o que determina que apenas dois subsistemas poderão se comunicar ao mesmo tempo em cada segmento de rede. Para contornar essas limitações foram criados os esquemas de rede dupla vinculada, malha roteada e malha comutada, tendo este último permitido melhor desempenho, principalmente quando associado técnica channel bonding. Outra melhoria sensível foi obtida substituindo a rede Ethernet de 10MBit/s por uma Fast Ethernet de 100MBit/s. Isto conferiu ao sistema um maior equilíbrio entre capacidade de processamento e de intercomunicação entre os nós. Por mais que tenham conseguido melhoras, porém, por trás de tudo ainda está ocsma/cd, esgueirando-se nas sombras, com suas limitações. Baseado no que Santos (1998) nos aponta, pode-se concluir que a rede utilizada na montagem do cluster exerce um papel importante no desempenho do mesmo, chegando muitas vezes, a ser o principal fator de uma possível queda de desempenho do sistema. Como naquela epóca não existiam redes de alta velocidade (gigabit), era preciso utilizar um esquema de montagem da mesma para tentar amenizar esse problema Limitações Impostas pelo Software Uma das limitações de software era que naquela época o sistema operacional Linux sofria grandes avanços na parte de multiprocessamento, mas ainda não era dotado de recursos suficientes para se criar uma máquina virtual paralela transparente em um sistema como Beowulf. A falta de um compilador que gerasse aplicaçoes capazes de serem executadas de forma distribuída no Linux era um outro agravante que reduzia o desempenho do sistema. Posteriormente surgiu uma versão mais atual e estável do núcleo (Kernel) do Linux, essa já possuia suporte a multiprocessamento, porém era muito limitado, pois restringia o uso de subsistemas dotados de placas multiprocessadoras com CPU Pentium Pro.

24 22 Santos (1998) relata que: Arestrição mais drástica estava no fato de que, apesar de os blocos do núcleo serem atômicos com relação a outros processos, um mecanismo de passagem de bastão (token) é usado entre todos os processadores; qualquer um deles podia se apossar do bastão e, uma vez o detendo, reentraria no núcleo por meio de interrupções e outros serviços até que soltesse o bastão. Embora esse mecanismo garantisse que nenhum processo que rode em modo kernel fosse interrompido por outro, levava a um desempenho pobre e era necessário substituí-lo por um paralelismo de granulometria mais fina Conclusões Santos (1998) acrescenta que o beowulf foi um projeto bem sucedido. A opção feita por seus criadores de usar hardware popular e software aberto tornou-o fácil de replicar ealterar.provadistoé a grande quantidade de sistemas construídos àmodabeowulf. 1.6 Outros Projetos de Clusters Cluster BW10 da Petrobrás A Petrobrás adotou o primeiro supercomputador Beowulf há quase doze anos. Na ocasião, a máquina tinha dez processadores, que simulavam o comportamento de reservatórios de petróleo, em parceria com universidades de São Carlos e de Campinas, ambas no interior de São Paulo. Em 1999, foi montado o primeiro cluster para processamento sísmico, com 72 CPUs. Deacordocomositetop500.org, onde são listados os quinhentos mais rápidos clusters do mundo, o atual sistema BW10 da Petrobrás é o maior do Brasil, ocupando a posição de 451 numa ranking mundial gerado em novembro de O cluster é composto de 1024 processadores Xeon 53XX de 2.33GHz ejá conseguiu um pico de 9,555 teraflops (operações de ponto flutuante por segundo) Cluster Blue Gene/L da IBM Ocupando a primeira posição do ranking mundial de supercomputadores está oblue- Gene/L da IBM. Feito em 2007, está localizadonolawrence Livermore National Laboratory Terascale Simulation Facility, opera a uma velocidade média de 478,2(teraflops) eé usado, dentre muitas coisas, para simulações científicas do Departamento Nacional

25 23 de Segurança em Energia Nuclear dos EUA (NNSA). Tem processadores PowerPC 440 de 700 MHz e uma memória de Gbytes. (vide figura 3)(TOP500, 2008) Figura 3: Cluster Blue Gene/L da IBM (Fonte : OPENSOURCE (2010)) Nota-se que grandes empresas utilizam clusters, pois elas trabalham com grandes volumes de informações e com computadores trabalhando sem processamento distribuído elas não teriam os resultados desejados num tempo viável.

26 2 CLUSTERS DE ALTO DESEMPENHO 2.1 Conceitos Os clusters de alto desempenho vieram da idéia de reunir o poder computacional de diversos computadores em uma única máquina virtual. Esse grupo de computadores trabalharam unidos para a resolução de problemas através de técnicas de programação paralela e distribuída. O grande sucesso que os clusters de alto desempenho atingiram foi devido ao fato de que, em algumas aplicações científicas, como nas simulações, essas máquinas virtuais podem oferecer, mesmo com um custo baixo, desempenho próximo ao dos supercomputadores tradicionais. Outro fator importante na popularização dos clusters é o fato destes poderem ser construídos a partir de equipamentos de hardware simples, encontrados em qualquer prateleira de loja de informática. Assim, os clusters são ditos máquinas construídas a partir de componentes COTS (Commodity Off-The-Shelf). (BUYYA, 1999) Ainda segundo Buyya (1999), um cluster de alto desempenho éumtipodesistema para processamento paralelo e distribuído que éconstituído de uma coleção de computadores stand-alone (nós) interconectados e trabalhando juntos como um único recurso computacional integrado. 2.2 Componentes Hardware Buyya (1999) mostra que os componentes básicos de um cluster de alto desempenho são: front-end, nós e rede de interconexão. O front-end éamáquina que apresenta aos usuários do cluster a visão de um recurso computacional único e integrado. O papel do front-end édeumaimportância fundamental na concepção de um cluster, poisele

27 25 implementa o ponto único de acesso através do qual os usuários submetem e compilam aplicações a serem executadas no cluster. Nós são, normalmente, computadores pessoais de uso geral com capacidade de interconexão à rede que compõe o cluster. Frequentemente também são utilizadas máquinas multiprocessadas como nós. Finalmente, a rede de interconexão é a responsável por permitir a comunicação entre processos rodando em diferentes nós. Existem diversas opções de tecnologias de interconexão à disposição para a montagem de clusters, por isso a escolha das tais deverá ser baseada no desempenho que se quer obter e a quantia que se quer investir. Algumas tecnologias de interconexão usadas em clusters são: Fast-Ethernet, Gigabit Ethernet, Myrinet e SCI (Scalable Coherent Interface). No teste de desempenho aplicado neste trabalho será utilizado um front-end, que rodará uma aplicação que exigirá alto poder de processamento, três nós e uma rede de intereconexão do tipo Fast Ethernet Software Segundo Sterling (2001), Sistema Operacionaléosoftware básico para a administração dos recursos do cluster. Existem várias tarefas que tem que ser executadas pelo sistema operacional para a correta operação do cluster. Dentre elas: Consulta: As tarefas iniciadas por diversos usuários em diferentes lugares e com diferentes requisitos tem que ser armazenadas pelo sistema operacional em uma fila de prioridades até que o sistema esteja apto a realizá-las. Planificação: Talvez seja o componente mais complexo do sistema, pois tem que gerenciar as prioridades dos trabalhos iniciados pelos usuários, considerando os quesitos recursos do sistema e políticas estabelecidas pelo administrador. O planificador precisa manter um equilíbrio entre as aplicações que vão ser executadas, já queex- istem aplicações que devem usar todos os nós do cluster. Embora certas aplicações usem apenas alguns nós, há outras que tem que ter respostas e visualização em tempo real e algumas precisam ter uma maior prioridade para terminar sua execução. Controle de recursos: Esses gerenciadores executam as aplicações nos nós atribuídos pelo planificador, disponibilizam os arquivos necessários, começam, encerram e suspendem trabalhos e notificam ao planificador quando os recursos estão disponíveis. Monitoração: Para um controle apropriado da performance do cluster é preciso

28 26 que sempre seja reportado seu status a algum centro de controle, ou a algum dos nós. Os relatórios tem que incluir disponibilidade de recursos, estado das tarefas em cada nós e o quão saudáveis estão cada um dos nós. Quando estas informações estiverem disponíveis serão executadas certas ações já programadas. Contabilidade: Em todo cluster sempre é preciso guardar informações relacionadas aofuncionamentodosistema, sejaparacalcular os custos, ou simplesmente para medir a performance do sistema, através da análise da utilização do mesmo, para medir a disponibilidade e a resposta efetiva às exigências. Ainda segundo Sterling (2001), middleware éosoftwarequeé acrescido ao Sistema Operacional para conseguir que todos os computadores no cluster funcione como um único sistema (Single System Image). Também tem uma capa de software que permite acesso uniforme aos nós, mesmo tendo diferentes sistemas operacionais. Este software é oresponsável por prover alta disponibilidade ao sistema. Thomas Sterling aponta como destaque dois softwares middleware: Bibliotecas para Comunicações Paralelas Oúnico jeito de realizar a comunicação entre computadores no cluster é trocando mensagens entre os mesmos, e é por isso que o maior desafio do Middleware é conseguir uma interpretação correta das mensagens entre computadores que usam diferentes tipos de sistemas operacionais. As duas bibliotecas que são mais conhecidas são: PVM, que foi criada para redes de workstations e MPI, queéumpadrão adotado por algumas grandes empreasas como IBM e HP e tem mais funcionalidades do que o PVM. O PVM (Parallel Virtual Machine) éumframework para o desenvolvimento de aplicações paralelas de maneira fácil e eficiente, gerenciando com transparência a troca de mensagens entre os computadores do cluster.(sterling, 2001) O PVM é um modelo simples que oferece um conjunto de interfaces de software que podem ser facilmente implementadas para executar, finalizar, sincronizar e intercomunicar as tarefas na rede. As próprias tarefas que estão sendo executadas podem executar ou finalizar outras tarefas. Ele apresenta também características que o fazem tolerante afalhas. O MPI(Message Passing Interface) é um sistema padronizado e portável de troca de mensagens no cluster.(sterling, 2001) Ele foi projetado para trabalhar com diversas arquiteturas de computadores e oferece interfaces para programação em Fortran,

29 27 CeC++. Pode-se dizer que éumpadrão superior ao PVM e existem algumas razões para tal avaliação: possui muitas implementações livres de boa qualidade, oferece comunicação assíncrona completa, administra com eficiência os buffers de mensagens, suporta sincronização com usuários de software proprietário, possui um alto grau de portabilidade, é especificado formalmente e se tornou um padrão em todo o mundo. Existe uma nova versão do MPI chamada de MPI2, que incrementa suporte para entrada e saída paralela, operações remotas de memória, administração dinâmica de processos e suporta threads. Bibliotecas para Desenvolvimento de Aplicações Sterling (2001) afirma quem um dos principais desafios para o desenvolvimento dos clusters são as dificuldades de construção de software paralelo. Felizmente o seu desenvolvimento vem crescendo a cada dia, inclusive para computadores que não sejam paralelos, acarretando assim em uma melhoria no desempenho dos mesmos. Como as tecnologias de hardware estão em constante atualização, as aplicações paralelas desenvolvidas devem ter a capacidade de serem executadas em diferentes arquiteturas e por isso é recomendado desenvolver aplicações que trabalhem com a camada baixa do middleware. Para uma adequação apropriada, os modelos e linguagens de programação paralela devem ter algumas características: facilidade de programação, adotar uma metodologia de desenvolvimento de software, ter independência de arquitetura, fácil compreensão, devem ser capazes de ser eficientemente implementados e por fim, devem oferecer informação precisa sobre o custo dos programas. Segundo Sterling (2001), um problema que está sempre presente nas aplicações paralelas é que algumas vezes elas se abstraem muito para conseguir uma maior eficiência, ou ao contrario, perdem eficiência para ser menos abstratas, por isso podem ser classificadas segundo esses critérios: nada explícito e paralelismo implícito; paralelismo explícito e descomposição implícita de tarefas; descomposição explícita de tarefas e mapeamento implícito de memória; mapeamento explícito de memória e comunicação implícita; comunicação explícita e sincronização implícita; e tudo explícito. Dois pacotes para desenvolvimento de software paralelo que são muito conhecidos são BSP e ARCH, osquaissão muito usados atualmente.

30 Redes Sterling (2001) diz que os elementos mais importantes no que diz respeito aos componentes de redes são os seguintes: TCP-IP: Diferente dos supercomputadores, os clusters não tem protocolos de comunicação proprietários, eles usam protocolos padrões como o TCP-IP. O protocolo IP é dividido conceitualmente em diferentes camadas lógicas que tem como objetivo dividir a mensagem que será enviada em pacotes individuais de dados, chamados datagramas, que tem o seu tamanho limitado pela longitude do meio de transmissão. Depois de serem enviadas individualmente, as mensagens são reconstruídas no host de destino, quem tem seu endereço IP presente em cada pacote. Atualmente existem as versões IPv4 e IPv6 que tem 4 e 16 bytes respecivamente para identificar o endereço do host de destino. Os serviços suportados pelo protocolo IP são TCP(Transmission Control Protocol) e UDP(User Datagram Protocol). Sockets: De acordo com Sterling (2001) os sockets são as interfaces de baixo nível entre as aplicações de usuário, o sistema operacional e o hardware no computador. Eles disponibilizam um mecanismo apropriado para a comunicação entre as aplicações, suportando diferentes formatos de endereços, semântica e protocolos. Foram propostos no sistema operacional BSD4.2 e atualmente existe uma API no Linux que suporta os sockets. Alguns desenvolvedores não gostam de trabalhar diretamente com sockets, e sim com outras camadas que fazem uma abstração dos tais. A idéia básica nos sockets é a implementação de um arquivo que permita fazer operações read e write de um computador a outro como se fosse um arquivo que está armazenado localmente. Muitos tipos de implementações de sockets são usadas, mas na prática as mais utilizadas são CDS (Connectionless Datagram Sockets, que é baseada no protocolo UDP e outra baseada no protocolo TCP, que émelhordo que a anterior porque oferece uma comunicação de ida e volta entre os elementos conectados. O uso do protocolo UDP para sockets não é aconselhado pois existe um problema onde algumas vezes as mensagens não são enviadas corretamente. Os sockets oferecem para o programador o conhecimento de como é o funcionamento dos mecanismos de troca de mensagens, que em algumas vezes é comparado com a linguagem Assembler. Protocolos de Alto Nível: Segundo Sterling (2001) os sockets não são muito usados por desenvolvedores de aplicações para clusters, mas sim pelos programadores de

31 29 sistemas operacionais. Os primeiros preferem usar protocolos do mais alto nível, que até algumas vezes não precisam usar sockets. Osmaisusadossão o RPC Remote Procedure Calls e Distributed Objects(CORBA e Java RMI). ORPC fazcomqueo programador não precise indicar explicitamente a lógica para a troca de mensagens. Seu objetivo é que os programas distribuídos possam se programar como se fossem programas sequenciais, ou seja, que um processo seja chamado em uma função e o compilador tenha a função de executá-lo em um outro. O RPC foi criado para trabalhar com mais frequêcia na programação distribuída do que na paralela. Os objetos distribuídos são baseados no conceito de programação baseada em objetos, mas são usados para chamar métodos remotos. Já osserviços de rede representam os objetos e precisam implementar os métodos a serem executados remotamente. Aidéia também é executar os métodos sem considerar em que serviço estejam implementados, ou seja, que os serviços estejam disponíveis para todos os objetos da rede. Sistema de Arquivos Distribuídos: Todos os computadores em um cluster tem o seu próprio sistema de arquivos local, mas também os outros computadores podem precisar acessar arquivos em outras máquinas, sendo que estas operações tem que ser feitas de forma transparente, como se fosse um acesso local. Existem dois sistemas de arquivos que são os mais usados: NFS e AFS. O NFS(Network File System) foi criado pela Sun para ser um padrão livre, consequêntemente foi adotado em sistemas UNIX e Linux. É estruturado como uma arquitetura cliente-servidor e usa chamadas RPC para fazer a comunicação entre os mesmos. O servidor envia os arquivos solicitados pelo cliente para que sejam lidos por ele como se estivessem armazenados localmente. Quando são feitas as solicitaçõesdearquivospelocliente,não é armazenada nenhuma informação no servidor e, desta maneira, cada uma solicitação é independente da outra, mesmo que venham do mesmo cliente(sterling, 2001). O AFS(Andrew File System) foi idealizado pela IBM e a Universidade Carnegie Mellon, para resolver os problemas de outros sistemas de arquivos como o NFS. Ele reduz o uso da CPU e o tráfego de rede mantendo um acesso de forma eficiente aos arquivos para grandes quantidades de clientes. Depois de um tempo o AFS tornouse um sistema proprietário e passou um período longe das distribuições de Linux, ficando disponível apenas recentemente para uso no mesmo(sterling, 2001).

32 Cluster OpenMosix Histórico Segundo Pitanga (2002) o projeto Mosix (Multicomputer Operating System unix) é um sistema operacional distribuído, criado originalmente pelos estudantes do professor Amnom Barak, na Universidade Hebrew em Jerusalém, Israel. Foi usado nos anos 80 pela força área americana para a construção de um cluster de computadores, o PDP11/45. O projeto foi desenvolvido em sete fases, para diferentes versões de UNIX e arquiteturas de computadores. A primeira versão para PC foi desenvolvida para o BSD/OS, jáaúltima, foi para o sistema operacional Linux em plataforma Intel. O OpenMosix éumaextensão do projeto Mosix, baseado no GPLv2, iniciadoem10 de fevereiro de 2002, coordenado pelo Ph.D Moshe Bar, para manter os privilégios desta solução Linux para cluster disponível com software de código aberto. Pode-se classificar este agrupamento de máquinas Linux como um de verdadeiro sistema de imagem simples (SSI - Single System Image), queé um requisito obrigatório para ser um cluster verdadeiro. Os clusters SSI como o IBM SysPlex eocluster DEC são os pioneiros e podem servir como referência. Tomando como exemplo o cluster DEC, ao abrir-se um telnet para um endereço no cluster, essa chamada é atendida por qualquer nó eparaousuário não interessa saber qual deles iráatendê-la. Qualquer tarefa que o usuário venha a executar será realizadacomtranparência no nó que possuir maior disponibilidade de recursos dependendo de quais o programa executado solicite.(pitanga, 2002) Funcionamento Pitanga (2002) diz: OpenMosix é uma extensão do núcleo do sistema operacional Linux, que faz com que um cluster de computadores se comporte como um grande e único supercomputador através da utilização de migração preemptiva de processos e balanceamento dinâmico de carga. De acordo com Pitanga (2002), qualquer processo do usuário é capaz de ser migrado através da implementação da Migração Preemptiva de processos, de maneira transparente em qualquer instante e para qualquer nó disponível. Os algoritmos de balanceamento dinâmico de carga e de prevenção contra falta de memória controlam o cluster visando um melhor desempenho. O projeto desses algoritmos permite que os mesmos respondam dinamicamente as variações da utilização dos recursos nos diversos nós. Isto garante

33 31 uma maior escalabilidade do cluster, fazendo que ele se comporte muito bem, seja numa configuração com poucas ou com muitas máquinas. O funcionamento é dado da forma que, se o programa que estiver sendo rodado em uma máquina consumir muitos recursos da mesma, o sistema varre toda a rede e procura uma máquina mais disponível no momento em termos de memória e CPU, e transfere seu programa ou parte dele para ser executado remotamente. Com isso, o sistema ganha desempenho. Segundo Pitanga (2002), como não existe o papel de um controlador mestre e de nós escravos, como ocorre no Cluster Beowulf para computação paralela, esses algoritmos são dito descentralizados. Cada nó é um mestre para os processos que são criados localmente, e ao mesmo tempo é um escravo para processos remotos, migrados de outros nós do cluster. Com essa configuração, podemos acrescentar ou remover os computadores do cluster a qualquer momento, com uma pertubação mínima no sistema. A velocidade de cada nó, a carga da CPU, a memória livre disponível, a comunicação interprocessos IPC e a velocidade de acesso de cada processo, tudo isso é identificado por algoritmos de monitoramento do cluster. O OpenMosix trabalha de forma silenciosa e as operações são transparentes para as aplicações, isso faz com que ele possa executar aplicações seqüenciais e paralelas como se fosse um único computador SMP (Symmetric Multi-Processor), conhecido também como multiprocessador simétrico. O usuário não precisa saber onde seus processos estão sendo executados, nem se preocupar com o que os outros usuários estão fazendo na rede, por isso ele usa o acrônimo fork and forget. O funcionamento ocorre da seguinte forma: pouco tempo depois de iniciar os processos, o OpenMosix envia-os para um melhor computador da rede, depois disso ele continua a monitorar os novos processos e os antigos, e poderá movimentá-los pelos computadores com baixa carga de trabalho, maximizando assim a tarefa e melhorando a performance.(pitanga, 2002) Aplicabilidade Uma das vantagens da criação de um cluster OpenMosix é que o trabalho de programação é reduzido, pois as aplicações não precisam serem recompiladas, exigindo assim apenas a implementação dos mecanismos de troca de dados entre os diferentes processos. Possui alta escalabilidade, ou seja, basta lançar um novo nó naredesemsoftwareourequisitos adicionais, e será automaticamente adaptado pelo cluster. Outra muito importante é que, no OpenMosix, ocorre a otimização do uso das máquinas do cluster com a migração

34 32 automática dos processos. Segundo Pitanga (2002), algumas aplicações conseguem ser beneficiadas com o uso do OpenMosix. Dentre elas pode-se destacar: Processos CPU-bound: processos com longos tempos de execução e baixo volume de comunicação entre processos, ex: aplicações científicas, engenharia e outras aplicações que demandam alta performance de computação; Grandes compilações; Processos que misturam longos e rápidos tempos de execução ou com moderadas quantias de comunicação interprocessos, é recomendado o uso das bibliotecas MPI/PVM amplamente utilizadas em computação paralela; Processos I/O bound misturados com processos da CPU: executados através do servidor de arquivos, usando o sistema de arquivos distribuídos do OpenMosix, o MFS (Mosix File System) e o DFSA (Distributed File System Architeture); Banco de dados que não usem memória compartilhada; Processos que podem ser migrados manualmente; Em contrapartida, Pitanga (2002) mostra que os seguintes tipos de aplicações não são beneficiadas pelo uso do OpenMosix: Processos com baixa computação, como aplicativos com alta comunicação interprocessos; Aplicações com memória compartilhada; Aplicações dependentes do hardware que necessitam de acesso a um periférico expécifico de um nó; Aplicações com muitas threads não tem um aumento desempenho; Não se ganha desempenho quando se roda um único processo, tal como um navegador de internet; Pitanga (2002) testou e mostra que as seguintes aplicações não migraram sobre Open- Mosix:

35 33 Programas em Java usando threads nativas não migram desde que eles utilizem memória compartilhada. Green Threads JVMs, entretanto, podem ser migradas porque cada thread Java é um processo separado; Aplicações que usam pthreads; MySQL, Apache, Oracle, Postgres, SAP, Baan, usam memória compartilhada; Python com threading habilitada; VMware, esteaorodarowin98, algumas vezes travou e em outras o emulador do S.O. parou. É preciso ter muito cuidado quando se usa o VMware com o OpenMosix; Pode-se concluir que o OpenMosix é um sistema muito eficiente para certos tipos de aplicações, contanto que elas não utilizem memoria compartilhada e que tenham alta granulosidade, ou seja, que não necessitem transferir muitos dados na rede. Ele foi criado para ser prático e eficiente em tarefas que exigem apenas alto poder de processamento.

36 3 ESTUDO DE CASO OPENMOSIX O objetivo deste estudo de caso é analisar o desempenho de um cluster OpenMosix conforme sejam realizadas um conjunto de tarefas que exigem alto poder de processamento. A ideia é comparar o tempo que o sistema leva para processar uma determinada tarefa baseado no acréscimo do número de nós. Baseado nos conceitos de um cluster OpenMosix, oesperadoé que esse tempo de resposta se reduza conforme sejam acrescidos mais nós. Uma vez obtidos esses resultados poderemos analisar a viabilidade e descobrir para que tipos de aplicações o cluster tem um melhor desempenho. 3.1 Componentes Hardware O cluster foi composto por quatro computadores idênticos, cada um com a seguinte configuração: Processador: Intel Pentium D Dual Core 2.80Ghz - 2x1mb L2 Cache Placa Mãe: MSI Memória RAM : 1Gb DDR2 667Mhz Placa de Rede: Realtek RTL /100 Mb/s Fast Ethernet Onboard Unidade de CDROM : 52x Demais dispositivos foram omitidos pois neste tipo de cluster eles não foram utilizados e por conseguinte não influenciaram no desempenho do sistema. Nós com configurações iguais não são obrigatórios, mas ajudam a evitar, por exemplo, problemas decorrentes de compilação de um código para arquiteturas diferentes, ou por

37 35 terem também uma carga de trabalho desbalanceada, onde os nós mais rápidos irão terminar primeiro que os mais lentos e ficar esperando. Assim, a homogeneidade não éuma condição necessária para um cluster, masé um fator que irá reduzir bastante a quantidade de problemas.(pitanga, 2004) A interconexão desses computadores foi feita através do uso de um Roteador Belkin 54G 10/100 Mb/s e cabos par trançado Software O sistema operacional escolhido foi o Linux e a distribuição foi o ClusterKnoppix 3.6, que éumaversão modificada do Knoppix. As vantagens dessa distribuição são as seguintes:(vandersmissen, 2004) ÉumsistemaLIVE CD, o que dispensa a utilização de disco rígido; Contém no seu kernel 2.4 omódulo OpenMosix compilado; Vêm com todas as ferramentas para a implementação de um cluster OpenMosix; Inicializa automaticamente todos os serviços necessários; Possui o auto discovery, que insere automaticamente novos nós no cluster; Possui diversos aplicativos para uso cotidiano; Os aplicativos utilizados foram os seguintes: PovRay - É um renderizador de imagens do tipo Raytracer. Estetipoderenderizador consiste na simulação de iluminação, sintetizando imagens a partir de modelos geométricos tridimensionais de espaços físicos. Essa classe de programa faz uso intensivo da unidade de ponto flutuante que está presente no processador. Portanto, é um programa que pode gerar uma carga de processamento distribuído a ser bem aproveitada no âmbito dos clusters.(povray, 2008) OpenMosixview - É o gerenciador do cluster, através dele também épossível visualizar vários status dos nós, tais como; nome, endereço IP, carga do processador, memória e número de processadores. (VANDERSMISSEN, 2004)

38 36 OpenMosixMigMon - Permite a visualização em tempo real do comportamento de cada processo do cluster. Através dele podemos identificar em qual nó determinado processo está sendo executado. Épossível também mover manualmente um determinado processo para qualquer nó.(vandersmissen, 2004) 3.2 Procedimento O primeiro passo para a realização desse procedimento foi efetuar o download da imagem do ClusterKnoppix 3.6, que éaversão mais atual. Uma vez feito isso, foi utilizado um programa de gravação de CDs para gerar quatro discos, que é a quantidade de nós do sistema. A escolha da utilização de uma mídia para cada nóé optativa pois, o Cluster- Knoppix possui uma opção que o torna um servidor de boot via rede, com isso é possivel que os nós se iniciem através da placa de rede. Foi escolhido o uso de mídias devido ao fato do sistema ter um número reduzido de nós. (VANDERSMISSEN, 2004) Inicialização do Sistema Inicialmente foi preciso configurar todos os nós para que fossem iniciados a partir da unidade de CDROM. Isso foi feito com a alteração na sequência de BOOT na BIOS. Como o ClusterKnoppix é um sistema do tipo LIVE CD, ele automaticamente detecta e configura todos os hardwares e inicializa a área gráfica que, apesar de não ser necessária para o funcionamento do cluster, nos permite executar aplicativos que mostram graficamente o comportamento dos processos, facilitando assim uma análise dos resultados. Também são inicializados todos os serviços referentes ao OpenMosix, que permitirão a troca de processos entre os nós. Como todos estão ligados em um roteador que possui um servidor DHCP, na inicialização do sistema foi atríbuido automaticamente um endereço IP para cada nó. A rede criada pelo roteador possui as seguintes configurações: Rede: Máscara: Gateway: Uma vez iniciada a área gráfica, foi executado o OpenMosixView que, como pode ser visto na Figura 4, automaticamente já detectou todos os nós do cluster.

39 37 Figura 4: Estado Inicial do OpenMosixview Fonte : VANDERSMISSEN (2004) Analisando a Figura 4 pode-se identificar as seguintes áreas: id: Nome de cada nó. Pode ser alterado para uma melhor identificação de um grande volume de micros. clusternodes: Endereço IP de cada nó. load-balancing efficiency: eficiencia do balanceamento de carga do cluster. Éatualizado a cada dois segundos. overall load: Carga de processamento de cada nó. overall used memory: Quantidadedememória utilizada no cluster eemcadanó. all memory: Quantidadedememória do cluster edecadanó. all CPU :QuantidadedeCPUsdocluster edecadanó. Ainda pela figura 4 pode-se identificar o número em cada nó que representa avelocidadedomesmo. Comoosistemaé homogêneo todos têm o mesmo valor. Esse número depende única e exclusivamente do clock da CPU e pode ser alterado para se obter um desempenho melhor. (VANDERSMISSEN, 2004) Através dos ícones do OpenMosixView épossível executar um programa que mostra graficamente e em tempo real o estado do cluster, oopenmosixmigmon. A figura 5 mostra o estado inicial do sistema. Pode-se identificar pela figura que, como ainda não foram iniciados os procedimentos que exigem grande volume de processamento, os processos permanecem no centro, ou seja, no nó mestre. A opção process groups permite que os processos sejam agrupados para uma melhor visualização do seu comportamento.

40 38 Figura 5: Estado Inicial do OpenMosixMigMon Fonte : VANDERSMISSEN (2004) Criação do Arquivo para Renderização A escolha do POVRAY foidevidoaofatodeque,além de estar incluso na distribuição do ClusterKnoppix, é um programa de fácil implementação e que exige grande volume de processamento. O código fonte da renderização está representado na figura 6. Figura 6: Código Fonte da Renderização Fonte : Elaborado pelo Autor

Cluster HPC High Performance Computing.

Cluster HPC High Performance Computing. Faculdade de Tecnologia de Guaratinguetá. doze, março de 2009. Cluster HPC High Performance Computing. Diogo Salles, Thiago Pirro, Camilo Bernardes, Paulo Roberto, Ricardo Godoi, Douglas, Fauzer. Sistemas

Leia mais

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução Cluster Resumo Introdução Cluster Cluster Beowulf Curiosidades Conclução Introdução Sua empresa esta precisando fazer um grande processamento; As Nuvens existentes não são suficientes para sua empresa;

Leia mais

Desenvolvimento de um Cluster de Alto Desempenho com PVM

Desenvolvimento de um Cluster de Alto Desempenho com PVM Desenvolvimento de um Cluster de Alto Desempenho com PVM Daniel Cândido de Oliveira 1, Yzaac Gonçalves da Silva 1, Madianita Bogo 1 1 Centro Universitário Luterano de Palmas Universidade Luterana do Brasil

Leia mais

Computação em cluster

Computação em cluster Computação em cluster Por Marcos Pitanga em 30 de maio de 2003 Introdução Este artigo tem por finalidade dar ao leitor uma visão mais integrada do que vem a ser a computação em cluster e como esta a cada

Leia mais

hvbacellar@gmail.com Palavras-chave Cluster; Beowulf; OpenMosix; MPI; PVM.

hvbacellar@gmail.com Palavras-chave Cluster; Beowulf; OpenMosix; MPI; PVM. Cluster: Computação de Alto Desempenho Hilário Viana Bacellar Instituto de Computação, Universidade Estadual de Campinas Av. Albert Einstein 1251, Cidade Universitária, CEP 13083-970 Campinas, SP, Brasil

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 4 - CLUSTER DE COMPUTADORES 1. INTRODUÇÃO Grande parte do tempo, os computadores que utilizamos encontram-se ociosos, ou seja, sem nada para processar. Isso se deve, em grande parte, pelas aplicações

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS COM MÚLTIPLOS PROCESSADORES LIVRO TEXTO: CAPÍTULO 13, PÁGINA 243 Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Arquiteturas que possuem duas ou mais CPUs interligadas

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 4 - INTRODUÇÃO A SUPERCOMPUTAÇÃO 1. INTRODUÇÃO Atualmente cientistas brasileiros usam supercomputadores para pesquisar desde petróleo até mudanças climáticas. Um grande exemplo é o supercomputador

Leia mais

Estudo em Terminais Leves como nós de um Cluster

Estudo em Terminais Leves como nós de um Cluster Estudo em Terminais Leves como nós de um Cluster Guilherme Arthur Geronimo February 27, 2007 Abstract Now days, with the improve of the communication networks, more we are using the remote access technology

Leia mais

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa Prof. Marcelo de Sá Barbosa CLUSTER: Um cluster é um conjunto de computadores independentes conectados por rede que formam um sistema único através do uso de software. Um cluster, ou aglomerado de computadores,

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 4 Tipos de SO Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Os Sistemas Operacionais podem ser assim classificados: SO - Prof. Edilberto Silva

Leia mais

Supercomputadores dominavam o mercado

Supercomputadores dominavam o mercado Clusters e Grids Introdução Supercomputadores dominavam o mercado Alto custo Requerem mão de obra muito especializada Desenvolvimento de microprocessadores poderosos a um baixo custo Desenvolvimento de

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Computação de Alta Perfomance com Software Livre (Clusters)

Computação de Alta Perfomance com Software Livre (Clusters) Computação de Alta Perfomance com Software Livre (Clusters) 3º Seminário de Tecnologia da Informação UCSal Marcelo Soares Souza (marcelo@cebacad.net) CEBACAD Centro Baiano de Computação de alto Desempenho

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla Unidade III FUNDAMENTOS DE SISTEMAS OPERACIONAIS Prof. Victor Halla Conteúdo Arquitetura de Processadores: Modo Operacional; Velocidade; Cache; Barramento; Etc. Virtualização: Maquinas virtuais; Gerenciamento

Leia mais

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro Sistemas MIMD Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais 1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar

Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar David Beserra 1, Alexandre Borba¹, Samuel Souto 1, Mariel Andrade 1, Alberto Araujo 1 1 Unidade Acadêmica de Garanhuns

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF. ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I Máquina Virtual Instalação de S.O. em dual boot 1º Semestre 2010 PROF. AMARAL Na ciência da computação, máquina virtual é o nome dado a uma máquina,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Introdução Aplicações em rede de computadores As redes de computadores atualmente estão em todos os lugares. Ex.: Internet, redes de telefones móveis, redes corporativas, em fábricas,

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

O QUE É O CLUSTER OPENMOSIX - COMPILAÇÃO DE UM KERNEL LINUX PARA UM CLUSTER OPEN/MOSIX E MONTAGEM BÁSICA DE UM CLUSTER OPENMOSIX.

O QUE É O CLUSTER OPENMOSIX - COMPILAÇÃO DE UM KERNEL LINUX PARA UM CLUSTER OPEN/MOSIX E MONTAGEM BÁSICA DE UM CLUSTER OPENMOSIX. O QUE É O CLUSTER OPENMOSIX - COMPILAÇÃO DE UM KERNEL LINUX PARA UM CLUSTER OPEN/MOSIX E MONTAGEM BÁSICA DE UM CLUSTER OPENMOSIX. 1 André Avila Kaminski 2 Resumo Um cluster openmosix é formado por um conjunto

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS 1. Histórico Primeiros computadores Computadores dos anos 50 e 60 Primeiros computadores com sistemas operacionais Surgimento das redes de computadores Nos anos 70 início das pesquisas

Leia mais

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP Multicomputadores Introdução Vimos que existem dois tipos de processadores paralelos MIMD: Multiprocessadores. Multicomputadores. Nos multiprocessadores, existe uma memória compartilhada que pode ser acessada

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Conceitos HW e SW Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Roteiro da Aula Conceitos de Hardware Conceitos de Software Combinações de SW e HW 3 Sistemas Distribuídos

Leia mais

Sistema de Arquivos Distribuídos

Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos A interface cliente para um sistema de arquivos é composta por um conjunto de primitivas e operações em arquivos (criar, apagar, ler, escrever)

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Avaliação de Desempenho de Ferramentas de Renderização de Imagens em Clusters openmosix e Arquiteturas Multicore

Avaliação de Desempenho de Ferramentas de Renderização de Imagens em Clusters openmosix e Arquiteturas Multicore Avaliação de Desempenho de Ferramentas de Renderização de Imagens em Clusters openmosix e Arquiteturas Multicore Trabalho de Conclusão de Curso Engenharia da Computação Péricles da Silva Bastos Sales Orientador:

Leia mais

Sistemas Operacionais Distribuídos e Multiprocessados

Sistemas Operacionais Distribuídos e Multiprocessados Tópicos em Sistemas Operacionais Sistemas Operacionais Distribuídos e Multiprocessados Por André Macedo, Marcelo Moraes, Thaís Fernandes Sumário Teoria: Sistemas Multiprocessados Estudo de caso:k42 Teoria:

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

INSTALAÇÃO PRINTERTUX Tutorial

INSTALAÇÃO PRINTERTUX Tutorial INSTALAÇÃO PRINTERTUX Tutorial 2 1. O Sistema PrinterTux O Printertux é um sistema para gerenciamento e controle de impressões. O Produto consiste em uma interface web onde o administrador efetua o cadastro

Leia mais

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Sistemas Paralelos e Distribuídos Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Conceitos preliminares Paralelismo refere-se a ocorrência simultânea de eventos em um computador Processamento

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

ARQUITETURA TRADICIONAL

ARQUITETURA TRADICIONAL INTRODUÇÃO Atualmente no universo corporativo, a necessidade constante de gestores de tomar decisões cruciais para os bons negócios das empresas, faz da informação seu bem mais precioso. Nos dias de hoje,

Leia mais

Processamento Distribuído em Cluster do Tipo Beowulf

Processamento Distribuído em Cluster do Tipo Beowulf UNIVERSIDADE ESTADUAL PAULISTA JULIO DE MESQUITA FILHO FACULDADE DE TECNOLOGIA DA BAIXADA SANTISTA DEPARTAMENTO DE INFORMÁTICA GESTÃO DE NEGÓCIOS Processamento Distribuído em Cluster do Tipo Beowulf ALEXANDRE

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesse capítulo, apresentamos os trabalhos relacionados ao GridFS, entrando em mais detalhes sobre os sistemas citados durante a introdução e realizando algumas considerações sobre

Leia mais

Laboratório I 2012. Prof. Hélder Sato MSc. 2/14/12 Laboratório I 1

Laboratório I 2012. Prof. Hélder Sato MSc. 2/14/12 Laboratório I 1 Laboratório I 2012 Prof. Hélder Sato MSc 2/14/12 Laboratório I 1 Apresentação Prof Hélder Sato MSc Bacharel Informática Universidade Positivo Especialista em Redes PUC-PR Mestrado em Informática Aplicada

Leia mais

A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE ***FAT-TREE***

A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE ***FAT-TREE*** UNIVERSIDADE ESTADUAL DE CAMPINAS INSTITUTO DE COMPUTAÇÃO TÓPICOS EM COMPUTAÇÃO DISTRIBUÍDA - MO809 A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE ***FAT-TREE*** Aluno: Joaquim Domingos Mussandi

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

Introdução às Redes de Computadores. Por José Luís Carneiro

Introdução às Redes de Computadores. Por José Luís Carneiro Introdução às Redes de Computadores Por José Luís Carneiro Portes de computadores Grande Porte Super Computadores e Mainframes Médio Porte Super Minicomputadores e Minicomputadores Pequeno Porte Super

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior Arquitetura de SGBD Prof. Antonio Almeida de Barros Junior Agenda Caracterização de SGBDs SGBDs Centralizados SGBDs Cliente-Servidor SGBDs Distribuídos Homogêneos Multi-SGBDs Heterogêneos SGBDs Paralelos

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais:

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: SISTEMAS OPERACIONAIS 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: I. De forma geral, os sistemas operacionais fornecem certos conceitos e abstrações básicos, como processos,

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 8 Sistema de Arquivos Distribuído Sumário Problemas Solução

Leia mais

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Maestro Arthur Kazuo Tojo Costa 317497 Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Introdução Sistema Operacional de Redes Detalhes do hardware Multiplexação

Leia mais

Avaliação do sistema de armazenamento EMC CLARiiON AX4

Avaliação do sistema de armazenamento EMC CLARiiON AX4 Avaliação do sistema de armazenamento EMC CLARiiON AX4 Relatório elaborado sob contrato com a EMC Corporation Introdução A EMC Corporation contratou a Demartek para realizar uma avaliação prática do novo

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho

Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho Márcio Parise Boufleur Guilherme Piegas Koslovski Andrea Schwertner Charão LSC - Laboratório de Sistemas de Computação UFSM - Universidade

Leia mais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Vicente Amorim vicente.amorim.ufop@gmail.com Sumário

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

ALGUNS CONCEITOS. Rede de Computadores

ALGUNS CONCEITOS. Rede de Computadores ALGUNS CONCEITOS Rede de Computadores Prof. Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1 OBJETIVO 1. Compartilhar recursos computacionais disponíveis sem considerar a localização física

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

Leia mais

Por Érica Barcelos Fevereiro, 2012

Por Érica Barcelos Fevereiro, 2012 Por Érica Barcelos Fevereiro, 2012 2 INTRODUÇÃO Com a informatização dos sistemas nas empresas veio também o aumento da competitividade e isso fez com que a qualidade dos serviços fosse questionada. O

Leia mais

SISTEMA DE GERÊNCIA - DmView

SISTEMA DE GERÊNCIA - DmView Sistema de Gerenciamento DmView O DmView é o Sistema de Gerência desenvolvido para supervisionar e configurar os equipamentos DATACOM, disponibilizando funções para gerência de supervisão, falhas, configuração,

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Universidade de Brasília

Universidade de Brasília Universidade de Brasília Introdução a Microinformática Turma H Redes e Internet Giordane Lima Porque ligar computadores em Rede? Compartilhamento de arquivos; Compartilhamento de periféricos; Mensagens

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL. Curso Técnico em Informática

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL. Curso Técnico em Informática SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL Curso Técnico em Informática Estrutura de Endereçamento IP e Mascara de Subrede Endereçamento IP e Classes Autoridade para Atribuição de Números da Internet http://www.iana.org/

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

GESTÃO DE SISTEMAS OPERACIONAIS II

GESTÃO DE SISTEMAS OPERACIONAIS II GESTÃO DE SISTEMAS OPERACIONAIS II Servidores Definição Servidores História Servidores Tipos Servidores Hardware Servidores Software Evolução do Windows Server Windows Server 2003 Introdução Windows Server

Leia mais

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br Agenda Definição de Sistemas Distribuídos Evolução Histórica Exemplos Comparação com Sistemas Centralizados Conclusão 2 Definição

Leia mais