CLUSTER BEOWULF: ASPECTOS DE PROJETO E IMPLEMENTAÇÃO

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

Download "CLUSTER BEOWULF: ASPECTOS DE PROJETO E IMPLEMENTAÇÃO"

Transcrição

1 UNIVERSIDADE FEDERAL DO PARÁ CENTRO TECNOLÓGICO PROGRAMA DE PÓS GRADUAÇÃO EM ENGENHARIA ELÉTRICA JOHNNY MARCUS GOMES ROCHA CLUSTER BEOWULF: ASPECTOS DE PROJETO E IMPLEMENTAÇÃO TM - / UFPA CT - PPGEE CAMPUS UNIVERSITÁRIO DO GUAMÁ BELÉM-PARÁ - BRASIL

2 UNIVERSIDADE FEDERAL DO PARÁ CENTRO TECNOLÓGICO PROGRAMA DE PÓS GRADUAÇÃO EM ENGENHARIA ELÉTRICA CLUSTER BEOWULF: ASPECTOS DE PROJETO E IMPLEMENTAÇÃO AUTOR: JOHNNY MARCUS GOMES ROCHA DISSERTAÇÃO SUBMETIDA À AVALIAÇÃO DA BANCA EXAMINADORA APROVADA PELO COLEGIADO DO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA DA UNIVERSIDADE FEDERAL DO PARÁ E JULGADA ADEQUADA PARA OBTENÇÃO DO GRAU DE MESTRE EM ENGENHARIA ELÉTRICA COM ÊNFASE EM COMPUTAÇÃO APLICADA. APROVADA EM / /. BANCA EXAMINADORA Prof.Dr Luiz Afonso Henderson Guedes de Oliveira ORIENTADOR Prof. Dr. Carlos Renato Lisboa Francês CO-ORIENTADOR Prof.Dr João Crisóstomo Weyl Alburquerque Costa MEMBRO - UFPA Prof. Dr. Walter Barra Júnior MEMBRO UFPA VISTO Prof.Dr Roberto Célio Limão de Oliveira Coordenador do PPGEE - UFPA UFPA CT - PPGEE CAMPUS UNIVERSITÁRIO DO GUAMÁ BELÉM-PARÁ - BRASIL

3 UNIVERSIDADE FEDERAL DO PARÁ CENTRO TECNOLÓGICO PROGRAMA DE PÓS GRADUAÇÃO EM ENGENHARIA ELÉTRICA JOHNNY MARCUS GOMES ROCHA CLUSTER BEOWULF: ASPECTOS DE PROJETO E IMPLEMENTAÇÃO DISSERTAÇÃO SUBMETIDA À BANCA EXAMINADORA DO PROGRAMA DE PÓS GRADUAÇÃO EM ENGENHARIA ELÉTRICA DA UFPA PARA A OBTENÇÃO DO GRAU DE MESTRE EM ENGENHARIA ELÉTRICA UFPA CT - PPGEE CAMPUS UNIVERSITÁRIO DO GUAMÁ BELÉM-PARÁ - BRASIL

4 AGRADECIMENTOS A Deus, pela vida. Aos meus pais pela forma que me educaram e me mostraram o quanto é importante correr atrás dos meus objetivos com fidelidade, perseverança e integridade. A minhas irmãs: Jeanny e Marla Aos meus afilhados e sobrinhos: Carol, Lucas e João Vitor. A minha família, pelos excelentes momentos que passamos juntos. Aos meus primos, que sempre me apoiaram nas horas difíceis. Aos meus amigos de todas as horas Andreya, Abelardo E Mario (que me deu a honra de ser seu compadre) devo a eles e suas famílias meus sinceros agradecimentos. A minha namorada Isabela, sempre. Aos meus colegas de turma que direta ou indiretamente me ajudaram e contribuíram para a conclusão deste trabalho. Agradeço as minhas mãe adotivas : Tia Inês e sua família que me acolheram como um filho e a tia Rosária que sempre me ajudou. Ao meu orientador, Luiz Affonso, pela paciência e confiança depositada. Ao meu co-orientador Carlos Renato. Aos professores Carlos Leônidas, Carlos Tavares, Roberto Limão e João Crisóstomo por terem contribuído para a minha formação. Agradeço a todos os amigos do Lacos: Alessandra, Márcia, Leonardo, Eduardo, Ana Cláudia, Reinaldoe Iomara. Agradeço a todos os professores do Lacos: Rosana, Nick, Barra, Limão e Tavares. iv

5 RESUMO Este trabalho aborda o problema de demanda computacional exigido para resolução de grandes problemas, tanto na área de engenharia como em outras áreas das ciências. Uma das formas de solucionar esta carência é através de sistemas de computação paralelos que utilizam técnicas de paralelismo de software (uso de bibliotecas de comunicação, como MPI e PVM) e de hardware (máquinas de arquitetura paralela SMP,NUMA e MIND). O enfoque deste trabalho é sobre os principais conceitos envolvidos no projeto de sistemas de computação paralela, em especial a uma solução de baixo custo desenvolvida em 1994 nos laboratórios da NASA, chamada Beowulf. Esse tipo de arquitetura utiliza PCs comuns e software livre conectados por uma rede simples para paralelizar programas, aumentando a eficiência e diminuindo o tempo de execução. É demonstrado um procedimento de projeto baseado neste tipo de arquitetura paralela, especificando-se os principais fatores que influenciam no seu desenvolvimento, como : seleção do modelo de processador e seleção da tecnologia de rede a ser empregada. São descritas as principais vantagens e desvantagens e algumas ferramentas de softwares que podem ser utilizados nesse tipo de arquitetura. Para efeito de validação do procedimento foi projetado e implementado um cluster de oito máquinas.

6 CAPITULO 1 - INTRODUÇÃO São cada vez mais freqüentes as aplicações que necessitam de enorme capacidade computacional, que não pode ser obtida em simples máquinas seqüenciais com uma única unidade de processamento central (CPU). Apesar de ainda ser possível melhorar o desempenho dos processadores, a atual evolução acabará por se deparar com diversas restrições como, por exemplo, a dimensão física dos componentes, a velocidade da luz, as leis da Termodinâmica, e o custo, que poderá se revelar excessivo com a aproximação desses limites. Por isso, a uma solução alternativa econômica e tecnologicamente viável consiste na interligação de múltiplos processadores de forma a permitir a execução cooperativa de tarefas em paralelo com um objetivo comum. A origem da computação paralela como substituta do processamento seqüencial pode ser definido por dois fatores: - A computação paralela revelou-se uma alternativa viável na resolução do ponto de estrangulamento que constitui um único processador num sistema; - O custo de um sistema paralelo é consideravelmente inferior ao de maciçamente paralelo com desempenho similar, uma vez que o preço dos componentes são uma função da sua capacidade. Porém, o emprego eficiente de computação paralela requer a adequação de dois aspectos fundamentais: infra-estrutura computacional e algoritmo paralelo. A infraestrutura diz respeito ao hardware paralelo, que são as unidades de processamento e o suporte de comunicação entre as unidades de processamento, que é a infra-estrutura de software onde o algoritmo paralelo é executado. O algoritmo paralelo advém da modelagem do problema e se caracteriza como sua solução computacional, assim é necessário que se tenha em mente já na modelagem do problema a necessidade do paralelismo da solução. Há várias soluções possíveis tanto em termos de infra-estrutura paralela de hardware e software quanto em termos da obtenção do algoritmo paralelo, sendo que a escolha dependerá de vários aspectos, que podem ser resumidos em complexidade da modelagem e relação custo-benefício da infra-estrutura computacional. 1

7 1.1 - SUPERCOMPUTAÇÃO Supercomputadores são definidos como os mais rápidos e poderosos computadores em termos de capacidade de processamento e dispositivos de E/S (Entrada/Saída). Supercomputação como um gênero específico da informática, surgiu no meio da década de 1970 quando um engenheiro chamado Seymour Cray uniu um grupo de chips de computador disponíveis e os transformou em um computador comercial cujo desempenho nunca tinha sido visto antes [1]. Seymour Cray já utilizava o conceito de processamento vetorial [2]. Seu primeiro computador foi o CRAY-1, fabricado em 1976 e era capaz de atingir o pico de 133 Mflops 1. Em 1985 lançou o CRAY-2, com o desempenho de 1,9 Gflops. Na época este computador tinha a maior memória do mundo com 2 Gigabytes, quantidade até em então absurda, mesmo para nossa realidade. Nos dias de hoje as principais máquinas que a empresa CRAY comercializa são o CRAY T-90 com 32 processadores vetoriais em paralelo e chega a 60 Gflops. Em seguida, está o CRAY T3E que oferece 2048 processadores, permitindo alcançar 2,5 Teraflops. Antes que Cray começasse a construção de seus computadores, o projeto e fabricação de sistemas de computação de alto-desempenho eram normalmente feitos por grandes companhias como IBM, Control Data Corporation (CDC) e Univac para satisfazer às necessidades de clientes especiais como o governo dos EUA ou companhias de petróleo. Os computadores eram grandes e caros. Para funcionar, eles precisavam de sistemas especiais de energia e refrigeração, para impedir que aquecessem demais. A utilização dessas máquinas estava limitada realmente a grandes aplicações estritamente numéricas, como análise de dados de campo de petróleo, projeto de armas nucleares e quebra de códigos secretos. Dos anos cinqüenta até os anos setenta, do século XX, a metodologia e projeto de computadores mudou pouco. As grandes companhias daquele tempo, IBM, Control Data, Data General e Digital, tiveram vários modelos que foram fabricados para nichos de mercado, como computação de negócio, computação científica e bancos de dados, mas os projetos delas eram normalmente semelhantes (para uma determinada linha de máquinas 1 Mflops Milhões operações de ponto flutuante por segundo 2

8 em uma determinada companhia). Eles estavam interessados em vender números grandes de máquinas ao mais baixo custo. Por exemplo, a Digital teve mais de vinte modelos diferentes de seu PDP-11, cada um basicamente igual a todos os outros, com diferenças pequenas em um modelo para satisfazer as necessidades das pessoas que usavam a máquina para equipamento de laboratório, ou com características para quem usasse a máquina em uma empresa. No começo da década de 1970, uma pequena companhia de semicondutores chamada Intel mudou a situação, desenvolvendo algo que eles chamaram de microprocessador. A Intel colocou todos os componentes de um computador (a Unidade Lógica - Aritmética, o controlador de memória e o controlador de E/S) em um pacote minúsculo, menor que o diâmetro de uma moeda de dez centavos. Até então, todos os computadores eram muito grandes. Antes da invenção do microprocessador, os computadores eram projetados da base ao topo como é conhecida a técnica de fabricação por componentes discretos. Computadores modernos são compostos de coleções chamadas circuitos integrados (CIs), que significa um grande número de funcionalidades empacotada em um único chip. Tecnologia de componentes discretos é exatamente o oposto. O microprocessador Intel 4004 teve aproximadamente 5,000 transistores que compuseram toda a estrutura de circuito eletrônico exigida para uma CPU (Unidade Central de Processamento), controlador de memória, e dispositivos de E/S. Um mainframe ou minicomputador teria a mesma funcionalidade básica dispersa em três equipamentos do tamanho de um refrigerador. Talvez o fato mais importante foi que com a velocidade do supercomputador, projetistas de circuito de computador poderiam simular computadores novos e mais rápidos, em tempo real [2]. Cray tinha estabelecido que havia um mercado para computadores ultra-rápidos que encontraram uma larga variedade de negócios e problemas de pesquisa. Companhias como a CDC, a IBM e uma gama de iniciantes quiseram ajudar a explorar a nova tendência em simulação e visualização. Nos anos 80, havia mais de vinte companhias que fizeram vários tipos de máquinas tipo supercomputador, inclusive a Cray Research, IBM, Kendall Square Research, Dataflow, e outros. Para satisfazer às necessidades deste mercado, surgiram sistemas de apoio à computação de alto-desempenho, como discos que poderiam armazenar 3

9 trilhões de bytes de dados e sistemas de rede de alta velocidade para assegurar que as máquinas poderiam ser providas com dados e assim mantidas ocupadas. Ao mesmo tempo, estavam sendo desenvolvidos microprocessadores novos e mais rápidos, que aumentaram o desempenho dos computadores pessoais. Conduzidos pela Intel, que desenvolveu o primeiro microprocessador no início dos anos 70, novas gerações de microprocessadores estavam ganhando as características dos mainframes. Companhias de estação de trabalho, como Sun Microsystems, trouxeram para o mercado sistemas de armazenamento mais rápidos e tudo isto começou a corroer a distinção entre pequenos computadores e mainframes, e antes de 1995 todas as companhias que se lançaram na corrida para a construção de supercomputadores saíram do negócio ou foram absorvidos por companhias maiores como a IBM e Sun Microsystems. Os supercomputadores são máquinas extremamente caras, mas que oferecem um grande desempenho. Essa característica as torna inacessíveis para empresas de médio e pequeno porte, universidades e alguns centros de pesquisa, não só devido ao preço de aquisição do equipamento, mas também por causa dos custos de manutenção e licença de software para operar essas máquinas. Estas são algumas razões que os clusters de computadores têm se tornado a cada dia mais popular O EFEITO DOWN-SIZE A indústria de computadores ingressou nos anos 90 com estações de trabalho mais rápidas que os mainframes da década anterior. Ao mesmo tempo, computadores pessoais ficaram mais poderosos. Os preços também caíram, um computador pessoal passou a custar 10 vezes menos que uma estação de trabalho com mesma capacidade de computação. Porém, com o advento de computadores pessoais poderosos e estações de trabalho que podem ter múltiplas CPUs, os supercomputadores se transformaram em computadores extremamente restritos que só estão disponíveis a grupos com orçamentos muito grandes. Ao longo dos anos 80, pesquisadores em várias universidades tentaram desenvolver estações de trabalho para diminuir a lacuna entre a necessidade de processamento e o custo. Os resultados foram obtidos na forma de sistemas operacionais inovadores como Spring, Chorus e Amoeba [2]. Estes sistemas trouxeram inovações como o transporte de mensagens 4

10 e a repartição das tarefas, que conduziu diretamente ao desenvolvimento dos sistemas de processamento abordados neste trabalho. Dois aspectos impediram o seu avanço: o licenciamento de software e o custo do hardware. A maioria destes sistemas foi feita baseada em versões comerciais do sistema Unix e o hardware era de estações de trabalho de companhias como Sun Microsystems, Apollo e Digital que ainda eram extremamente caros quando comparados com os PCs comuns PROJETO DO CLUSTER BEOWULF No meio da década de 1990, o desempenho de computadores pessoais começou a se equiparar com o desempenho de estações de trabalho de alto-desempenho e o custo de equipamento de rede de computadores diminuiu. A disponibilidade de hardware e equipamentos de rede mais baratos encontrou um sistema operacional gratuito e open source, sob os termos de licença GNU Public License (GPL) [24] escrito por um estudante de faculdade de Helsinki, Finlândia, conhecido pelo nome de Linus Torvalds. O sistema operacional de Linus, chamado de Linux [24], era um clone do sistema operacional Unix desenvolvido pelos Laboratórios Bell da AT&T que dá suporte no mundo inteiro a instalações de computação de grande porte. Por causa da compatibilidade do Linux com o Unix, e do fato de que este pudesse ser executado tanto em hardware poderoso quanto em hardware de baixo custo, os cientistas encontraram uma maneira para satisfazer suas necessidades de poder de computação sem ter que comprar máquinas caras ou supercomputadores. Os clusters Beowulf resultaram de um projeto iniciado pela NASA no verão de 1994, no centro de pesquisas CESDIS, localizado no Goddard Space Flight Center, no âmbito do projeto Earth and Space Sciences cujo objetivo primário consistia em determinar a aplicabilidade de arquiteturas de processamento paralelo a problemas do domínio das ciências espaciais, especialmente para o tratamento de dados recolhidos por satélite, a preços acessíveis. O primeiro destes clusters foi construído por Thomas Sterling e Don Becker e consistia em 16 nós com processadores Intel 486 Dx4 a 100Mhz interligados por uma tecnologia de rede Ethernet a 10 Mbits do tipo channel bonded [37] com dois 5

11 barramentos. Desde então diversas instituições têm construído os seus próprios clusters Beowulf. Atualmente existem clusters deste tipo com mais de um milhar de nós. O sistema Beowulf [14], como foi chamado o cluster de Linux, se tornou uma ferramenta popular no mundo inteiro para cientistas que precisam de grande poder de computação para modelagens matemáticas e outras aplicações. O nome Beowulf não se trata de nenhum acrônimo com significado técnico, é apenas o nome de herói lendário da literatura inglesa, que foi escolhido pelos criadores para batizar seu projeto. Beowulf é uma arquitetura de computador que pode ser usada para computação paralela. É um sistema que normalmente consiste em nós clientes (são computadores, porém não são equipados com monitor de vídeo, teclado e mouse, possuindo somente placa-mãe, microprocessador, memória, disco rígido e placa de rede) e um nó servidor (também é um computador, mas o mesmo funciona como a interface para o mundo exterior, por este motivo ele é equipado com: monitor de vídeo, placa de vídeo, teclado e mouse), conectados por uma rede Ethernet ou algum outro tipo de rede local. O sistema é construído usando-se componentes de hardware largamente comercializados, placas de rede e concentradores (Hubs ou swicthes). Não contém nenhum componente de hardware desenvolvido especialmente para um propósito especifico e é trivialmente reproduzível. Beowulf também usa software livre como o sistema operacional Linux e bibliotecas para comunicação em rede, como Parallel Virtual Machine (PVM) e Message Passing Interface (MPI). O nó servidor controla o cluster inteiro e distribuí os processos aos nós clientes. É importante notar que mesmo utilizando-se de software disponível livremente a arquitetura Beowulf é tão sofisticada, robusta e eficiente quanto qualquer outra comercial. Uma característica chave do Beowulf é o uso do sistema operacional Linux, assim como de bibliotecas para troca de mensagens (PVM e MPI) de livre distribuição. Isto permite fazer alterações no Linux para dotá-lo de novas características que facilitam a implementação de aplicações paralelas. Beowulf não é um pacote de software especial ou uma nova topologia de rede. Beowulf é uma tecnologia de como agrupar computadores baseados em Linux para formar um supercomputador paralelo baseado em rede de computadores. Atualmente há muitos pacotes de software como: modificações no núcleo do Kernel do Linux, bibliotecas de 6

12 comunicação e ferramentas de configuração que tornam a arquitetura Beowulf mais rápida, mais fácil de configurar e muito mais utilizável FINALIDADES DO PROJETO BEOWULF Estações de trabalho típicas não dispunham de armazenamento suficiente para o volume de dados requerido, dependendo do uso de servidores de arquivos em rede. O resultado era um tempo de resposta elevado e uma sobrecarga de recursos compartilhados. O projeto Beowulf se propôs a resolver este problema. Embora já fosse corrente na época o uso de estações de trabalho em rede para processamento, formando o que se convencionou chamar de cluster of workstations (COW) ou network of workststions (NOW), o projeto Beowulf foi criado usando o paradigma mais recente de Pile-of-PCs (PoPC) - pilhas de PCs - enfatizando: uso de componentes disponíveis no mercado; processadores dedicados, ao invés de usar tempo ocioso de estações; uma rede de sistema privada (system area network -- SAN); nenhum componente feito sob encomenda, de modo a facilitar a replicação; E/S escalável; uma base de software disponível livremente e uso de ferramentas de computação distribuída, disponíveis livremente com alterações mínimas; Como vantagens desta filosofia de trabalho, os autores enumeram: Nenhum fornecedor possui os direitos sobre o produto. Sistemas podem ser construídos usando componentes de diversas origens, graças ao uso de interfaces padrão, tais como IDE, PCI e SCSI. Pode-se tomar vantagem das rápidas evoluções tecnológicas, permitindo adquirir sistemas mais recentes, melhores, a menores preços, capazes de continuar rodando o mesmo software. Os primeiros sistemas construídos baseavam-se no processador 80486DX4-100 enquanto os mais recentes usam Pentium III/IV ou Athlon. 7

13 Os sistemas podem ser montados e modificados ao longo do tempo, de acordo com as necessidades e recursos (inclusive financeiros) do usuário, sem depender de configurações disponíveis de um vendedor. Em resumo, a vantagem do sistema Beowulf, está no fato de que sistemas diferentes podem fazer parte do mesmo cluster, desde sistemas de alto desempenho até refugos como computadores Intel 486, de modo a acrescentar poder de computação barata a um cluster APLICAÇÕES DE UM CLUSTER BEOWULF O crescimento da informática e da Internet tiveram um grande efeito no público. Computadores de alto-desempenho e sistemas como clusters de Linux podem ter o mesmo efeito, em particular nas pessoas que fazem ferramentas de informação e ambientes de simulação. A área de aplicação dos clusters é muito diversificada. São geralmente as aplicações seqüenciais muito grandes, que necessitam de enorme quantidade de memória e tempo de enorme de processamento. Tradicionalmente, o desenvolvimento de computadores tem sido motivado por simulações numéricas de sistemas complexos como analise meteorológica, simulação de dispositivos mecânicos, circuitos eletrônicos, reações químicas, sequenciamento de DNA e aplicações que podem manipular grandes quantidades de dados para extrair alguma espécie de informação ou conhecimento (Data Mining). Com um cluster paralelo de Linux é possível construir um servidor de arquivos que é mais rápido que a maioria dos servidores comerciais. Isso pode ser feito por causa dos sistemas múltiplos e conexões múltiplas de rede inerente nestes clusters, sendo útil para aplicações como sistemas de banco de dados, onde os principais gargalos de desempenho acontecem quando não podem ser movidos dados efetivamente do disco para memória, ou em aplicações de web, onde a velocidade de transação é crítica para o sucesso de uma aplicação. Algumas outras áreas que podem se beneficiar desse modelo de sistema: Servidores Web de alto-desempenho um cluster pode balancear a carga e aumentar a capacidade de resposta, quando o sistema estiver sob intensa utilização; 8

14 Base de Dados pesquisas intensivas em base de dados podem consumir um certo tempo em sistemas comuns. A utilização de clusters pode reduzir consideravelmente este tempo, além de apresentarem uma arquitetura completamente adequada às topologias de Sistemas de Bases de Dados Paralelos do tipo Shared-Nothing Aplicações com inteligência artificial e automação área que utiliza algoritmos que ocupam os recursos do sistema de uma forma intensiva e exponencial em relação á dimensão do problema como reconhecimento de padrões, redes neurais e máquinas de inferência; Engenharia Genética através do sequenciamento de DNA; Computação Gráfica Diminuir o tempo de renderização de imagens; Analise de Elementos Finitos cálculo de estruturas, navios, aviões e veículos espaciais; Exploração Sísmica possibilidade de analisar grande conjunto dados gerados por levantamentos sismológicos e mapeamento de satélite; Problemas de pesquisa básica em química, física e engenharia, tais como mecânica quântica, estatística, química de polímeros, crescimento de cristais, dinâmica molecular, distribuições de conexões em circuitos VLSI entre outros; Pesquisas militares projetos de novas armas, simulação dos efeitos causados por novas armas, processamento de sinais de radares para comando de mísseis antibalísticos e geração automática de mapas; Obviamente, foram apresentadas algumas aplicações que podem ser feitas com clusters de Linux e como eles surgiram. Com todo o desenvolvimento na área de informática, ainda há muitas aplicações que serão destinadas eventualmente para uso em clusters. Em 1974, ninguém poderia predizer o efeito que Cray traria ao desenvolvimento nas áreas de física, biologia, química, e microeletrônica. A disponibilidade de tais sistemas de alto-desempenho fora dos centros de dados tradicionais, onde normalmente são achados os supercomputadores, trará um efeito profundo nas áreas tanto de pesquisa quanto empresarial nos próximos anos. 9

15 1.4 - DIVISÃO DO TRABALHO O presente trabalho pretende constituir uma introdução aos sistemas de processamento paralelo designados Clusters Beowulf, cuja proliferação tem crescido últimos anos. Estes clusters têm-se revelado cada vez mais uma alternativa economicamente viável aos sistemas paralelos de elevado desempenho tradicionais O restante do trabalho está dividido da seguinte forma: No Capítulo 2 são apresentados os conceitos fundamentais sobre processamento paralelo, arquitetura paralelas, bem como uma análise genérica de clusters de forma a poder enquadrar os Clusters Beowulf. No Capítulo 3 são analisados os conceitos dos Sistemas Beowulf, aspectos de hardware e tecnologias de rede disponíveis. No Capítulo 4 são feitas considerações sobre os aspectos de software que podem ser utilizados para administração e programação para cluster. No Capitulo 5 é definido um padrão para o projeto e implementação Clusters Beowulf, exemplificando com o cluster LANE02-AMAZÔNIA. Finalmente, no Capítulo 6 são apresentadas conclusões obtidas no trabalho e sugestões para trabalhos futuros. 10

16 CAPÍTULO 2 - CONCEITOS GERAIS PARA CLUSTER Este capítulo aborda alguns dos assuntos fundamentais envolvidos em computação paralela e conceitos genéricos sobre clusters. Clusters são um grupo de computadores que funcionam interligados em rede de forma a executar problemas grandes quebrando-os em partes menores. Há várias estratégias diferentes que podem ser utilizadas para agrupar computadores. Também há vários pacotes de software diferentes que podem ser usados para fazer este trabalho no Cluster. Mas inicialmente serão definidos os conceitos principais para o projeto destes sistemas. 2.1 CONCEITO SOBRE PARALELISMO Paralelismo é uma técnica usada em tarefas grandes e complexas para obter resultados mais rápidos, dividindo-as em tarefas menores que serão distribuídas em vários processadores para serem executadas simultaneamente [6]. Paralelismo opera em dois níveis: paralelismo de hardware e paralelismo de software. Os principais motivos para se usar paralelismo são: aumentar o desempenho (reduzindo o tempo) no processamento, resolver grandes desafios computacionais, fazer uso de um ambiente distribuído para resolução de tarefas e obter ganhos de desempenho. Existem complexidades pertinentes ao próprio paralelismo. Os resultados (desempenho) podem não corresponder ao esforço (programação) empregado. Depende do programador a responsabilidade pelo algoritmo paralelo (válido para ferramentas não automáticas). O paralelismo pode se classificado de três maneiras: paralelismo de dados, paralelismo funcional e paralelismo de objeto. Além de operar em dois níveis: paralelismo de software e paralelismo de hardware PARALELISMO DE HARDWARE Em termos de unidade de processamento, paralelismo de hardware trata de melhorar o desempenho dos sub-componentes da CPU (a memória cache, pipeline e unidades de execução múltiplas), podendo acelerar seu código de execução. Outro aspecto de paralelismo de hardware envolve sistemas multi-processados (SMP) para que trabalhem em um problema computacional de uma forma paralela. Sistemas que têm unidades de execução múltiplas (SMP) permitem à CPU tentar processar mais de uma instrução de cada vez, porque parte do processo de executar instruções 10

17 múltiplas inclui manter rastro das instruções que estão sendo executadas. Se, por alguma razão, a execução de uma instrução levaria a CPU a parar o que está fazendo e se ramifica para algum outro lugar no programa, é bastante possível que todas as outras instruções que estão sendo trabalhadas em outras partes da CPU sejam invalidadas e descartadas. Embora pareça um desperdício de trabalho, a maioria dos programas de computação são entidades muito lineares. Programas bem-escritos (código bem-aperfeiçoado por um compilador de alta qualidade) têm seus códigos executáveis binários organizados de forma que este gaste o menor tempo possível com desvios. Isto permite à CPU trabalhar mais eficazmente; pré-processando as instruções que poderiam não ser executadas. Há duas características nas CPUs modernas que permitem que estas suportem execuções múltiplas: o cache e Pipeline. O Cache é uma área de memória, onde são armazenadas porções grandes de programas em antecipação a sua eventual execução pela CPU. A memória cache é da ordem de s enquanto a mais rápida que a memória principal do sistema trabalha em ns, tirar instruções do cache e colocá-las no pipeline de instrução só é ligeiramente mais lento que acessar dados que estão dentro dos próprios registros da CPU. O Pipeline é uma área pequena de memória dentro da CPU onde são armazenadas as próximas instruções que serão executadas. Pipeline de instrução ajuda a manter o trabalho fluindo pela CPU e, para um código aperfeiçoado, manterá a CPU ocupada contanto que o código não tenha que saltar para executar algo que está armazenado fora do cache. Estes componentes permitem aumentos significativos no desempenho de CPU. Também requerem muita inteligência por parte do compilador para organizar o código executável de tal modo que a CPU tenha uma boa chance de poder executar instruções múltiplas simultaneamente. Não é importante que se entenda toda a teoria por de trás do nível de paralelismo da CPU, mas com a finalidade de construir e operar um Cluster deveria se entender que um código aperfeiçoado, junto com uma CPU eficiente, pode melhorar muito a velocidade das aplicações. Paralelismo no Nível de Sistema Este nível de paralelismo é o ponto crucial para a computação de cluster. É o paralelismo de nós múltiplos que estão coordenados para trabalhar em um problema de forma paralela. 11

18 Há outros sub-níveis de paralelismo que podem ser introduzidos neste nível de paralelismo. Por exemplo, se cada nó do cluster for um sistema de CPUs múltiplas, estará se introduzindo um grau fundamental no processo paralelo ao nível de nó. Tendo mais de uma interface de rede em cada desses nós, introduzem-se canais de comunicação que podem ser usados em paralelo com outros nós do cluster. Todas estas áreas de paralelismo de hardware podem ser usadas com grande vantagem na solução de problemas em um cluster.[4, 34] PARALELISMO DE SOFTWARE Paralelismo de software é a habilidade de acelerar a execução de um programa dividindo o mesmo em fragmentos múltiplos que podem ser executados simultaneamente. Antes de se executar um programa em um cluster paralelo, tem que assegurar que o problema que está se tentando resolver pode ser executado de forma paralela. Podem ser analisadas muitas classes de problemas para se obter o paralelismo inerente dentro deles. Alguns dos problemas mais típicos incluem modelamento meteorológico, geração de imagens 3-D e vários tipos de simulações. Estes são os tipos de problema que contêm sub-problemas dentro deles. Por exemplo, modelamento meteorológico envolve resolver problemas relativos ao aquecimento e esfriamento da atmosfera, a absorção de luz solar por nuvens e cidades, como também o movimento de frentes de pressão. Quase qualquer problema que for composto de sub-problemas menores que podem ser quantificados independentemente pode ser quebrado em problemas menores e executado de forma paralela CONCEITOS SUBJACENTES AO PARALELISMO A seguir são apresentados alguns conceitos subjacentes ao paralelismo. a. Granulosidade Granulosidade é uma quantidade de trabalho que pode ser determinada a uma parte do sistema e depois sincronizada e recombinada de forma a se obter os valores definitivos. Em um cluster de estações de trabalho, uma aplicação de processamento de imagens, por exemplo, pode dividir o trabalho de renderização entre as estações de trabalho cada uma trabalhando em seu próprio pedaço local e então os pedaços são recombinados ao término do processo.uma outra forma de se definir grânulos idade é pela relação entre os esforços de processamento e comunicação entre unidades paralelas, resumindo é uma medida usada para indicar a relação entre o tamanho de cada tarefa e o tamanho total do programa, ou seja, é a 12

19 razão entre computação e comunicação[56]. Assim, quando um canal de comunicação tem velocidade muito maior ou compatível com o de processamento das unidades, compensandose ter pequenas rotinas de processamento com alto grau de troca de informação entre eles. Este caso é caracterizado como processamento de "grão fino", a desvantagem desta técnica é alto custo de sincronização. No outro extremo, quando a velocidade do canal de comunicação é bem mais lenta que a velocidade de processamento, deve-se ter baixo nível de comunicação entre estas unidades quando comparados aos esforços de processamento. Neste caso, diz-se ter um processamento paralelo de "grão grosso", que é caracterizado por maior custo no processamento, dificuldade de balanceamento de carga e menor custo de sincronização. Supercomputadores multi-processados são mais adequados para processamento paralelo de grão-fino, enquanto cluster baseado em rede de computadores são mais adequados para processamento paralelo de grão-grosso ou grão-médio [2,6]. b. Dependências Dependências são os pontos onde um pedaço de código depende dos resultados de alguma outra parte do mesmo código. Dependências têm duas formas: dependências de dados e dependências de controle. Dependências de dados Uma dependência de dados existe quando alguma operação não pode proceder até que dados provenientes de outra operação estejam disponíveis. Dependências de Controle Dependências de Controle são até mesmo mais comuns que dependências de dados. Estas dependências existem quando uma linha de controle depende de outra para poder ser executada TIPOS DE PARALELISMO a. Paralelismo de Dados - O sistema paralelo executa mesmas instruções sobre dados diferentes. É aplicado, por exemplo, em programas que utilizam matrizes imensas e para cálculos de elementos finitos.como por exemplo: Resolução de sistemas de equações, multiplicação de matrizes e integração numérica. Figura 2.1 Paralelismo de dados. 13

20 b. Paralelismo Funcional - O sistema paralelo executa instruções diferentes que podem ou não operar sobre o mesmo conjunto de dados. É aplicado em programas dinâmicos e modulares onde cada tarefa será um programa diferente. Figura 2.2 Paralelismo Funcional c. Paralelismo de Objetos Este é o modelo mais recente, que se utiliza o conceito de objetos distribuídos por uma rede (como a Internet), capazes de serem acessados por métodos (funções) em diferentes processadores para uma determinada finalidade.como por exemplo, a tecnologia baseada em CORBA (Common Object Resquest Broke) e EJB (Entreprise Java Beans). Figura 2.3 Paralelismo de Objetos OBSTÁCULOS NO PARALELISMO a. Sincronização entre os processos As tarefas executadas em paralelo, num determinado instante, aguardam a finalização mútua para coordenar os resultados ou trocar dados e reiniciar novas tarefas em paralelo. É necessário que haja a coordenação dos processos e da comunicação entre eles para evitar que a comunicação seja maior do que o processamento e que conseqüentemente haja uma queda no desempenho dos processos em execução. 14

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

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

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS 1. Introdução a supercomputação 2. Visão geral de Mainframe 3. Cluster de computadores 4. Cluster Beowulf considerações de projeto 5. Cluster x Grid 6.

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 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

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

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

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

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

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 3 ARQUITETURA DE VON NEUMANN E DESEMPENHO DE COMPUTADORES Prof. Luiz Gustavo A. Martins Tipos de Arquitetura Arquitetura de von Neumann: Conceito de programa armazenado; Dados

Leia mais

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Aula 2 Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Sistema Operacional de Rede Definição: Conjunto de módulos que ampliam as tarefas dos sistemas operacionais locais, complementando-os

Leia mais

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES ALGORÍTMOS PARALELOS (Aula 2) Neyval C. Reis Jr. OUTUBRO/2004 LCAD Laboratório de Computação de Alto Desempenho DI/UFES Programa do Curso LCAD 1. Introdução 2. Arquitetura de Computadores 3. Arquiteturas

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

Introdução às arquiteturas paralelas e taxonomia de Flynn

Introdução às arquiteturas paralelas e taxonomia de Flynn Introdução às arquiteturas paralelas e taxonomia de Flynn OBJETIVO: definir computação paralela; o modelo de computação paralela desempenhada por computadores paralelos; e exemplos de uso da arquitetura

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

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

A Evolução dos Sistemas Operacionais

A Evolução dos Sistemas Operacionais Capítulo 3 A Evolução dos Sistemas Operacionais Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

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

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo 1 Professores: Aula 10 Lúcia M. A. Drummond Simone de Lima Martins Conteúdo: Arquiteturas Avançadas - Arquiteturas RISC - Processamento Paralelo 2 Arquiteturas RISC Reduced Instruction Set Computer se

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

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

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

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

FACULDADE PITÁGORAS PRONATEC

FACULDADE PITÁGORAS PRONATEC FACULDADE PITÁGORAS PRONATEC DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Objetivos Ao final desta apostila,

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Aula 01 Tecnologias e Perspectiva Histórica Edgar Noda Pré-história Em 1642, Blaise Pascal (1633-1662) construiu uma máquina de calcular mecânica que podia somar

Leia mais

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede Prof. Samuel Souza } Monolíticas Aplicações em um computador centralizado } Em Rede Aplicações com comunicação em rede } Distribuídas Comunicação e cooperação em rede } Aplicações que são funcionalmente

Leia mais

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com

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

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

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 6 OBJETIVOS OBJETIVOS ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall Qual é a capacidade de processamento e armazenagem

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

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

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

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações

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

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

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

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto Fundamentos de Arquitetura de Computadores Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 4. i. Introdução ii. O Trabalho de um Processador iii. Barramentos iv. Clock Interno e Externo v. Bits do Processador

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

Virtualização de Desktops NComputing

Virtualização de Desktops NComputing NComputing Resumo Todos já nos acostumamos ao formato do PC, que permite que cada usuário tenha sua própria CPU, seu próprio disco rígido e sua própria memória para rodar seus aplicativos. Mas os computadores

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Organização de Computadores 2005/2006 Processamento Paralelo

Organização de Computadores 2005/2006 Processamento Paralelo Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 Introdução 2 Porquê?...........................................................................................

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho

A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho Rodrigo Santos de Souza, Adenauer C. Yamin Universidade Católica de Pelotas - UCPel {rsouza,adenauer}@ucpel.tche.br, 1 Introdução

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

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

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

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

Curso Técnico de Nível Médio

Curso Técnico de Nível Médio Curso Técnico de Nível Médio Disciplina: Informática Básica 3. Software Prof. Ronaldo Software Formado por um conjunto de instruções (algoritmos) e suas representações para o

Leia mais

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França Arquitetura NUMA 1 Daniel de Angelis Cordeiro INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França 6 de Outubro de 2010 1 Baseado em slides feitos por Christiane Pousa

Leia mais

Arquitetura de Von Neumann e os Computadores Modernos

Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Computadores e Software Básico Aula 5 Flávia Maristela (flaviamsn@ifba.edu.br) Arquitetura de Von Neumann e as máquinas modernas Onde

Leia mais

Virtualização de desktop da NComputing

Virtualização de desktop da NComputing Virtualização de desktop da NComputing Resumo Todos nos acostumamos ao modelo PC, que permite que cada usuário tenha a sua própria CPU, disco rígido e memória para executar seus aplicativos. Mas os computadores

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

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

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

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Prof. M.Sc. Diego Fernandes Emiliano Silva diego.femiliano@gmail.com Agenda Infraestrutura de TI Infraestrutura de TI: hardware Infraestrutura de TI: software Administração dos recursos

Leia mais

Virtualização. O conceito de VIRTUALIZAÇÃO

Virtualização. O conceito de VIRTUALIZAÇÃO Virtualização A virtualização está presente tanto no desktop de um entusiasta pelo assunto quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não se trata de "moda" ou mero

Leia mais

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD. AULA4: PROCESSADORES 1. OBJETIVO Figura 1 Processadores Intel e AMD. Conhecer as funcionalidades dos processadores nos computadores trabalhando suas principais características e aplicações. 2. INTRODUÇÃO

Leia mais

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES 2.1 Organização de um Computador Típico : Armazena dados e programas. Processador (CPU - Central Processing Unit): Executa programas armazenados na memória, interpretando

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

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

Fonte de Consulta: Sistemas de Informação e as Decisões Gerenciais na Era da Internet James A. O Brien NOTAS DE AULA

Fonte de Consulta: Sistemas de Informação e as Decisões Gerenciais na Era da Internet James A. O Brien NOTAS DE AULA NOTAS DE AULA 1. TENDÊNCIAS EM SISTEMAS DE MICROCOMPUTADORES Existem várias categorias principais de sistemas de computadores com uma diversidade de características e capacidades. Consequentemente, os

Leia mais

AULA1 Introdução a Microprocessadores gerais

AULA1 Introdução a Microprocessadores gerais AULA1 Introdução a Microprocessadores gerais Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Prof. Eduardo Henrique Couto ehcouto@hotmail.com 2014/1 Apresentação do Professor: Cronograma:

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. 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

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

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

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

Sistemas Distribuídos Aula 1 Introdução

Sistemas Distribuídos Aula 1 Introdução Sistemas Distribuídos Aula 1 Introdução 35T34 3B2 Programa Introdução. Conceitos de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Processos e processadores

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Estudo de Caso. O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios e Computação em Nuvem para Criar Valor de Negócios

Estudo de Caso. O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios e Computação em Nuvem para Criar Valor de Negócios Estudo de Caso O Fator Wow! : Um Exemplo Perfeito do Uso de Analítica de Negócios Introdução Este Estudo de Caso é sobre como uma corporação (IBM) encontrou uma maneira de extrair valor de negócios adicional

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

Microprocessadores II - ELE 1084

Microprocessadores II - ELE 1084 Microprocessadores II - ELE 1084 CAPÍTULO III OS PROCESSADORES 3.1 Gerações de Processadores 3.1 Gerações de Processadores Primeira Geração (P1) Início da arquitetura de 16 bits CPU 8086 e 8088; Arquiteturas

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

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

Thin Clients : aumentando o potencial dos sistemas SCADA

Thin Clients : aumentando o potencial dos sistemas SCADA Artigos Técnicos Thin Clients : aumentando o potencial dos sistemas SCADA Tarcísio Romero de Oliveira, Engenheiro de Vendas e Aplicações da Intellution/Aquarius Automação Industrial Ltda. Um diagnóstico

Leia mais

Grades Computacionais: Uma Introdução Prática

Grades Computacionais: Uma Introdução Prática Grades Computacionais: Uma Introdução Prática Raphael Y. de Camargo Ricardo Andrade Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo, Brasil São Paulo,

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

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

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos ISEP Instituto Superior de Engenharia do Porto Análise de Sistemas Informáticos Armazenamento de Dados em Rede A Revolução do Armazenamento Partilhado A crise económica e a crescente necessidade de armazenamento

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

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03 INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03 fevereiro/2011 Surgimento, desenvolvimento e evolução dos sistemas operacionais até os sistemas modernos. 1 - Introdução A evolução dos sistemas operacionais

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

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

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

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

slide 0 Algoritmos Paralelos

slide 0 Algoritmos Paralelos slide 0 Algoritmos Paralelos Slide 2 Demanda por Velocidade Computational Demanda contínua por maior rapidez computational das máquinas que as atualmente disponíveis. As áreas que exigem maior rapidez

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br ESQUEMA DE UM COMPUTADOR Uma Unidade Central de

Leia mais

Relatório de teste em Ambiente de Cluster OpenVMS

Relatório de teste em Ambiente de Cluster OpenVMS Compaq OpenVMS e Digital Networks Relatório de teste em Ambiente de Cluster OpenVMS 14 de agosto de 2001 1 Resumo executivo Testes foram realizados com equipamentos Digital Networks (DNmultilayer 1200

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

Single-Chip Cloud Computer

Single-Chip Cloud Computer IME-USP Departamento de Ciência da Computação Single-Chip Cloud Computer Diogo de Jesus Pina 6798294 (diogojpina@gmail.com) Everton Topan da Silva 6514219 (everton.topan.silva@usp.br) Disciplina: Organização

Leia mais

7 Processamento Paralelo

7 Processamento Paralelo 7 Processamento Paralelo Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time? (The Matrix) 7.1 Introdução Classificação de Sistemas Paralelos Diversas

Leia mais