Um Estudo das Potencialidades e Limites na Exploração do Paralelismo

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

Download "Um Estudo das Potencialidades e Limites na Exploração do Paralelismo"

Transcrição

1 2 UNIVERSIDADE CATÓLICA DE PELOTAS ESCOLA DE INFORMÁTICA Um Estudo das Potencialidades e Limites na Exploração do Paralelismo Adenauer Corrêa Yamin O que for a profundeza do teu ser, assim será teu desejo. O que for o teu desejo, assim será a tua vontade. O que for a tua vontade, assim serão teus atos. O que forem teus atos, assim será teu destino. Brihadaranyaka Upanishad IV, 4.5 Disciplina: Processamento Paralelo e de Alto Desempenho

2 3 4 SUMÁRIO 1 INTRODUÇÃO Tema Motivação Objetivos Estrutura do Texto PROCESSAMENTO PARALELO: SUA DIFUSÃO E USO Aspectos Favoráveis à Adoção do Processamento Paralelo Barreiras ao Crescimento da Freqüência de Operação dos Processadores Largura de Banda no Acesso a Memória Paralelismo Intrínseco do Mundo Real A Relação Custo-Benefício dos Processadores de Última Geração Aplicações Extremamente Complexas Suporte a Tolerância a Falhas Crescimento Modular Aspectos Desfavoráveis à Adoção do Processamento Paralelo Disponibilidade de Software Aplicativo Padronização Relação entre a Teoria e a Tecnologia Instabilidade dos Fornecedores Considerações finais ORGANIZAÇÃO DO HARDWARE PARA O PARALELISMO Redes de Interconexão Utilizadas em Arquiteturas Paralelas Alternativas para Interligar o Processador à Rede de Interconexão Topologias da Rede de Interconexão Topologia em Barramento Topologia em Malha Topologia em Hipercubo Topologia em Árvore Características que Definem o Desempenho de uma Rede de Interconexão Características das Arquiteturas Paralelas Mais Utilizadas A Classificação de Flynn para Arquiteturas de Computadores Arquiteturas de Memória Distribuída Principais aspectos positivos Principais aspectos negativos Arquiteturas de Memória Compartilhada Principais aspectos positivos Principal aspecto negativo Arquiteturas Síncronas Matriciais Principais aspectos positivos Principais aspectos negativos Considerações finais RELAÇÕES ENTRE O HARDWARE E O SOFTWARE PARA EXPLORAÇÃO DO PARALELISMO Relação entre Algoritmos e Arquiteturas Paralelas Critérios para Caracterização de Algoritmos Critérios para Caracterização das Arquiteturas Paralelas Propriedades de um Modelo de Programação para o Processamento Paralelo Facilidade para o Desenvolvimento de Software Uma Metodologia para o Desenvolvimento de Software Independência de Arquitetura Facilidade para Ser Entendido Garantia de Desempenho Medidas de Custo Considerações finais A EXPLORAÇÃO DO PARALELISMO: NÍVEIS DE ABSTRAÇÃO E MODELOS Modelos nos quais o Paralelismo é Explorado de Forma Totalmente Implícita Programação Funcional Fonte Implícita de Paralelismo Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo... 54

3 Programação em Lógica Fontes Implícitas de Paralelismo Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Modelos com Assinalamento do Paralelismo Explícito Paralelismo de dados - exploração de laços Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Modelos com Assinalamento e Decomposição do Paralelismo Explícitos Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Modelos com Assinalamento, Decomposição e Mapeamento do Paralelismo Explícitos Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Modelos com Assinalamento, Decomposição, Mapeamento e Comunicação Explícitos Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Modelos nos quais o Paralelismo é Explorado de Forma Totalmente Explícita Exemplo de Exploração do Paralelismo Potencialidade de Exploração do Paralelismo Considerações finais CONCLUSÕES Variáveis Tecnológicas e de Mercado Hardware para o Processamento Paralelo Relações entre o Hardware e o Software Abstração na Exploração do Paralelismo LISTA DE FIGURAS FIGURA Alternativas para conectar o processador a rede de interconexão...26 FIGURA 3.2 Topologia em barramento...27 FIGURA 3.3 Topologia em malha...28 FIGURA 3.4 Topologia em hipercubo...29 FIGURA 3.5 Topologia em árvore...30 FIGURA Blocos básicos dos computadores seqüenciais...31 FIGURA Arquitetura genérica de multiprocessador de memória distribuída...33 FIGURA Arquitetura genérica de multiprocessador de memória compartilhada...35 FIGURA Arquitetura genérica síncrona matricial...38 FIGURA Escalabilidade & Facilidade de Programação de Arquiteturas Paralelas...40 FIGURA Modelo Para Computação Paralela...46 FIGURA 5.1 Números de Fibonacci em Programação Funcional...53 FIGURA 5.2 Fontes de Paralelismo na Programação em Lógica...56 FIGURA Arquiteturas dos 500 mais poderosos hardwares paralelos...70

4 7 8 LISTA DE TABELAS LISTA DE ABREVIATURAS TABELA 1 - Diversidade das arquiteturas paralelas...22 TABELA 2 - Relação entre as características do hardware e do software paralelo...43 ATM BSP CMOS DRAM DSM ECL FDDI FFT HIPPI HPF Mbps MFLOPS MIMD MIPS MISD NFS NUMA OLTP PVM SIMD SISD SONET SPMD SR SRAM TCP/IP Assynchronous Transfer Mode Bulk Synchronous Parallelism Complementary Metal Oxide Semiconductor Dynamic Random Access Memory Distributed Shared Memory Emmiter Coupled Logic Fiber Distributed Data Interface Fast Fourier Transformation High-Performance Parallel Interface High Performance Fortran Milhões de bits por segundo Milhões de Instruções de Ponto Flutuante Por Segundo Múltiplas seqüências de Instruções, Múltiplas seqüências de Dados Milhões de Instruções Por Segundo Múltiplas Seqüências de Instruções, uma Seqüência de Dados Network File System NonUniform Memory Access On Line Transaction Processing Parallel Virtual Machine Uma Seqüência de Instruções, Múltiplas Seqüências de Dados Uma Seqüência de Instruções, uma Seqüência de Dados Synchronous Optical NETwork Simple Program Multiple Data Synchronizing Resources Static Random Access Memory Transmition Control Protocol/Internet Protocol

5 9 10 RESUMO ABSTRACT O processamento paralelo, apesar de vir sendo utilizado com sucesso em diversas áreas da atividade humana, particularmente em pesquisa e desenvolvimento, onde historicamente tem tido destaque em aplicações numericamente intensivas, ainda representa um percentual pequeno do mercado de hardware e software. Há aproximadamente duas décadas, o processamento paralelo já está disponível comercialmente. Neste período, seu emprego atravessou fases de extremo otimismo, bem como atravessou outras em que foi encarado como um nicho de mercado em declínio. Com o objetivo de delinear tanto os aspectos favoráveis como os contrários à difusão do paralelismo, este trabalho pondera: as tendências do mercado, as características das arquiteturas paralelas, as relações entre estas e o software paralelo e as características desejáveis a um modelo de programação paralela. O trabalho culmina com a análise das potencialidades e limites para exploração do paralelismo, em função dos níveis de abstração dos diferentes modelos de programação. The parallel processing, in spite of being used with success in several areas of the human activity, particularly in research and development, where historically it has been having prominence in numerically intensives applications, it still represents a small percentage of the hardware and software market. As long two decades, the parallel processing has been commercially available. In this period its employment crossed phases of extreme optimism, also it crossed others were it was seen as a market niche in decline. With the objective of delineating so much the favorable aspects as the obstacles to the diffusion of the parallelism, this work considers: the tendencies of the market, the characteristics of the parallel architectures, the relationships between these and the parallel software and the desirable characteristics of a model of parallel programming. It culminates with the analysis of the potentialities and limits of the parallelism exploitation, in function of the levels of abstraction of the different programming models. Palavras-chave: processamento paralelo, arquiteturas paralelas, modelos de programação paralela. Keywords: parallel processing, parallel architectures, models of parallel programming.

6 INTRODUÇÃO 1.1 Tema O tema deste trabalho é o estudo das potencialidades e limites na exploração do paralelismo. A abordagem proposta contempla tanto aspectos do hardware como do software. 1.2 Motivação A perspectiva de utilizar paralelismo nos sistemas de computação é tão antiga quanto os primeiros computadores. Trabalhos desenvolvidos por Von Neumann, na década de 40, já ponderavam a possibilidade de utilizar algoritmos paralelos para a solução de equações diferenciais. Entre os primeiros trabalhos envolvendo o paralelismo, com implementação de hardware, os registros apontam para o período , quando Stibitz e Williams, nos laboratórios da Bell Telephone, desenvolveram o sistema MODEL V. Formado por dois processadores e três canais de entrada e saída, esse multiprocessador primitivo já constituía um exemplo típico de arquitetura paralela. Nele poderiam ser executados dois programas distintos, bem como seus dois processadores poderiam ser alocados para uma única execução. Disponível comercialmente há aproximadamente duas décadas, o paralelismo vem sendo utilizado com sucesso em diversos ramos da atividade humana. Vem prestando relevantes serviços à área de pesquisa e desenvolvimento, onde historicamente tem se destacado as soluções que oferece para o processamento numericamente intensivo. Neste período, a perspectiva do seu emprego tem oscilado de um extremo otimismo, no qual o processamento paralelo é visto como a única solução para a complexidade crescente das aplicações computacionais, a um pessimismo intenso, a partir do qual o paralelismo é entendido como um nicho de mercado em declínio. Diversos trabalhos tem sido desenvolvidos buscando potencializar a exploração do paralelismo nos diversos paradigmas de programação. Surgiram, dentre outras, propostas para explorar paralelismo na programação em lógica ([KER 94]), na programação funcional ([JON 93]), na orientação a objetos ([BRI 98]) e no paradigma imperativo ([AND 92]), cada qual com suas características de abstração, facilidade de desenvolvimento de software e potencialidade para o desempenho. Apesar de todos estes esforços da comunidade científica e de seu sucesso em diversas áreas de aplicação, o paralelismo ainda não é uma metodologia central em ciência da computação, e os negócios envolvendo o mesmo constituem um percentual pequeno do montante de hardware e software anualmente negociado. A motivação central deste trabalho é estudar as razões para este comportamento na área do paralelismo. A organização para este estudo está feita de forma que sejam contemplados os objetivos previstos na seção seguinte. 1.3 Objetivos O objetivo geral deste trabalho consiste na organização do conhecimento relacionado com as potencialidades e limites na exploração do paralelismo. Com a perspectiva de uma abordagem o mais ampla possível, foram contemplados os seguintes objetivos específicos: caracterizar os aspectos tecnológicos e de mercado favoráveis à disseminação do paralelismo; identificar os principais obstáculos para uma adoção mais generalizada do paralelismo, pelos usuários de recursos de computação; compor, para os principais hardwares atualmente empregados para exploração do paralelismo, a relação dos pontos positivos e negativos de suas características; relacionar as características do software paralelo, com aquelas necessárias na arquitetura, para sua execução com o máximo desempenho; discutir as características necessárias a um modelo de programação para o desenvolvimento de software paralelo; caracterizar a potencialidade de exploração do paralelismo nos diferentes níveis possíveis para abstração da sua gerência.

7 13 14 A estrutura definida para o texto contempla individualmente estes objetivos, porém os mesmos estão interrelacionados sempre que necessário para caracterizar fatos e tendências na área do paralelismo. 1.4 Estrutura do Texto O texto está formado por seis capítulos, a saber: O capítulo um é a corrente introdução, aonde está registrada a motivação bem como os objetivos do trabalho. O capítulo dois trata dos aspectos favoráveis e desfavoráveis para uma ampla adoção do paralelismo. São trazidos à consideração os limites tecnológicos para o hardware, as tendências de mercado e particularidades do desenvolvimento de software paralelo, dentre outros pontos. O capítulo três, por sua vez, discorre sobre a organização do hardware para o paralelismo. Neste capítulo também é mantida a ótica de prós e contras, agora aplicada às diferentes alternativas para construção de arquiteturas paralelas. O capítulo quatro está dividido em duas partes: uma primeira está dedicada a caracterizar as relações entre a natureza do software e a arquitetura paralela mais adequada à mesma, e uma segunda parte que discute as alternativas necessárias a um modelo de programação paralela, para que este possa minimizar os aspectos negativos que esta forte sintonia entre o hardware e o software traz para o desenvolvimento de software paralelo. O capítulo cinco, levando em consideração o discutido nos anteriores, discorre sobre a possibilidade de exploração do paralelismo em diferentes níveis de abstração, partindo de modelos cuja exploração do paralelismo é feita de forma totalmente automática, até aqueles nos quais o programador precisa explicitar todos os aspectos de sua exploração e gerência. Finalizando, o capítulo seis apresenta as conclusões gerais. 2 PROCESSAMENTO PARALELO: SUA DIFUSÃO E USO O objetivo central deste capítulo é levantar os aspectos gerais que tem estimulado o uso do processamento paralelo, bem como aqueles que tem restringido seu emprego. O foco são as implicações da tecnologia nos mercados produtor e consumidor. Um problema central em computação paralela, segundo [SKI 94], é o desencontro entre as necessidades do software paralelo e as propriedades das arquiteturas paralelas sobre as quais eles serão executados. Este distanciamento entre o hardware e o software paralelo oscila com rapidez, isto porque o tempo de vida de uma arquitetura paralela é, via de regra, medido em anos, enquanto que o tempo de vida desejável para qualquer software de grande porte é medido em décadas. Dentro de uma visão tradicional, o procedimento é, no espaço de alguns anos, rescrever o software à medida que uma nova tecnologia de arquitetura paralela é disponibilizada no mercado. A rescrita de código, dentre outros problemas, introduz custos. 2.1 Aspectos Favoráveis à Adoção do Processamento Paralelo Nesta seção serão tratados aspectos que podem ser vistos como estímulos para adoção do processamento paralelo, seja a partir do ponto de vista da exaustão das arquiteturas seqüenciais em função dos limites impostos pela tecnologia atual, seja considerando as necessidades dos diferentes segmentos usuários BARREIRAS AO CRESCIMENTO DA FREQÜÊNCIA DE OPERAÇÃO DOS PROCESSADORES Como regra geral, quando maior a freqüência de operação do processador (clock), maior desempenho terá o computador. Porém é importante ter presente que, uma vez mantidos aspectos como conjunto de instruções, arquitetura, etc., o desempenho efetivo (registrado pelos benchmarks tradicionais, tais como MIPS, MFLOPS, SPECmarks) não irá crescer na mesma razão do clock. Outros aspectos precisariam acompanhar o crescimento do clock, como por exemplo a eficiência (largura de banda) de acesso à memória. Independente desta posição não otimista para a relação

8 15 16 desempenho/clock, considerando o nível em que se encontra atualmente a velocidade de operação dos processadores, a mesma já enfrenta entraves tecnológicos para seu aumento. Destacam-se os seguintes aspectos como limitadores para o crescimento do clock ([HWA 93]): O consumo de energia e a conseqüente dissipação térmica: os componentes projetados para clocks elevados (tais como SRAM ou ECL) apresentam índices de consumo e dissipação térmica bem mais elevados que os similares (DRAM, CMOS) para clocks mais modestos. A dimensão do processador e seus componentes acessórios: limitados pela velocidade da luz, os elétrons podem percorrer distâncias menores à medida que a duração do pulso de clock diminui. Um clock de 1 GHz (1000 MHz) limita a distância máxima de deslocamento dos elétrons à grandeza de centímetros (o valor exato depende das características do substrato semicondutor). Deste modo, para operar nesta velocidade se fazem necessários componentes eletrônicos altamente densos, bem como cuidados extremos com o comprimento dos condutores que os interligam. Esta elevada densidade de integração e a restrição nas dimensões globais dificulta o fluxo do elemento resfriador (ar, água, etc.), o que, por sua vez, introduz severas dificuldades no processo de dissipação térmica. Além disto, é preciso considerar o fato que em freqüências elevadas ficam potencializados os fenômenos de capacitâncias e indutâncias parasitas, os quais dificultam sobremaneira os níveis de integração dos semicondutores. Estes dois aspectos independentes se interrelacionam no equilíbrio entre desempenho e possibilidade de operação estável e confiável. As arquiteturas de alto desempenho são utilizadas, quase sempre, em missões críticas e pelo seu custo não é usual mais do que uma unidade em cada instalação LARGURA DE BANDA NO ACESSO A MEMÓRIA O aproveitamento do crescente poder computacional dos modernos processadores esbarra no de fato que o fluxo de dados possível entre os mesmos e a memória não cresce na mesma proporção. Este comportamento foi denominado Gargalo de Von Neumann, e caracteriza que o poder de processamento disponibilizado para computação de um problema é limitado em função da taxa de transferência de dados e instruções entre a memória e o processador. O uso de vários processadores na solução do problema faculta, com a soma de suas taxas de transferência individuais, a superação do Gargalo de Von Neumann. Existem diferentes formas de interligar diversas memórias a vários processadores na definição uma máquina paralela. Cada estratégia de interconexão (vide item 3.1) tem implicações diretas em aspectos operacionais, tais como: emprego genérico (possibilidade de uso com desempenho desta máquina paralela a um número maior de naturezas de problemas), na sua escalabilidade e no seu custo, dentre outros ([CUL 99]) PARALELISMO INTRÍNSECO DO MUNDO REAL Os fenômenos naturais são inerentemente paralelos. Deste modo, seria natural e direto expressar as computações pertinentes ao mundo real de forma paralela, ou ao menos de uma forma que não impeça o paralelismo. Escrever programas seqüenciais, via de regra, implica impor uma ordem as ações que são independentes e que poderiam ser executadas concorrentemente. Na programação seqüencial, é inevitável arbitrar uma particular ordem na qual as ações são colocadas. Isto pode tornar o computador um impecilho para a percepção de novos conceitos. Some-se a isto o fato que situações nas quais a ordem de execução das ações é importante para o melhor entendimento do problema real, são difíceis de diferençar daquelas nas quais a ordem de execução praticamente não importa ([SKI 98)] A RELAÇÃO CUSTO-BENEFÍCIO DOS PROCESSADORES DE ÚLTIMA GERAÇÃO Mesmo que a recente tendência histórica de crescimento da velocidade dos processadores se mantenha, a computação paralela possibilita para muitas aplicações, uma relação custo/benefício melhor do que a conseguida ao utilizar equipamentos com um só processador de última geração. Isto ocorre, em grande parte, devido aos custos de projeto e fabricação de cada nova geração de processadores. A cada novo processador mais poderoso, o preço da geração anterior cai consideravelmente; desde modo, agrupar em um equipamento paralelo processadores mais antigos provê um alternativa computacional de custo competitivo. Tendo em vista que cada nova geração introduz um acréscimo de desempenho com magnitude da ordem de décimos, mesmo modestos agrupamentos de processadores não tão atuais, são viáveis no que diz respeito ao desempenho global. Este aspecto se potencializa ainda mais se a escolha tecnológica do

9 17 18 hardware para interligação não apresentar custo elevado. Esta tendência é, em parte, responsável pela popularidade das estações de trabalho em rede de alta velocidade (10 Mbps no mínimo) como alternativa de equipamento para processamento paralelo ([CUL 99]) APLICAÇÕES EXTREMAMENTE COMPLEXAS Existem aplicações que demandam elevadíssimo poder computacional. Por mais poderoso que possa ser determinado processador, dentro do atual estado tecnológico, a combinação de vários destes em uma arquitetura para processamento paralelo, torna disponível maior capacidade de processamento que a possível com um único. Como exemplo de aplicações que atualmente demandam grandes recursos computacionais destacam-se: inteligência artificial, incluindo redes neurais, robótica e reconhecimento de padrões; análise de elementos finitos, onde aparecem diversos tipos de equações diferenciais aplicadas a mecânica estática, eletromagnetismo, e dinâmica dos fluidos; simulação, onde se sobressaem as técnicas de Monte Carlo; processamento de sinais, envolvendo FFT (Fast Fourier Transformation) sobre grandes volumes de dados, processamento de imagens e processamento sísmico; algoritmos básicos em ciência da computação: classificação, busca e processamento de árvores e grafos; grandes bancos de dados com resposta em tempo real (OLTP On Line Transaction Processing); Freqüentemente é sugerido que os equipamentos paralelos, sobretudo os de grande porte, são comprometidos com propósitos especiais. A idéia inerente a esta afirmação é que somente um pequeno conjunto de aplicações poderia ser executado eficientemente em um hardware paralelo. A lista de aplicações acima indica exatamente o contrário; a ineficiência do processamento paralelo tem muito mais relação com as dimensões do problema do que com as particularidades de um domínio específico do conhecimento humano. Nos últimos dez anos os computadores paralelos tem sido programados com eficiência tanto para aplicações do mundo comercial como para o da pesquisa e desenvolvimento ([MOR 94]) SUPORTE A TOLERÂNCIA A FALHAS Muitas aplicações críticas (controle de tráfego aéreo, sistemas de controle industriais, automações bancárias, etc.) exigem um regime de operação sem interrupções. A existência de redundância de hardware, inerente às arquiteturas paralelas, oferece um suporte natural às técnicas de tolerância a falhas. Alguns processadores podem monitorar e registrar a operação do sistema, no momento que for detectado alguma disfunção, as partes envolvidas podem ter suas funções continuadas por outras. Deste modo, no caso de falhas, o equipamento paralelo pode manter a computação corrente, possivelmente ocorrendo tão somente uma diminuição no desempenho na prestação dos serviços ([HWA 93]) CRESCIMENTO MODULAR Esta característica diferencia fortemente as arquiteturas paralelas e distribuídas dos equipamentos mainframes tradicionais. Nas arquiteturas com um único processador, o usuário no momento do crescimento da plataforma, precisa prever sua demanda no mínimo a médio prazo. Isto leva a um crescimento feito aos saltos. Logo após a expansão, é comum a instalação como um todo apresentar uma relação custo/benefício ruim. Tanto para o fornecedor quanto para o usuário, é muito oportuno que a arquitetura possa ser expandida gradualmente através da adição de módulos. Esta possibilidade permite uma melhor adequação da curva investimentos & produtividade, uma vez que o equipamento poderá crescer dentro de uma determinada faixa, tendo como regulador a demanda de serviço real ([MOR94]). 2.2 Aspectos Desfavoráveis à Adoção do Processamento Paralelo O processamento paralelo está comercialmente presente há aproximadamente 20 anos, com a fabricação dos equipamentos CDC6600 e IBM360/91. Tem sido utilizado com sucesso em ciência e engenharia, ou até mesmo em áreas novas como inteligência artificial e simulação financeira. A computação paralela, porém está longe de ser uma metodologia central em ciência da computação e a venda de hardware/software paralelo representa

10 19 20 uma pequena parcela dos negócios de equipamentos para computação. Esta seção objetiva identificar os principais aspectos que contribuem para esta situação DISPONIBILIDADE DE SOFTWARE APLICATIVO É exatamente a disponibilidade de software de terceiros com qualidade (um número típico para as diferentes marcas seria 1500 aplicações) que tem potencializado o mercado das estações de trabalho de elevado desempenho. Por sua vez, a ausência de aplicações disponíveis no mercado tem sido um dos fatores a restringir a adoção de equipamentos paralelos por parte das empresas em geral. Poucas empresas, à exceção das instituições de pesquisa e ensino, não se intimidam ante os esforços para portar e/ou desenvolver software para exploração do paralelismo. Este aspecto acaba sendo significativo no momento de decidir pela não adoção de um equipamento paralelo. Tentando traçar um perfil, é possível dizer que no binômio fazer & comprar, o software paralelo que uma empresa poderia necessitar, ainda está muito polarizado no fazer. Do ponto de vista de uma empresa que desenvolve e comercializa software, a decisão de investir no mercado de processamento paralelo ou em outras frentes (por exemplo, melhoramentos em produtos já amplamente utilizados) é influenciada por no mínimo cinco fatores ([MOR 94]): pequena base instalada: o mercado de equipamentos paralelos é pequeno, independente do referencial que for utilizado. Os equipamentos maiores estão nos laboratórios governamentais, os quais, via de regra, tem sua própria equipe de desenvolvimento. Outro grupo de equipamentos está em universidades, utilizados principalmente para pesquisa e ensino. Por sua vez, as empresas que fazem desenvolvimento tecnológico de seus produtos com o suporte de computadores paralelos (empresas químicas, automóveis, aviões), por questões de propriedade intelectual, também tem seu próprio grupo de programação. elevado custo de conversão: atualmente, para uma empresa migrar seu produto de software de uma arquitetura tradicional para uma plataforma paralela, terá de ter uma equipe de desenvolvimento conhecedora do hardware paralelo utilizado. Em função deste hardware, poderão ser necessárias modificações no layout de dados, no fluxo de controle, e até mesmo nos algoritmos básicos utilizados. O ganho de desempenho, principal razão de ser da adoção do hardware paralelo, poderá ser prejudicado com a não observância criteriosa destas modificações quase sempre indispensáveis. ausência de padrões: as linguagens para desenvolvimento de aplicações, bem como o hardware paralelo, variam de fornecedor para fornecedor, e na maioria das vezes mesmo mantido o fornecedor, de equipamento para equipamento. Além disso, mesmo que uma linguagem seja adotada como padrão, a necessidade de otimizar os algoritmos empregados ao novo hardware paralelo em questão, normalmente irá exigir um esforço de recodificação significativo. validação: testar o quão correto está o porte de um software para uma máquina paralela pode se mostrar uma tarefa bastante complexa, até mesmo porque os resultados das implementações seqüencial e paralela podem apresentar diferenças. Isto se potencializa para códigos numéricos, nos quais a convergência, a precisão e o erro acumulado, são fortemente influenciados pelo tamanho do problema. A decisão por uma arquitetura paralela, normalmente contempla problemas com dimensões bem maiores que aquelas possíveis de serem computadas em equipamentos com um só processador. Apesar dos matemáticos garantirem que o resultado de uma soma de números não depende da ordem de sua realização (propriedade associativa da soma), o hardware de ponto flutuante pode apenas se aproximar desta abstração. Considerações similares a esta fazem da validação do software paralelo uma atividade complexa e tratada com muita cautela pelos desenvolvedores de software, até mesmo porque incorreções na versão paralela podem lançar dúvidas sobre a qualidade da versão seqüencial já disponível. instabilidade no fornecimento: a perspectiva de portar software para um equipamento paralelo, com toda complexidade que lhe é inerente, que breve poderá desaparecer é fortemente desistimulante. No item são apresentadas algumas razões para a mortalidade precoce de fornecedores de hardware paralelo. Por outro lado, mesmo que a empresa permaneça no mercado, a busca pelo maior desempenho possível faz com que, em alguns casos, nem mesmo o conjunto de instruções se mantenha de uma geração do equipamento para outra. Como conseqüência, os códigos aplicativos

11 PADRONIZAÇÃO desenvolvidos para uma geração precisam ser descartados, ou substancialmente modificados, quando a próxima geração do hardware é introduzida no mercado. Alguns aspectos na oferta dos equipamentos paralelos se mostram razoavelmente padronizados. O uso de estações de trabalho Unix de elevado desempenho como interface para o usuário é bastante usual. Por sua vez, quase todos os fornecedores estão se propondo a suportar padrões de rede NFS, Ethernet, TCP/IP, HIPPI, FDDI, e em breve ATM/SONET. Estes dois aspectos são positivos para inserção do hardware paralelo como servidores em uma rede de sistemas abertos. Por outro lado, a padronização é fraca ou inexistente nas áreas de linguagem e de arquitetura do hardware ([MOR 94]). No que diz respeito a linguagens de programação ou paradigmas para processamento de alto desempenho, cada vendedor fornece sua versão proprietária de C e/ou FORTRAN com extensões paralelas, bibliotecas, diretivas de compilação e modificações especificamente adaptadas para o seu hardware. Nenhuma destas versões proprietárias é suportada pelos outros fornecedores. Um porte de software de um equipamento paralelo para outro pode ser, em certas situações, mais complexo que aquele que tem por base o software de uma arquitetura tradicional. Alguns fornecedores de software disponibilizam bibliotecas e ambientes que processam em várias plataformas paralelas. Destacam-se o Express da ParaSoft, Linda da SCA e PVM do Oak Ridge Labs. A proposta é que uma aplicação escrita utilizando um destes pacotes, poderá ser processada em qualquer um dos equipamentos que os suportarem. Inclusive neste caso se enquadram as redes de estações de trabalho. Esta compatibilidade é porém muitas vezes severamente inviabilizada pelas diferenças operacionais, existentes mesmo entre os hardwares semelhantes, as quais influenciam fortemente em aspectos inerentes as tarefas paralelas (mapeamento, avaliação de granulosidade razoável, dentre outros). A tabela 1 apresenta a diversidade entre as arquiteturas, tendo por base três aspectos importantes das mesmas: o nodo processador, a topologia da rede de interconexão e o paradigma de controle. Equipamento Thinking Machine CM-2 TABELA 1 - Diversidade das arquiteturas paralelas Nodo Processador Bit Serial e Ponto Flutuante Interconexão Controle Hipercubo Multiplexado SIMD Intel Paragon i860 Malha 2-D MIMD (Troca de Mensagens) Kendall Square KS-1 Configurável Hierarquia de Anéis MIMD (Memória Compartilhada com Cache Local) Ncube 2 Configurável Hipercubo MIMD (Troca de Mensagens) Thinking Machine CM-5 Mas Par MP-1 SPARC e Unidades Vetoriais 4 bits configurável e Ponto Flutuante Árvore Malha 2-D e Roteador MIMD sincronizado SIMD Cray T-3D DEC Alpha Malha 3-D MIMD (Troca de Mensagens) Considerando que, para efeito de máximo desempenho, o software precisa estar fortemente sintonizado com a arquitetura, surgem inevitáveis particularizações nos algoritmos utilizados, na organização dos dados, etc. Isto dificulta sobremaneira o desenvolvimento e o porte de software para as diversas arquiteturas existentes RELAÇÃO ENTRE A TEORIA E A TECNOLOGIA A teoria para o processamento paralelo foi desenvolvida após a tecnologia e ainda se encontra imatura em muitos aspectos. Deste modo, a teoria historicamente não vem sugerindo caminhos ou até mesmo limites para exploração tecnológica. Como resultado, ainda não estão disponíveis na abrangência necessária, representações abstratas da computação paralela, lógicas para avaliação da mesma, ou até mesmo algoritmos paralelos que sejam comprovadamente eficientes nas diversas arquiteturas reais ([SKI 98]).

12 INSTABILIDADE DOS FORNECEDORES A indústria de equipamentos paralelos tem apresentado uma taxa de mortalidade bastante elevada. Nos últimos anos empresas como Alliant, BBNTC2000, Multiflow, WaveTracer, Ametek, BiiN e Myrias, todas atuantes no ramo do processamento paralelo encerraram atividades. Precisar todas as razões para esta situação de fracasso é uma tarefa bastante complexa. Alguns aspectos se destacam ([MOR 94]): historicamente, os fornecedores de hardware paralelo assumiram a área científica de alto desempenho e a computação numérica intensiva como seus mercados, ao invés do muito mais amplo mercado comercial de processamento de alta eficiência; Os aspectos desfavoráveis tem como eixo a pouca disponibilidade de software paralelo no mercado, a falta de padronização no hardware e no software básico e a instabilidade no fornecimento. Estes aspectos, apesar de independentes, tem forte interrelacionamento. No próximo capítulo serão tratados os aspectos que caracterizam a funcionalidade das principais arquiteturas paralelas, detalhando sua heterogeneidade intrínseca e a natureza das aplicações que lhe são mais usuais. o mercado de alto desempenho tem se mantido reduzido e voltado para uso militar e de pesquisa. A tendência internacional de criação de centros de excelência em pesquisa e desenvolvimento, imprime a este mercado uma taxa de crescimento reduzida, com conseqüências diretas na possibilidade de rendimento de seus fornecedores; o pequeno mercado para a computação paralela faz com que os computadores paralelos tenham custo elevado, uma vez que poucos equipamentos são comercializados. Este pequeno mercado traz, tanto para os atuais usuários de processamento seqüencial como para fornecedores em geral, pouco entusiasmo quanto a um uso intenso da computação paralela em um futuro próximo. 2.3 Considerações finais Foram examinados os aspectos favoráveis ao paralelismo e aqueles que o tem impedido de se tornar uma tecnologia de amplo uso. Os aspectos favoráveis tiveram por base considerações de hardware e necessidades do usuário. Nas considerações sobre o hardware foram analisados os limites para o crescimento do clock, o encapsulamento dos semicondutores, a dissipação térmica e a largura de banda no acesso à memória. Sob o ponto de vista da necessidade do usuário, aspectos de ordem econômica, de garantia de operação ininterrupta e de desempenho necessário foram ponderados. Todos estes aspectos caracterizam uma tendência bastante favorável à adoção do hardware paralelo.

13 ORGANIZAÇÃO DO HARDWARE PARA O PARALELISMO Os três objetivos centrais deste capítulo são: introduzir a terminologia que será utilizada no restante do texto, caracterizar as arquiteturas paralelas mais utilizadas e discutir seus principais aspectos positivos e negativos. Os conceitos apresentados neste capítulo tem por base as publicações [CUL 99], [HWA 93] e [EL 98]. Contribuições colhidas de outros autores estão inseridas ao longo do mesmo. 3.1 Redes de Interconexão Utilizadas em Arquiteturas Paralelas chave independente do processador: nesta implementação, o processador tem um único canal com a sua chave de interconexão. A principal vantagem deste caso é a maior flexibilidade para criação de nodos heterogêneos na arquitetura. Nodos responsáveis pela entrada/saída poderiam utilizar a mesma chave de interconexão que os nodos processadores. Embora não seja uma prática comum, esta segunda estratégia também faculta que possam ser trocados os processadores e mantida a rede de interconexão. As arquiteturas SIMD não utilizam esta segunda opção de chave. Alguns exemplos de arquiteturas MIMD que a empregam seriam o Intel Paragon, a CM-5 e o Cray T-3D. Uma desvantagem decorrente do dissociação entre o processador e a chave de interconexão é o prejuízo do nível de integração (mais circuitos integrados, mais conexões, etc.). Não importando o tipo da arquitetura, todo computador paralelo necessita de uma rede de interconexão para criar canais de comunicação entre os seus diversos recursos de processamento, armazenamento e entrada/saída. Considerando a diversidade das alternativas tecnológicas, esta seção vai explorar aspectos centrais pertinentes ao tema, a partir dos quais, podem ser entendidas as várias alternativas possíveis para as redes de interconexão. P Memória Chave a) Chave associada ao processador Mem P Chave b) Chave independente do processador ALTERNATIVAS PARA INTERLIGAR O PROCESSADOR À REDE DE INTERCONEXÃO Do ponto de vista da organização hardware existem duas possibilidades para o posicionamento das chaves de interconexão (vide figura 3.1) ([MOR 94]): chave associada ao processador: neste caso, a maioria das vezes a chave está localizada no mesmo circuito integrado (chip) do processador. Nesta implementação é possível para o processador enviar e/ou receber múltiplas mensagens concorrentes, o que em determinadas situações pode ser oportuno para exploração do paralelismo. Como exemplo, temos o emprego desta tecnologia nas arquiteturas SIMD (vide item 3.2.4) CM-1, CM-2 e AMT DAP, e também nas arquiteturas MIMD (vide item 3.2.2) ncube, Transputer, iwarp e KS-1. FIGURA Alternativas para conectar o processador a rede de interconexão TOPOLOGIAS DA REDE DE INTERCONEXÃO Uma vez que a interconexão direta de todos os processadores entre si não é viável quando o número dos mesmos aumenta, como regra geral é utilizado um padrão para definir as ligações. Este padrão é denominado de topologia da rede de interconexões. Três parâmetros podem ser utilizados para caracterizar o possível desempenho de uma topologia. Os mesmos são: a largura da bisseção, o diâmetro e o grau ([BAK 96]).

14 27 28 A largura da bisseção indica quantas mensagens simultâneas podem ser trocadas entre duas metades da rede de interconexão. É um indicador da largura de banda possível para as comunicações através da rede. O diâmetro indica qual o menor número de nodos intermediários que precisam ser envolvidos, para que dois processadores, o mais distantes possível, se comuniquem. O grau indica o número máximo de mensagens que podem ser manipuladas (enviadas ou recebidas) simultaneamente por cada um dos processadores Topologia em Barramento usual em pequenos agrupamentos (clusters) de estações de trabalho interligadas por redes locais Topologia em Malha Os processadores nesta topologia tem um canal de comunicação direto com o seu vizinho (a). Uma variação utilizada consiste em interligar as extremidades da grade, criando uma configuração denominada malha toroidal (b), a qual reduz o diâmetro da malha por um fator de 2 (vide figura 3.3). A largura da bisseção de uma malha é N onde N é o número de processadores. A largura da bisseção dobra para a malha toroidal. O diâmetro da topologia em malha é 2( N - 1), e o seu grau é fixo e de valor 4. Nesta topologia, todos os processadores estão conectados em um único barramento compartilhado. Quando um processador necessita comunicar-se com outro, ele aguarda que o barramento esteja livre e propaga no mesmo a mensagem; o destinatário, por sua vez, identifica que a mensagem é para si e a recebe (vide figura 3.2). No caso de duas transmissões simultâneas, o software detetor de colisões interrompe as transmissões e os processadores voltam a tentar novamente após um período de tempo determinado aleatoriamente. Assim sendo, a sua largura da bisseção é 1. Isto significa que esta topologia não permite mais do que um par de processadores em comunicação simultaneamente. a) Malha b) Toróide FIGURA 3.3 Topologia em malha Barramento O hardware para este tipo de tecnologia é de simples construção e expansão. A malha se adapta bem a algoritmos utilizados em cálculos científicos, onde se destaca a manipulação de matrizes. Uma arquitetura que utiliza esta topologia é o Intel Paragon. FIGURA 3.2 Topologia em barramento Do ponto de vista do desempenho, esta topologia somente é viável para um pequeno número de processadores e/ou classes de problemas cujos algoritmos implementem pouca comunicação. Esta topologia é bastante Topologia em Hipercubo Toda rede de interconexão hipercúbica esta alicerçada sobre uma estrutura multi-dimensional baseada em endereços binários.

15 29 30 Os tamanhos do hipercubo são definidos por potências de 2; N=2 D onde D é a dimensão do hipercubo e N o número de processadores. Em função disto, todos os nodos podem ser identificados por um número binário. Cada nodo é conectado a todos os seus vizinhos; isto faz com que o hipercubo tenha grau variável e de valor D (vide figura 3.4). A solução para pequeníssima largura da bisseção da árvore é utilizar uma variante denominada árvore larga. Em uma árvore larga (vide figura 3.5), a largura dos ramos (canal) cresce a medida que se sobe das folhas em direção à raiz Hipercubo 3D a) Árvore b) Árvore larga FIGURA 3.4 Topologia em hipercubo A topologia hipercúbica confere boas propriedades à rede de interconexão; a largura da bisseção é N/2, e o diâmetro é log2 N. Apesar de apresentar bom desempenho para muitos padrões de comunicação, sua eficiência se mostra bastante dependente do algoritmo de roteamento a ser empregado. Um aspecto inconveniente do hipercubo é sua escalabilidade; o número de processadores sempre cresce em potência de 2. Além disso, como o grau de cada nodo é função do tamanho do cubo, toda expansão no número de processadores implica em adicionar mais um canal de comunicação a todos os nodos. Para cubos maiores, estas características podem trazer inconvenientes para a administração do custo/benefício quando da expansão da arquitetura. Um equipamento que emprega esta topologia é o Ncube TOPOLOGIA EM ÁRVORE A clássica árvore binária, com processadores nas suas folhas, tem se mostrado uma boa opção de topologia para arquiteturas paralelas. O diâmetro de uma árvore completa é 2log2((N+1)/2), bastante similar ao do hipercubo (N é o número de processadores). A largura da bisseção, por sua vez, é somente 1, o que pode introduzir um severo gargalo quando processadores de uma metade da árvore precisarem se comunicar com os da outra. FIGURA 3.5 Topologia em árvore A largura da bisseção da árvore larga plena é N e o seu diâmetro proporcional a 2(log N). A arquitetura da CM-5 da Thinking Machines utiliza uma versão modificada da árvore larga CARACTERÍSTICAS QUE DEFINEM O DESEMPENHO DE UMA REDE DE INTERCONEXÃO Além da topologia da rede de interconexão, as outras características que se destacam na definição do seu desempenho são: largura de banda do canal: número de bytes por segundo que pode fluir entre dois nodos com conexão direta. Via de regra, a largura de banda é dependente do número de pulsos por segundo da arquitetura (clock) e do número de bits possíveis de serem enviados por pulso. latência de comutação: tempo inerente à operação da chave de comutação. Se dois processadores precisam trocar dados, e não existe um canal interligando os dois diretamente, as chaves de comutação intermediárias precisam propagar a mensagem através da rede de interconexão. Latências

16 31 32 elevadas trazem prejuízo ao desempenho da arquitetura paralela, sobretudo quando a mensagem necessita passar por diversas chaves. independência de processador: caracteriza se o processador precisa ou não ser interrompido, para auxiliar na atividade de comunicação. Muitas das atuais implementações de redes de interconexão permitem que o processador continue sua computação enquanto uma mensagem está sendo transmitida, recebida ou roteada. Isto minimiza o custo introduzido pela necessidade de comunicação entre processadores. contenção: pode ocorrer a recepção praticamente simultânea de duas mensagens por uma determinada chave, e ambas podem necessitar usar o mesmo canal de saída. Uma obrigatoriamente terá de aguardar. O atraso na computação do processador que aguarda a mensagem retida pode resultar em perda de desempenho. Uma possibilidade é o hardware de comutação prever uma política de tempo compartilhado para as portas das chaves; isto dividiria o custo de espera entre os dois processadores destinatários, porém introduziria custos de comutação (vide latência de comutação). 3.2 Características das Arquiteturas Paralelas Mais Utilizadas As arquiteturas serão caracterizadas a partir de componentes cuja nomenclatura é apresentada na figura 3.6. Estes também são os três principais blocos básicos das arquitetura seqüenciais A CLASSIFICAÇÃO DE FLYNN PARA ARQUITETURAS DE COMPUTADORES A inclusão da proposta feita por Flynn em 1966, é antes de mais nada um compromisso com a classificação mais difundida para arquiteturas de computadores. A nomenclatura definida por esta proposta será utilizada no decorrer do texto. A proposta se baseia nas combinações possíveis entre uma ou mais seqüências de instruções, atuando sobre uma ou mais seqüências de dados. Decorrem daí, quatro classes de computadores: uma Seqüência de Instruções, uma Seqüência de Dados (SISD Single Instruction stream over a Single Data stream): corresponde aos computadores seqüenciais convencionais, nos quais só existe uma única unidade de controle que decodifica seqüencialmente as instruções, que operam sobre um único conjunto de dados. uma Seqüência de Instruções, Múltiplas Seqüências de Dados (SIMD-Single Instruction stream over a Multiple Data stream): corresponde aos processadores matriciais. Nestas arquiteturas, diversos elementos processadores são ativados por uma só unidade de controle. A unidade de controle esta submetida a um único programa, cujas instruções repassa aos elementos processadores. Os processadores executam concorrentemente uma mesma instrução sobre os dados que tem na sua memória local. Múltiplas Seqüências de Instruções, uma Seqüência de Dados (MISD-Multiple Instruction stream over a Single Data stream): não existem computadores reais enquadrados nesta categoria. M C Memória Unidade de Controle Múltiplas Seqüências de Instruções, Múltiplas Seqüências de Dados (MIMD-Multiple Instruction stream over a Multiple Data stream): nesta classe se enquadram os multiprocessadores. P Processador ARQUITETURAS DE MEMÓRIA DISTRIBUÍDA FIGURA Blocos básicos dos computadores seqüenciais Neste tipo de arquitetura, cada nodo tem seu processador, sua unidade de controle e sua memória local (MIMD). Assim, cada nodo pode executar, de forma assíncrona, um processo independente sobre seus

17 33 34 próprios dados (vide figura 3.7). Os equipamentos que implementam este tipo de arquitetura também são conhecidos como multicomputadores ([CUL 99], [MOR 94]). A rede de interconexão (vide item 3.1) é crítica para o desempenho deste tipo de equipamento. As diversas possibilidades de implementação da rede de interconexão (topologia, latência, contenção, etc.) neste tipo de arquitetura constituem um dos aspectos responsáveis pela falta de padrão no mercado de arquiteturas paralelas. Possibilidade de emular outras arquiteturas: resguardadas as restrições inerentes ao desempenho, é possível à arquitetura de memória distribuída, emular outros paradigmas de controle e de organização de memória. Uma possibilidade usual é o emprego de DSM (Distributed Shared Memory [MIL 99], [PRO 98]), através da qual o software aplicativo tem a visão de uma memória comum a todos os nodos processadores. Compartilhamento de uso: este tipo de arquitetura permite, de forma bastante flexível, o particionamento e a alocação de subgrupos de processadores a tarefas/usuários Principais aspectos negativos P 1 C 1 FIGURA Arquitetura genérica de multiprocessador de memória distribuída A configuração deste tipo de arquitetura pode variar muito. O número de processadores, por exemplo, pode oscilar da casa das dezenas a alguns milhares. Em alguns casos, o crescimento ocorre em potências de 2 (16, 32, 64, 128, etc.) (vide item ) Principais aspectos positivos M 1 P 2 C 2 Tecnologia de compilação: uma vez que cada nodo da arquitetura é uma unidade de processamento autônoma, é possível aproveitar toda tecnologia de compilação disponível para programação seqüencial, agregando à mesma os recursos de uma biblioteca para troca de mensagens entre os nodos processadores. São usuais propostas que, utilizando esta premissa, exploram conhecidas linguagens seqüenciais como C ou FORTRAN para programação paralela. M Rede de Interconexão 2 P n C n E/S M n Custo das comunicações: em função das características da rede de interconexão utilizada (vide item 3.1.4), alguns algoritmos podem ter seu desempenho diminuído. Deste modo, o processo de planejamento, codificação e geração de código (com a contribuição explícita ou não do programador), precisa considerar aspectos de localidade das comunicações e granulosidade das tarefas, para otimizar a possibilidade de seu particionamento e distribuição aos processadores. Custo de sincronização: apesar de poderem trabalhar de forma assíncrona quase sempre, determinados momentos da execução paralela podem exigir um estado conhecido comum para um grupo de processadores. Para minimizar o possível tempo de espera nos momentos de sincronização, o desenvolvimento de software deve contemplar uma distribuição de carga o mais equânime possível (o que nem sempre é viável), e com isso potencializar a utilização dos processadores e aumentar o desempenho global do processamento. Uso ineficiente da memória: três aspectos concorrem para a sobreocupação da memória em arquiteturas de memória distribuída. O primeiro decorre da necessidade de armazenamento temporário das mensagens recebidas até que o processo responsável pela computação possa fazer o devido tratamento. Dependendo do tamanho e da freqüência destas mensagens, um considerável volume de memória terá de ser destinado para isto. O segundo é conseqüência da necessidade de cópia local do código executável e o terceiro decorre da necessidade, em função da busca de desempenho, de fazer, em alguns casos, cópia local também das estruturas de dados globais que o algoritmo possa necessitar.

18 ARQUITETURAS DE MEMÓRIA COMPARTILHADA Neste tipo de arquitetura todos os nodos tem acesso uniforme a uma única memória comum (vide figura 3.8). São também denominadas de multiprocessadores simétricos ([CUL 99], [MOR 94]). Uma das razões sucesso comercial deste tipo de arquitetura MIMD, decorre da sua flexibilidade de uso. Cada processador da arquitetura pode ser visto como uma máquina seqüencial tradicional; a existência de outros processadores, bem como da memória comum pode ser abstraída. Uma conseqüência desta característica é a possibilidade de utilizar o software seqüencial já existente, praticamente sem nenhuma modificação. Deste modo, o paralelismo ao invés de ser utilizado para melhorar o desempenho de um determinado programa, também pode ser empregado para executar simultaneamente diversos programas seqüenciais do usuário. Como a memória é um recurso compartilhado, para que a mesma não se transforme em um ponto de estrangulamento da operação da arquitetura, o número de processadores tipicamente varia entre 4 e 20. coerência de memória neste tipo de arquitetura é um tema complexo e deu origem a diversos trabalhos de pesquisa Principais aspectos positivos Abstração da localidade do processador: neste tipo de arquitetura o programador pode abstrair a localidade do processador. Deste modo, a troca de mensagens é sincronizada por um mecanismo elegante de escrita em variáveis comuns. Como a memória é fisicamente compartilhada, isto pode ser feito com elevado desempenho (via de regra maior que os obtidos com as políticas de DSM - Distributed Shared Memory). Semelhante às arquiteturas convencionais: os multiprocessadores de memória compartilhada usualmente oferecem ambiente de programação e sistema operacional bastante semelhantes aos das máquinas seqüenciais, o que facilita a adoção da arquitetura enquanto o software está sendo adequado para uma execução efetivamente paralela. Facilidade de uso múltiplo: os processadores podem ser alocados individualmente ou em grupos para diferentes programas/usuários. P 1 C 1 P 2 P 3 C 2 C 3 Maior compartilhamento dos recursos: a memória comum facilita o compartilhamento de estruturas de dados globais. Por sua vez também, os recursos de entrada/saída e de memória virtual podem ser aproveitados por todos os nodos processadores Principal aspecto negativo Rede de Interconexão Memória Comum E/S Pouca escalabilidade: a política de acesso uniforme à memória faz com que este tipo de arquitetura tenha como limite um número de processadores ao redor de 20. O constante aumento do poder computacional do processadores, e a conseqüente necessidade destes de maior bandapassante com a memória, contribui para potencializar este aspecto. FIGURA Arquitetura genérica de multiprocessador de memória compartilhada Uma estratégia para aumentar o desempenho do sistema de memória compartilhada é o uso de uma memória cache entre o processador e a memória comum. A busca de um sistema eficiente para manutenção da Esta arquitetura também está sujeita ao custo de sincronização, que afeta as arquiteturas de memória distribuída (vide item ). Porém, como o número típico de processadores não é grande, e as comunicações tem um desempenho elevado, a sincronização como um todo pode ser melhor administrada.

19 ARQUITETURAS SÍNCRONAS MATRICIAIS Neste tipo de arquitetura, todos os processadores obedecem a uma única unidade de controle. A unidade de controle busca e decodifica as instruções do programa e as transmite aos diversos processadores que as executam, utilizando sua própria memória local (SIMD). Assim, a cada ciclo, todos os processadores (menos os que estão intencionalmente inibidos) executam sincronamente uma mesma instrução sobre sua parte dos dados. O paralelismo se dá, portanto, pela manipulação simultânea de diferentes partes do conjunto de dados. Daí sua denominação estar associada aos termos; arquiteturas síncronas e paralelismo de dados ([CUL 99], [MOR 94]). Este tipo de arquitetura exige uma estrutura densa para a rede de interconexão, a fim desta suportar a difusão das instruções a partir do controlador para a matriz de processadores. Esta rede de interconexão também é utilizada para distribuir dados e recolher resultados. O ambiente para geração de código neste tipo de arquitetura, usualmente fica localizado em uma estação de trabalho que atua como intermediária (front-end) para a arquitetura. Esta estação acumula as funções de gerenciamento de contas de usuário, o escalonamento das diversas requisições de processamento e o acesso através de rede local de computadores. As arquiteturas síncronas se mostram vocacionadas para algumas áreas de aplicação, nas quais oferecem excelente relação entre desempenho/custo. Destacam-se as áreas de processamento de sinais e imagens, nas quais a aglutinação de chips, cada um contendo dezenas de processadores simples e as respectivas memórias (de pequeno tamanho), podem trazer excelentes resultados Principais aspectos positivos Sincronização inerente entre processadores: a natureza do modelo de controle (único e centralizado) garante uma operação passo-a-passo, e os processadores estão consequentemente sempre sincronizados. Fato diferente ocorre com as arquiteturas que têm controle distribuído (sejam de memória compartilhada ou não); estas ficam sujeitas a necessidades eventuais de sincronização, as quais costumam introduzir períodos de ociosidade na operação dos processadores. Front End Redução FIGURA Arquitetura genérica síncrona matricial Uso eficiente da memória: a única memória que precisa acomodar programas é a memória associada ao controlador central; as memórias dos processadores podem ser dedicadas totalmente para dados Principais aspectos negativos Memória P 1 M 1 P 2 M 2 P n M n Rede de Interconexão Escalabilidade: quando o tamanho da matriz de processadores cresce, podem surgir dificuldades de garantir através de uma rede de interconexão de grandes dimensões a operação totalmente síncrona dos processadores (este aspecto se potencializa com o crescimento constante do clock dos processadores). Ineficiência ante desvios condicionais: os desvios condicionais dependentes de dados, precisam ser processados independentemente, um após o outro. Esta situação é vista como um dos principais pontos de perda de desempenho desta arquitetura. Dificuldade de compartilhamento: uma vez que existe somente uma unidade de controle, a arquitetura somente pode ser utilizada por um programa/usuário de cada vez. Alguns fornecedores facultam a existência de mais de um controlador central (com o decorrente acréscimo de custo), o que permitiria compartilhamento. C Difusão E/S

20 Considerações finais Neste capítulo foram analizadas as principais arquiteturas paralelas. Para efeito de discussão, foram tratados os tipos primitivos de cada uma. Via de regra, todos os tipos de arquitetura se desdobram em variantes que buscam superar suas lacunas de desempenho. Um exemplo de variante das arquiteturas básicas é a proposta NUMA (NonUniform Memory Access). No caso mais genérico, esta arquitetura oferece três níveis de acesso a memória: o mais rápido, correspondente ao acesso a uma memória local ao processador; o intermediário, quando o acesso é feito a uma memória global a todos os processadores, e; o mais lento, ocorre quando um processador acessa a memória local de outro; Um exemplo da implementação da proposta NUMA é o multiprocessador Cedar, desenvolvido na universidade de Illinois ([HWA 93]). Duas outras propostas representam importantes desenvolvimentos conceituais: as arquiteturas baseadas em fluxo de dados (dataflow) e as sistólicas (systolic). Foram objeto de muitos estudos e pesquisas nos anos 80, porém, seu caráter de uso mais específico, fez com que não lograssem sucesso comercial ([CUL 99]). E s c a l a b i l i d a d e Multiprocessador de Memória Distribuída Intel Paragon ncube Multiprocessador de Memória Compartilhada Computador Paralelo Ideal Cray Y/MP Sequent Symmetry Facilidade de Programação FIGURA Escalabilidade & Facilidade de Programação de Arquiteturas Paralelas Com a tendência de utilização de processadores comercialmente disponíveis, usualmente microprocessadores, para construção de arquiteturas paralelas, o centro de um projeto de hardware paralelo é a definição de sua rede de interconexão, a qual, dentro do menor custo possível, deve potencializar as comunicações e simplificar os mecanismos de controle e sincronização. A figura 3.10 extraída de [HWA 93] resume a visão deste autor sobre a relação entre facilidade de programação e a escalabilidade nas arquiteturas multiprocessadoras. Esta visão é senso comum na comunidade científica. É importante ter presente que as estratégias de comunicação que o software aplicativo emprega, não necessitam corresponder aos disponíveis na arquitetura. É bastante direto simular trocas de mensagens em arquiteturas de memória compartilhada, bem como é usual simular a existência de memória compartilhada em arquiteturas que somente dispõem de trocas de mensagens ([MIL 99], [PRO 98]). Naturalmente, podem ocorrer comprometimentos ao desempenho, quando não são utilizados os mecanismos nativos de comunicação da arquitetura.

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador) Multiprocessamento Multiprocessadores com memória distribuída (multicomputador) Conjunto de processadores, cada qual com sua memória local Processadores se comunicam por troca de mensagens, via rede de

Leia mais

Um Estudo das Potencialidades e Limites na Exploração do Paralelismo

Um Estudo das Potencialidades e Limites na Exploração do Paralelismo UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Um Estudo das Potencialidades e Limites na Exploração do Paralelismo por Adenauer Corrêa

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

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

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

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

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

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

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas: Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; - pesquisa em fusão de energia; - diagnóstico médico; - simulações

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Unidade 13: Paralelismo:

Unidade 13: Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 13: Paralelismo: SMP e Processamento Vetorial Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura SMP e alguns detalhes

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

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

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

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

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

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

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

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

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

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

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 3.1 EXECUÇÃO DAS INSTRUÇÕES A UCP tem duas seções: Unidade de Controle Unidade Lógica e Aritmética Um programa se caracteriza por: uma série de instruções

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

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

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

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

Teleprocessamento e Redes Universidade Católica do Salvador. Aula 04 - Estrutura de Redes de Comunicação. Objetivo : Roteiro da Aula :

Teleprocessamento e Redes Universidade Católica do Salvador. Aula 04 - Estrutura de Redes de Comunicação. Objetivo : Roteiro da Aula : Teleprocessamento e Redes Universidade Católica do Salvador Aula 04 - Estrutura de Redes de Comunicação Objetivo : Nesta aula, vamos começar a entender o processo de interligação entre os equipamentos

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES Eriko Carlo Maia Porto UNESA Universidade Estácio de Sá eriko_porto@uol.com.br Última revisão Julho/2003 REDES DE COMPUTADORES INTRODUÇÃO EVOLUÇÃO DOS SISTEMAS DE COMPUTAÇÃO Década de 50 introdução dos

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa 1ª Exercícios - REDES LAN/WAN INSTRUTOR: MODALIDADE: TÉCNICO APRENDIZAGEM DATA: Turma: VALOR (em pontos): NOTA: ALUNO (A): 1. Utilize 1 para assinalar os protocolos que são da CAMADA DE REDE e 2 para os

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet: Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Evolução na Comunicação de

Evolução na Comunicação de Evolução na Comunicação de Dados Invenção do telégrafo em 1838 Código Morse. 1º Telégrafo Código Morse Evolução na Comunicação de Dados A evolução da comunicação através de sinais elétricos deu origem

Leia mais

Figura 1 Taxas de transmissão entre as redes

Figura 1 Taxas de transmissão entre as redes Conceitos de Redes Locais A função básica de uma rede local (LAN) é permitir a distribuição da informação e a automatização das funções de negócio de uma organização. As principais aplicações que requerem

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede Interconexão de redes locais Existência de diferentes padrões de rede necessidade de conectá-los Interconexão pode ocorrer em diferentes âmbitos LAN-LAN LAN: gerente de um determinado setor de uma empresa

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

ORGANIZAÇÃO CURRICULAR

ORGANIZAÇÃO CURRICULAR ORGANIZAÇÃO CURRICULAR O curso Técnico em Informática, em Nível Médio Subseqüente, será organizado de forma semestral, com aulas presenciais, compostos por disciplinas, com conteúdos estabelecidos, tendo

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

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

Projetos I Resumo de TCC. Luiz Rogério Batista De Pieri Mat: 0413829 5

Projetos I Resumo de TCC. Luiz Rogério Batista De Pieri Mat: 0413829 5 Projetos I Resumo de TCC Luiz Rogério Batista De Pieri Mat: 0413829 5 MAD RSSF: Uma Infra estrutura de Monitoração Integrando Redes de Sensores Ad Hoc e uma Configuração de Cluster Computacional (Denise

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Fundamentos de Redes de Computadores. Elementos de Redes Locais

Fundamentos de Redes de Computadores. Elementos de Redes Locais Fundamentos de Redes de Computadores Elementos de Redes Locais Contexto Implementação física de uma rede de computadores é feita com o auxílio de equipamentos de interconexão (repetidores, hubs, pontos

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

5 Entrada e Saída de Dados:

5 Entrada e Saída de Dados: 5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

REDE DE COMPUTADORES

REDE DE COMPUTADORES SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL REDE DE COMPUTADORES Tecnologias de Rede Topologias Tipos de Arquitetura Prof. Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1 REDES LOCAIS LAN -

Leia mais

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Redes de Computadores. Prof. Dr. Rogério Galante Negri Redes de Computadores Prof. Dr. Rogério Galante Negri Rede É uma combinação de hardware e software Envia dados de um local para outro Hardware: transporta sinais Software: instruções que regem os serviços

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

INTRODUÇÃO BARRAMENTO PCI EXPRESS. INTRODUÇÃO BARRAMENTO EXPRESS. O processador se comunica com os outros periféricos do micro através de um caminho de dados chamado barramento. Desde o lançamento do primeiro PC em 1981 até os dias de hoje,

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

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

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia

Leia mais

Prof. Wilton O. Ferreira Universidade Federal Rural de Pernambuco UFRPE 1º Semestre / 2012

Prof. Wilton O. Ferreira Universidade Federal Rural de Pernambuco UFRPE 1º Semestre / 2012 Prof. Wilton O. Ferreira Universidade Federal Rural de Pernambuco UFRPE 1º Semestre / 2012 As redes de computadores possibilitam que indivíduos possam trabalhar em equipes, compartilhando informações,

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 - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro AULA 6: Switching Uma rede corporativa

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

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro Material de Apoio IV TOPOLOGIAS

Leia mais

Módulo 8 Ethernet Switching

Módulo 8 Ethernet Switching CCNA 1 Conceitos Básicos de Redes Módulo 8 Ethernet Switching Comutação Ethernet 2 Segmentação de Redes Numa Ethernet o meio de transmissão é compartilhado Só um nó pode transmitir de cada vez. O aumento

Leia mais

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2 MEMÓRIA CONCEITO Bit- 0 1 Essência de um sistema chamado BIESTÁVEL Ex: Lâmpada 0 apagada 1 acesa 0 e 1 únicos elementos do sistema de numeração de base 2 A que se destina a memória: Armazenamento das instruções

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

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Engenharia de Sistemas Computacionais

Engenharia de Sistemas Computacionais Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais