UNIVERSIDADE FEDERAL DO MARANHÃO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO

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

Download "UNIVERSIDADE FEDERAL DO MARANHÃO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE FEDERAL DO MARANHÃO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO TÓPICOS ESPECIAIS EM LINGUAGEM DE PROGRAMAÇÃO: APLICAÇÕES PARALELAS EM AMBIENTES DE PASSAGEM DE MENSAGENS Prof. Alexandre César Muniz de Oliveira SÃO LUÍS 2005

2 1 Apresentação da disciplina Alexandre César Muniz de Oliveira UFMA/DEINF - 2

3 Motivação A computação paralela tem se tornado uma importante aliada na tarefa de resolver problemas computacionalmente dispendiosos e complexos Existem máquinas paralelas escaláveis baseadas em hardware e software com custo razoavelmente acessível O programador deve ter em mente conceitos que permitam o máximo aproveitamento do paradigma de programação paralela Questões inerentes ao novo paradigma: o A escolha equivocada da plataforma em que o programa paralelo será executado pode comprometer o desempenho do programa, mesmo que ele tenha sido construído de maneira eficiente e elegante. o A análise do problema a ser decomposto para que se escolha a ferramenta de software mais adequada à construção de um programa paralelo eficiente. Objetivos Visão geral da computação paralela: o Apresentação de diversos tipos de hardware disponíveis à execução de uma aplicação paralela; o Foco sobre aspectos de software para construção e execução de um programa paralelo. Estudo de um ambiente de desenvolvimento de aplicações paralelas Abordagem prática baseada em estudos de casos; Alexandre César Muniz de Oliveira UFMA/DEINF - 3

4 Metodologia Aulas teóricas expositivas seguidas de uma avaliação teórica motivando o aluno a estudar conceitos relativos à Computação Paralela Estudo da biblioteca MPI possibilitando que o aluno esteja apto a compreender os casos a serem estudados posteriormente e a desenvolver aplicações em paralelo Estudos de problemas simples encontrados na computação, de pleno conhecimento do aluno, cujos algoritmos possam ser paralelizados. Estudo de problemas mais específicos encontrados em áreas como inteligência artificial, otimização, e outras Seminários teóricos abrangendo funções avançadas de MPI Seminários teóricos comparando MPI com outros ambientes, como o PVM Seminários práticos apresentando as soluções encontradas para problemas estudados em sala de aula Programa Módulo 1: Introdução à Computação Paralela: conceitos, medidas de desempenho, arquiteturas paralelas, software e ambientes de apoio. (8 aulas) Módulo 2: Biblioteca para Troca de Mensagens: Message-Passing Interface (MPI): comandos básicos. Avaliação escrita sobre conceitos em computação paralela. (12 aulas) Módulo 3: Estudo de caso 1: solução de problemas clássicos na computação usando algoritmos paralelos e definição dos trabalhos finais. (12 aulas) Módulo 4: Estudo de caso 2: algoritmo genético paralelo; aplicações em inteligência artificial e otimização (12 aulas) Módulo 5: Seminários 1: apresentação dos trabalhos teóricos: comandos avançados MPI e comparação com outros ambientes. (8 aulas) Módulo 6: Seminários 2: apresentação dos trabalhos práticos: solução de problemas computacionais usando algoritmos paralelos (8 aulas) Alexandre César Muniz de Oliveira UFMA/DEINF - 4

5 Módulo 1: Introdução à Computação Paralela 1.1 Introdução Alexandre César Muniz de Oliveira UFMA/DEINF - 5

6 Conceito de Processamento Paralelo Divisão de uma determinada aplicação, de forma que esta possa ser executada por vários elementos de processamento, que deverão cooperar entre si (comunicação e sincronismo) (FOSTER et al., 2003), Ganho de eficiência por meio da quebra da execução seqüencial do fluxo de instruções da máquina de von Neumann (ALMASI & GOTTLIEB, 1994). Histórico Em 1920, Vanevar Bush, do MIT (Massachussets Institute of Technology), apresentou um computador analógico que resolvia equações diferenciais em paralelo. Von Neumann, em seus artigos, por volta de 1940, também sugeriu utilizar paralelismo como forma de se resolver equações diferenciais. O surgimento do computador ILLIAC IV (supercomputador composto por 64 processadores), projeto iniciado na década de 60 e colocado em operação em 1972, na Universidade de Illinois, foi considerado o marco inicial do processamento paralelo (ROSE & NAVAUX, 2003). Alexandre César Muniz de Oliveira UFMA/DEINF - 6

7 Motivação pelo paralelismo Basicamente: ganho de desempenho. Especificamente (ALMASI & GOTTLIEB, 1994): Restrições físicas à melhoria de desempenho de um único processador: velocidade da luz, as leis da Termodinâmica, a dimensão física dos componentes e o custo; O desenvolvimento tecnológico permitiu a construção de microprocessadores de alto desempenho, que agrupados, possibilitam um ganho significativo de poder computacional. Microprocessadores de alto desempenho possibilitam uma melhor relação custo/desempenho quando comparadas aos supercomputadores de custo extremamente alto; Agrupamento de microprocessadores em módulos permite a expansão do sistema através da inclusão de novos módulos; Maior facilidade em incorporar o conceito de tolerância à falhas devido à redundância de hardware. Alexandre César Muniz de Oliveira UFMA/DEINF - 7

8 Motivação pelo paralelismo Aplicações instaladas que usam processamento paralelo Comércio de serviços Alexandre César Muniz de Oliveira UFMA/DEINF - 8

9 Concorrência e Paralelismo A concorrência existe quando dois ou mais processos iniciaram a sua execução e ainda não foram finalizados, sem que haja uma relação com o número de elementos de processamento utilizados. Quando existe apenas um elemento de processamento e vários processos estão sendo executados de maneira concorrente existe um pseudo-paralelismo ou paralelismo lógico processos e3 e3 e2 e2 e2 e1 e1 t1 t tempo Figura 1: Paralelismo Lógico. Alexandre César Muniz de Oliveira UFMA/DEINF - 9

10 Concorrência e Paralelismo O usuário tem a impressão que os processos estão sendo executados ao mesmo tempo, mas ocorre apenas o compartilhamento do elemento de processamento entre os processos em execução. Em um determinado instante de tempo, apenas um processo está em execução, enquanto os demais estão aguardando a liberação do processador. Quando se tem mais de um elemento de processamento e existem processos sendo executados ao mesmo tempo, há um paralelismo físico ou simplesmente paralelismo. processos e3 e2 e1 t t1 tempo Figura 2: Paralelismo Físico. Alexandre César Muniz de Oliveira UFMA/DEINF - 10

11 Granulosidade ou granularidade (grained) A granulosidade (ou nível de paralelismo) representa o tamanho das tarefas submetidas aos processadores e pode ser classificada em fina, média e grossa (GRAMA et al., 2003). Este conceito está intimamente ligado ao tipo de máquina paralela em que o programa será executado. o A granulosidade fina indica que o paralelismo está sendo realizado em nível de operações ou instruções. Geralmente, requer um número maior de comunicação por parte das unidades de processamento. Desvantagem: alto custo de sincronização. Vantagem: uso de processadores mais simples. Os computadores multiprocessados são mais adequados a processos paralelos de granulosidade fina, Alexandre César Muniz de Oliveira UFMA/DEINF - 11

12 Granulosidade ou granularidade (grained) o A granulosidade média indica o paralelismo obtido através da execução de blocos ou sub-rotinas do programa. o A granulosidade grossa relaciona o paralelismo em nível de processos. Geralmente, requer um número menor de comunicação e sincronismo entre os processadores. Uso de processadores mais genéricos e complexos do que os destinados à execução de programas de granulosidade fina. Os multicomputadores executam melhor os processos paralelos com granulosidade de média a grossa (FOSTER, 1995). o Taxa de granulosidade: G = P /C Onde C e P se referem respectivamente aos tempos de comunicação e processamento local; o G alto significa granulosidade grossa, isto é, muito processamento local e pouca comunicação. Alexandre César Muniz de Oliveira UFMA/DEINF - 12

13 1.2 Medidas de Desempenho de Computação Paralela Alexandre César Muniz de Oliveira UFMA/DEINF - 13

14 Ganho obtido de desempenho (GRAMA et al., 2003): Speed up: medida utilizada para determinar o aumento de velocidade obtido durante a execução de um programa (código paralelo) em p processadores, em relação à execução desse programa (código seqüencial) em um único processador. Sp = T 1 / T p o Onde T 1 é o tempo de execução em um processador e T p é o tempo de execução em p processadores. o Ideal todos os processadores realizam trabalho útil; não existem processadores ociosos; não são realizadas operações duplicadas raramente é atingido, exceto para algumas aplicações assíncronas. Alexandre César Muniz de Oliveira UFMA/DEINF - 14

15 Ganho obtido de desempenho (GRAMA et al., 2003): Speed up o O caso ideal é quando Sp = p, isto é, o ganho de speed up tende a p, indicando que a velocidade de processamento é diretamente proporcional ao número de processadores. o Dificuldades para a obtenção do caso ideal são: o sobrecarga da comunicação entre processadores, o partes do código executável estritamente seqüencial (que não podem ser paralelizadas) o nível de paralelismo utilizado (devido à granulosidade ser inadequada ao tipo de arquitetura utilizada). o Eventualmente Sp > p (superlinear) ocorre quando o tempo de execução de um programa seqüencial é bem superior ao tempo gasto pelo seu correspondente paralelo para solucionar um determinado problema. o Fatores: o limitações de hardware da máquina que executou o programa seqüencial o má formulação do algoritmo seqüencial, deteriorando o tempo total de sua execução. Alexandre César Muniz de Oliveira UFMA/DEINF - 15

16 Ganho obtido de desempenho (GRAMA et al., 2003): Eficiência (Ep): trata da relação entre o Speed up e o número de processadores. Ep = Sp / p [0,1] o A eficiência fornece o quanto os processadores estão sendo utilizados. O caso ideal é obtido quando Ep =1, indicando uma eficiência de 100%. o Exemplo: Se o tempo da melhor versão sequencial é 8 segundos e o algoritmo paralelo leva 4 segundos utilizando 5 processadores, então: o S=8/4=2 o E(%) = (2/5) * 100 = 20% Fatores que contribuem para a queda da eficiência: o Atraso introduzido pela comunicação entre processadores; o Overhead devido ao nível de sincronismo entre tarefas: tarefas dependentes alocadas em processadores diferentes, levando ao desbalanceamento de carga entre processadores. o Overhead devido ao esforço despendido por alguns processadores quando mais de um deles executa a mesma tarefa, necessitando de coordenação do processo todo. Alexandre César Muniz de Oliveira UFMA/DEINF - 16

17 Lei de Amdahl o Speed up sofre limitações devido aos trecho(s) não paralelizável(is) de um programa (AMDAHL, 1967): o Onde: Sp 1 / (T <f> + T <1 f> /p) o f é a fração inerentemente seqüencial de um programa. o (1-f) é a parte paralelizável de um programa. o p é o número de processadores, sendo p > 1. o Uma estimativa de ganho ideal: I = T s / (T <f> + T <1 f> /p) Toda solução paralela, em um dado momento, possui um ponto de saturação onde o speed up não apresenta mais ganhos significativos e a eficiência cai. O programa paralelo não atende mais de maneira satisfatória à escalabilidade da máquina paralela. Tanto o speed up e quanto a eficiência continuam a cair com o incremento de p. Alexandre César Muniz de Oliveira UFMA/DEINF - 17

18 1.3 Arquiteturas Paralelas Alexandre César Muniz de Oliveira UFMA/DEINF - 18

19 Classificação de Flynn O processo computacional deve ser visto como um fluxo de instruções executando sobre um fluxo de dados (FOSTER et al., 2003). A classificação de Flynn acomoda as arquiteturas em quatro classes de máquinas: SISD, SIMD, MISD e MIMD. SISD - Single Instruction Stream / Single Data Stream o Fluxo único de instruções / Fluxo único de dados: corresponde ao tradicional modelo de Von Neumann (apenas um processador). o Um processador executa seqüencialmente um conjunto de instruções sobre um conjunto de dados FI FI UC UP M = Fluxo de Instruções = Unidade de Controle = Unidade de Processamento = Memória UC UP M Figura 3: Exemplo de Arquitetura SISD. Alexandre César Muniz de Oliveira UFMA/DEINF - 19

20 SIMD - Single Instruction Stream / Multiple Data Stream o Fluxo único de instruções / Fluxo múltiplo de dados: envolve múltiplos processadores executando simultaneamente a mesma instrução em diversos conjuntos de dados. o Exemplos: as máquinas paralelas com processadores Array como CM-2 e MasPar (ROSE & NAVAUX, 2003). FI UP M UC UP M FI UC UP M = Fluxo de Instruções = Unidade de Controle = Unidade de Processamento = Memória UP M Memória Figura 4: Exemplo de Arquitetura SIMD. Alexandre César Muniz de Oliveira UFMA/DEINF - 20

21 MISD - Multiple Instruction Stream / Single Data Stream o Fluxo múltiplo de instruções / Fluxo único de dados: envolve múltiplos processadores executando diferentes instruções em um único conjunto de dados. o Nenhuma arquitetura é classificada como MISD, mas alguns autores consideram o pipeline como um representante dessa categoria. Pipeline implementa um paralelismo temporal, caracterizado quando existe a execução de eventos sobrepostos no tempo. A tarefa que será executada é dividida em sub-tarefas, cada uma destas sendo executada por um estágio de hardware especializado que trabalha de maneira concorrente com os demais estágios envolvidos na computação (PATTERSON & HENNESSY, 2000). FD M FI UC FI UP M FI UC FI UP UP FD M UC FI = Unidade de Processamento FI = Fluxo de Dados M UC = Memória = Unidade de Controle = Fluxo de Instruções FD Figura 5: Exemplo de Arquitetura MISD. FI UP Alexandre César Muniz de Oliveira UFMA/DEINF - 21

22 MIMD - Multiple Instruction Stream / Multiple Data Stream o Fluxo múltiplo de instruções / Fluxo múltiplo de dados: envolve múltiplos processadores executando diferentes instruções em diferentes conjuntos de dados, o A interação entre os processadores é feita pela memória. o Cada processador executa o seu próprio programa sobre seus próprios dados de forma assíncrona. o O princípio MIMD é bastante genérico, daí cabe ainda ua subdivisão, de acordo com o tipo de acesso à memória. Máquinas com memória compartilhada são conhecidas como multiprocessadores ou sistemas fortemente acoplados, Máquinas que possuem memória não compartilhada (distribuída) são ditas multicomputadores ou sistemas fracamente acoplados. UC FI UP FD M FI UC FI UP FD M FI UP FD M UC FI FI FD = Unidade de UC UP M Processamento = Fluxo de Dados = Memória = Unidade de Controle = Fluxo de Instruções Figura 6: Exemplo de Arquitetura MIMD. FI Alexandre César Muniz de Oliveira UFMA/DEINF - 22

23 Outras classificações ALMASI & GOTTLIEB, 1994 DUNCAN, 1990 Classificação segundo o Compartilhamento de Memória Arquiteturas que compartilham memória são classificadas como máquinas MIMD (ROSE & NAVAUX, 2003). Multiprocessadores o Acesso Uniforme à Memória (UMA - Uniform Memory Access): a memória é centralizada e encontra-se à mesma distância de todos os processadores. A latência de acesso à memória é igual para todos os processadores do sistema. P P P P P P P P Rede de Interconexão Memória Figura 7: Máquina UMA. Alexandre César Muniz de Oliveira UFMA/DEINF - 23

24 Classificação segundo o Compartilhamento de Memória o Acesso Não Uniforme à Memória (NUMA - Non-Uniform Memory Access): a memória é organizada em módulos que são associados, de um para um, aos processadores. O espaço de endereçamento é único e cada processador pode endereçar toda a memória do sistema. A latência de acesso à memória depende se o endereço, gerado por um processador, encontra-se no módulo de memória diretamente ligado a ele ou não. Um processador deve utilizar a rede de interconexão para acessar informações mantidas em outros módulos de memória. espaço de endereçamento M M M M M M M M P P P P P P P P Rede de Interconexão Figura 8: Máquina NUMA. Alexandre César Muniz de Oliveira UFMA/DEINF - 24

25 Classificação segundo o Compartilhamento de Memória o Acesso Não Uniforme à Memória: Dependendo da forma com o problema de consistência é tratado (ou não), essa classe pode ser subdividida em (ROSE & NAVAUX, 2003) (FOSTER et al., 2003): - Acesso Não Uniforme à Memória Sem Consistência de Cache (NCC-NUMA Non-Cache-Coherent Non- Uniform Memory Access): Variação de uma NUMA em que não há dispositivo de hardware que garanta a consistência de cache. - Acesso Não Uniforme à Memória Com Consistência de Cache (CC-NUMA Cache-Coherent Non-Uniform Memory Access): Variação de uma NUMA em que há dispositivo de hardware que garanta a consistência de cache. - Acesso Não Uniforme à Memória Com Consistência de Cache em Software (SC-NUMA Software-Coherent Non-Uniform Memory Access): nesse caso, a consistência de cache não está implementada em hardware como nas máquinas CC-NUMA, mas em software, de forma transparente ao usuário. Essa camada de software é também conhecida como DSM (Distributed Shared Memory) e pode ser utilizada tanto em máquinas NCC- NUMA quanto em máquinas NORMA que não possuem consistência de cache em hardware. Alexandre César Muniz de Oliveira UFMA/DEINF - 25

26 Classificação segundo o Compartilhamento de Memória o Arquiteturas de Memória Somente com Cache (COMA - Cache-only Memory Architecture): todas as memórias locais são estruturadas como memória cache e são chamadas de COMA caches. As COMA caches têm muito mais capacidade que uma cache tradicional. A memória principal é composta pelas COMA caches, sendo que as gerências de caches e de memória ficam a cargo de um hardware de suporte, implementado somente nesse tipo de máquina. Essa complexidade faz com que essa estrutura seja mais cara de implementar que as máquinas NUMA. M M M M M M M M P P P P P P P P Rede de Interconexão Figura 9: Máquina COMA. Alexandre César Muniz de Oliveira UFMA/DEINF - 26

27 Multicomputadores o Sem Acesso a Variáveis Remotas (NORMA - Non-Remote Memory Access): cada processador possui sua própria memória local, à qual apenas ele tem acesso direto. As memórias dos outros processadores são consideradas remotas e possuem espaços de endereçamento distintos. Como não é possível o uso de variáveis compartilhadas nesse ambiente, a comunicação com outros processos é realizada através de troca de mensagens via rede de interconexão. A diferença básica entre as máquinas NORMA e as demais (UMA, NUMA e COMA) é que na primeira há uma replicação de toda a arquitetura convencional (processador, memória e I/O) para formar uma máquina paralela, e não apenas do componente processador como nos multiprocessadores. P P P P P P P P M M M M M M M M Rede de Interconexão Figura 2.10: Máquina NORMA. Alexandre César Muniz de Oliveira UFMA/DEINF - 27

28 Resumo A linha tracejada na Figura 2.11 indica que as máquinas das classes NCC-NUMA e NORMA podem ser transformadas em máquinas SC- NUMA através da inclusão de uma camada de software que implemente consistência de cache (ROSE & NAVAUX, 2003). UMA (memória central) MIMD Multiprocessadores (espaço de endereçamento único) NUMA (memória distribuída) COMA CC-NUMA NCC-NUMA Multicomputadores (múltiplos espaços de endereçamento) NORMA SC-NUMA Figura 11: Visão geral da classificação segundo o compartilhamento de memória (HWANG, 1998). Alexandre César Muniz de Oliveira UFMA/DEINF - 28

29 Exemplos de Modelos Físicos de Máquinas MIMD Multiprocessadores Simétricos (SMP Symmetric Multiprocessors): são sistemas constituídos de processadores comerciais, também chamados de off-the-shelf (de prateleira), conectados a uma memória compartilhada geralmente por meio de um barramento de alta velocidade (FOSTER et al., 2003). o O fato de todos os processadores terem acesso igual ao barramento e à memória, não ocorrendo privilégios a nenhum dos processadores no atendimento de requisições, fornece o caráter simétrico ao sistema, o que caracteriza essas máquinas como multiprocessadores UMA. o A comunicação se dá através do compartilhamento de memória. o Uma única cópia do sistema operacional está ativa em todos processadores. o Um fator limitante à escalabilidade dessas máquinas é o uso de barramento como rede de interconexão. o Com o objetivo de reduzir a quantidade de acesso à memória, esses sistemas utilizam memória cache junto a cada processador, reduzindo a comunicação no barramento e aumentando o número de processadores no sistema. o Pode-se encontrar desde máquinas SMP com dois processadores até sistemas SMP com 64 processadores (ROSE & NAVAUX, 2003). Exemplos: IBM R50, SGI Power Challenger, Sun Ultra Enterprise 10000, HP/Convex Exemplar X-Class e DEC Alpha Server Alexandre César Muniz de Oliveira UFMA/DEINF - 29

30 Exemplos de Modelos Físicos de Máquinas MIMD Máquinas Maciçamente Paralelas (MPP Massively Parallel Processors): são sistemas compostos por centenas, em alguns casos milhares, de nós (processador e memória) independentes, interconectados por redes proprietárias e de alta velocidade. o Cada nó possui um ou mais processadores, sua própria memória local com um espaço de endereçamento próprio. o O acesso à memória das máquinas vizinhas não é direto, precisando utilizar o paradigma de troca de mensagens para realizar a comunicação entre os nós do sistema. o Cada nó executa uma cópia distinta do sistema operacional. Devido a essas características, esses sistemas são classificados como multicomputadores NORMA. Exemplos: Intel Paragon, Connection Machine CM-5 e o IBM SP2. Alexandre César Muniz de Oliveira UFMA/DEINF - 30

31 Exemplos de Modelos Físicos de Máquinas MIMD Redes de Estações de Trabalho (NOW Network of Workstations): são sistemas compostos por várias estações de trabalho ou computadores pessoais interligados por tecnologia tradicional de rede, como a Ethernet ou ATM. o Na prática, uma rede local de estações usada na execução de aplicações paralelas. o Sob o prisma das arquiteturas paralelas, a rede local pode ser vista como uma máquina paralela em que vários processadores, com suas memórias locais, são interligados por uma rede, constituindo uma máquina NORMA de baixo custo (ROSE & NAVAUX, 2003). o As diferenças em relação à arquitetura MPP consistem basicamente na hierarquia de barramento utilizada nas estações, além da presença de um disco local nos nós e da rede de interconexão utilizada. Alexandre César Muniz de Oliveira UFMA/DEINF - 31

32 Exemplos de Modelos Físicos de Máquinas MIMD Máquinas Agregadas (COW Cluster of Workstations): são sistemas, assim como as NOWs, compostos por várias estações de trabalho ou computadores pessoais - Cluster Beowulf (BECKER et al., 1995) - interligados através de uma rede de comunicação. o A diferença entre uma e outra é que as máquinas COWs, ou simplesmente Cluster, são projetadas com o objetivo específico de executar aplicações paralelas, retirando o caráter genérico das NOWs. o Geralmente os clusters são classificados em dois grupos (STERLING, 2002): Agregados Homogêneos: são clusters onde todos os nós são idênticos, ou seja, todas as máquinas são exatamente as mesmas. São mais simples de se trabalhar, pois como as máquinas são idênticas tem-se a certeza que o software vai funcionar da mesma maneira em todos os nós. Agregados Heterogêneos: é o oposto dos clusters homogêneos, ou seja, as máquinas diferem umas das outras Máquinas totalmente diferentes umas das outras, como estação UltraSparc trabalhando em conjunto com CPUs 486, etc.; Máquinas da mesma arquitetura, mas de diferentes gerações, como CPUs Pentium trabalhando com outras CPUs Pentium II, Pentium III, Pentium IV, 486, etc Alexandre César Muniz de Oliveira UFMA/DEINF - 32

33 Exemplos de Modelos Físicos de Máquinas MIMD Máquinas Agregadas o Quanto à rede de interconexão: clusters interligados por redes padrão: baseados em Ethernet, usando-se chaveadores (switches) em detrimento aos hubs que funcionam como grandes barramentos, (RUEDA & MAHESWARAN, 2003); baixo custo das placas permite muitos nós clusters interligados por redes de baixa latência: placas de interconexão específicas que implementam protocolos de rede de baixa latência otimizados para as características de comunicação de aplicações paralelas. O custo mais alto das placas torna muito caro construir máquinas com muitos nós. A máquina resultante fica mais equilibrada na relação poder de processamento do nó e desempenho da rede Obtém-se um bom desempenho, mesmo com aplicações que necessitem muita comunicação (ROSE & NAVAUX, 2003). Alexandre César Muniz de Oliveira UFMA/DEINF - 33

34 Exemplos de Modelos Físicos de Máquinas MIMD Máquinas Agregadas o Em relação ao tipo de aplicação, têm-se dois tipos de clusters (TAVANGARIAN, 2001): Clusters de Alto Desempenho (HPC High Performance Cluster): são destinados a resolver problemas complexos, que exigem alto poder de processamento. Em geral, os relacionados a cálculos científicos. Clusters de Alta Disponibilidade (HAC High Availability Cluster): são destinados a manter em operação por quase 100% do tempo alguns serviços ou evitar que os mesmos sofram panes de operação por excesso de requisições. o O projeto de HA Clusters depende de quais serviços (Páginas Web, , FTP, Banco de dados) se deseja manter em operação. o O importante durante o projeto é definir onde se encontram possíveis pontos de falhas e a partir daí instituir políticas de redundância. Alexandre César Muniz de Oliveira UFMA/DEINF - 34

35 Exemplos de Modelos Físicos de Máquinas MIMD Máquinas agregadas o Apesar de ser uma alternativa atrativa e bem sucedida à execução de aplicações paralelas, os clusters ainda apresentam alguns inconvenientes: A configuração dos nós não é trivial. É necessário ter boa experiência e conhecimento de administração de sistemas clone-unix; Há poucos softwares de gerenciamento de cluster. O mais conhecido é o Mosix (BARAK & LA ADAN, 1998). Como em geral são de caráter dedicado, especialmente os HPCs, tem-se ter um certo grau de ociosidade na utilização desse tipo de sistema. Alexandre César Muniz de Oliveira UFMA/DEINF - 35

36 Exemplos de Modelos Físicos de Máquinas MIMD Grids são sistemas mais fracamente acoplados, diversos e complexos que outras plataformas de execução de processos paralelos e/ou distribuídos. o São considerados o passo natural depois das NOWs, no sentido de maior heterogeneidade e maior distribuição (FOSTER et al, 2001). o As características básicas de um sistema grid são (LI & CORDE, 2005): Heterogeneidade de seus componentes; Alta dispersão geográfica: até em escala mundial; Compartilhamento: não precisa ser dedicado a uma aplicação; Múltiplos domínios administrativos: podem congregar recursos de várias instituições; e Controle distribuído: tipicamente não há uma única entidade que tenha poder sobre todo o grid. Alexandre César Muniz de Oliveira UFMA/DEINF - 36

37 Exemplos de Modelos Físicos de Máquinas MIMD Grids o Outras características Os componentes de um grid não se restringem a processadores, podendo ser, por exemplo, SMPs e MPPs. Grids tipicamente não fornecem uma imagem comum do sistema para seus usuários (FOSTER et al., 2002). Componentes de um grid podem variar sobremaneira em capacidade, software instalado, sistemas de arquivo montados e periféricos instalados. Um dado usuário pode ter acesso e permissões bastante diversas nos diferentes componentes de um grid (LI & CORDE, 2005). O grid não pode ser dedicado a um usuário, embora seja possível que algum componente possa ser dedicado (um MPP, por exemplo). Uma aplicação grid deve estar preparada para lidar com todo este dinamismo e variabilidade da plataforma de execução, Adaptação da aplicação ao cenário que se apresenta com o intuito de obter o melhor desempenho possível no momento (CIRNE & MARZULLO, 2003). Alexandre César Muniz de Oliveira UFMA/DEINF - 37

38 Questões quanto ao tipo da aplicação Assim como os demais tipos de computadores paralelos vistos até o momento, também nos grids computacionais alguns tipos de aplicações são beneficiados ao utilizarem essa estrutura, tais como aplicações que requerem pouca ou nenhuma comunicação são as mais beneficiadas. Bag of Tasks são aquelas cujas tarefas são independentes, isto é, não se comunicam e podem ser executados em qualquer ordem. Devido à alta dispersão geográfica, são mais indicadas para aplicações que trocam muita informação as SMPs, MPPs e Clusters. Pode-se utilizar uma variação das NOWs para possibilitar a execução eficiente de aplicações paralelas, mesmo as que requeiram uma boa taxa de troca de informações. O custo final dessa alternativa é mínimo, já que se utiliza uma estrutura de rede já existente. As alterações que suportam de forma eficiente a execução de aplicações paralelas basicamente são realizadas no nível de software. Alexandre César Muniz de Oliveira UFMA/DEINF - 38

39 1.4 Software para Provimento de Computação Paralela Alexandre César Muniz de Oliveira UFMA/DEINF - 39

40 Requisitos para emprego eficiente de Computação Paralela A infra-estrutura computacional: hardware paralelo O algoritmo paralelo: envolve muito mais que apenas determinar uma seqüência de passos, como nos algoritmos seqüenciais. o Essa necessidade de incorporar os conceitos de paralelismo em um algoritmo requer do programador uma análise e modelagem do problema mais cuidadosa do que a dispensada na modelagem de algoritmos seqüenciais. o Durante a fase de modelagem de um algoritmo paralelo devese determinar pontos onde um trecho de código depende dos resultados de alguma outra parte do mesmo código (ANDREWS, 2003). Dependência de Dados: Existe quando uma operação não pode proceder até que dados provenientes de outra operação estejam disponíveis. Dependência de Controle: Existe quando uma linha de controle depende de outra para poder ser executada. o Dependências de controle são mais comuns que as dependências de dados. Alexandre César Muniz de Oliveira UFMA/DEINF - 40

41 1.5 Suporte à Programação Paralela Alexandre César Muniz de Oliveira UFMA/DEINF - 41

42 Necessidades inerentes à programação paralela A programação seqüencial utiliza recursos disponíveis através de uma linguagem de máquina ou de uma maneira mais usual, por meio de linguagens de alto nível como C, Pascal e Fortran, que permitem o uso de abstrações (por exemplo, if, else, while) que são traduzidas automaticamente em código executável. A programação paralela necessita de recursos não disponíveis diretamente nessas linguagens. São necessários métodos (ALMASI & GOTTLIEB, 1994): o para definir quais tarefas serão executadas paralelamente, o para a ativação e finalização da execução dessas tarefas Alexandre César Muniz de Oliveira UFMA/DEINF - 42

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

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

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

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

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

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Programação Paralela. Simone de Lima Martins Agosto/2002

Programação Paralela. Simone de Lima Martins Agosto/2002 Programação Paralela Simone de Lima Martins Agosto/2002 Computação por Passagem de Mensagens Arquitetura de computadores que utilizam passagem de mensagens Computadores conectados por uma rede estática

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

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

Leia mais

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

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

Leia mais

slide 0 Algoritmos Paralelos

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

Leia mais

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

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

} 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

Processamento Paralelo

Processamento Paralelo Processamento Paralelo Hardware Paralelo Universidade Estadual de Santa Cruz Bacharelado em Ciência da Computação Prof. Esbel Tomás Valero Orellana Portabilidade O principal problema das primeiras maquinas

Leia mais

Máquinas Multiníveis

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

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware

Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

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

Organização de Computadores 2005/2006 Processamento Paralelo

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

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos

Leia mais

Programação Paralela e Distribuída 2009/10. Fundamentos

Programação Paralela e Distribuída 2009/10. Fundamentos Programação Paralela e Distribuída 1 Porquê Programação Paralela? Se um único computador (processador) consegue resolver um problema em N segundos, podem N computadores (processadores) resolver o mesmo

Leia mais

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

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

Leia mais

COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0

COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0 COMPUTAÇÃO PARALELA uma visão geral Guilherme Galante v.2.0 Guilherme Galante Bacharel em Informática Unioeste (2003) Mestre em Ciência da Computação UFRGS (2006) Professor Assistente do curso de Informática/Ciência

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

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

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento

Leia mais

Sistemas Distribuídos Aula 1 Introdução

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

Leia mais

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

LCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004 LCAD Laboratório de Computação de Alto Desempenho DI/UFES Tópico 20 janeiro 27 janeiro 3 fev 10 fev 17 fev 24 fev 3 março Paradigma de Paralelismo

Leia mais

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

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 3 - ARQUITETURA DE SISTEMAS DISTRIBUÍDOS 1 INTRODUÇÃO Considerando que os Sistemas Distribuídos são constituídos de vários processadores, existem diversas formas de organizar o hardware de tais

Leia mais

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

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

Leia mais

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

Parte da Tarefa. Parte da Tarefa. Parte da Tarefa SEND RECEIVE SEND RECEIVE

Parte da Tarefa. Parte da Tarefa. Parte da Tarefa SEND RECEIVE SEND RECEIVE Produto Escalar com MPI-2 (C++) Aula Sistemas Distribuídos Prof. Dr. Marcelo Facio Palin profpalin@gmail.com 1 1 O que é Paralelismo? Conceitos Paralelismo é uma técnica usada em tarefas grandes e complexas

Leia mais

Memória compartilhada (shared memory): - o espaço de endereçamento é único; - comunicação através de load e store nos endereços de memória.

Memória compartilhada (shared memory): - o espaço de endereçamento é único; - comunicação através de load e store nos endereços de memória. 4. Arquiteturas ID áquinas ID (ultiple Instruction ultiple Data) são arquiteturas caracterizadas pela execução simultânea de múltiplos fluxos de instruções. Essa capacidade deve-se ao fato de que são construídas

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

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

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

Leia mais

SISTEMAS DISTRIBUÍDOS

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

Leia mais

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

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

Leia mais

1.2 Tipos de Sistemas Operacionais

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

Leia mais

Comparação de algoritmos paralelos em uma rede heterogênea de workstations

Comparação de algoritmos paralelos em uma rede heterogênea de workstations Comparação de algoritmos paralelos em uma rede heterogênea de workstations Marcelo T. Rebonatto, Marcos J. Brusso, Roberto Niche 1, Roni A. Dall Orsoletta 1 Universidade de Passo Fundo Instituto de Ciências

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

7-1. Parte 6 Otimizações da Arquitetura

7-1. Parte 6 Otimizações da Arquitetura 7-1 Parte 6 Otimizações da Arquitetura 7-2 Bibliografia [1] Miles J. Murdocca e Vincent P. Heuring, Introdução à Arquitetura de Computadores [2] Andrew S. Tanenbaum, Modern Operating Systems [3] William

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

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

Leia mais

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

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

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

Leia mais

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis.

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis. 1 Introdução O grande aumento de performance das redes de computadores, combinado com a proliferação de computadores de baixo custo e alto desempenho, trouxe à tona ambientes de meta-computação, ou grids[15,

Leia mais

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE ESPECIALIZAÇÃO EM REDES DE COMPUTADORES DANIEL VAHID LIMA TOLOUEI

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE ESPECIALIZAÇÃO EM REDES DE COMPUTADORES DANIEL VAHID LIMA TOLOUEI ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE ESPECIALIZAÇÃO EM REDES DE COMPUTADORES DANIEL VAHID LIMA TOLOUEI CLUSTERS COMPUTACIONAIS DE ALTO DESEMPENHO VILA VELHA - ES 2010 DANIEL VAHID LIMA TOLOUEI

Leia mais

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

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

Leia mais

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

Supercomputadores dominavam o mercado

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

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

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

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

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 3- Memórias 4- Dispositivos

Leia mais

Programação Paralela com Troca de Mensagens. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação Paralela com Troca de Mensagens. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação Paralela com Troca de Mensagens Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Modelo de programa MPI Comunicação em MPI Comunicadores Mensagens Comunicação ponto-a-ponto Comunicação coletiva

Leia mais

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

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

Leia mais

Obtenção e Utilização do Conhecimento sobre Aplicações Paralelas no Escalonamento em Sistemas Computacionais Distribuídos

Obtenção e Utilização do Conhecimento sobre Aplicações Paralelas no Escalonamento em Sistemas Computacionais Distribuídos Obtenção e Utilização do Conhecimento sobre Aplicações Paralelas no Escalonamento em Sistemas Computacionais Distribuídos LUCIANO JOSÉ SENGER Orientador: Prof. Dr. Marcos José Santana Monografia apresentada

Leia mais

Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas

Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas 1 Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos

Leia mais

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

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

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

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

Leia mais

Arquitectura de Sistemas Paralelos e Distribuídos

Arquitectura de Sistemas Paralelos e Distribuídos Docentes Arquitectura de Sistemas Paralelos e Distribuídos 0. Introdução Prof. Paulo Marques Dep. Eng. Informática, Univ. Coimbra pmarques@dei.uc.pt Prof. Luís Silva Dep. Eng. Informática, Univ. Coimbra

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1 ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES Prof. Dr. Daniel Caetano 2012-1 Lembretes Compreender o funcionamento da Arquitetura Superpipeline Compreender

Leia mais

Cluster HPC High Performance Computing.

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

Leia mais

2 Trabalhos Relacionados

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

Leia mais

Programação Paralela

Programação Paralela rogramação aralela FEU 2. Arquitecturas de omputadores e rogramação aralela Arquitecturas de omputadores Taxonomia de Flynn (extra livro recomendado) Base da Taxonomia: D: data stream (fluxo de acesso

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Estilos Arquitetônicos Estilos Arquiteturais Dataflow

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Desenvolvimento de um Cluster de Alto Desempenho com PVM

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

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

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

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

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

Leia mais

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

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

ORDENAÇÃO DE DADOS EM MEMÓRIA EXTERNA UTILIZANDO PROGRAMAÇÃO PARALELA

ORDENAÇÃO DE DADOS EM MEMÓRIA EXTERNA UTILIZANDO PROGRAMAÇÃO PARALELA CENTRO UNIVERSITÁRIO VILA VELHA CURSO DE CIÊNCIA DA COMPUTAÇÃO Christyan Brandão Oliveira Felipe Nogueira Gáudio ORDENAÇÃO DE DADOS EM MEMÓRIA EXTERNA UTILIZANDO PROGRAMAÇÃO PARALELA VILA VELHA 2008 Christyan

Leia mais

Sistemas Operacionais

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

Leia mais

1 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

FACULDADE PITÁGORAS PRONATEC

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

Leia mais

Sistemas Operacionais

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

Leia mais

Sistemas Operacionais

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

Leia mais

MARCELO AUGUSTO OMOTO

MARCELO AUGUSTO OMOTO FUNDAÇÃO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO MARCELO AUGUSTO OMOTO CONFIGURAÇÃO DE UM CLUSTER PARA O ALGORITMO SHELLSORT DISTRIBUÍDO

Leia mais

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Multi-processamento Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Arquitecturas MIMD de memória distribuída Massive Parallel Computers Sistemas distribuídos Ainda

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

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

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Referências Caracterização de Sistemas Distribuídos Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Capítulo 9 Seções 9.1 a 9.3 Distributed Systems: concept

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Características Básicas de Sistemas Distribuídos

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

Leia mais

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. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

Leia mais

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

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

Leia mais

Sistemas Operacionais

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

Leia mais

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

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

Leia mais

COMPUTAÇÃO DE ALTO DESEMPENHO ENVOLVENDO CLUSTERS E MÉTODOS NUMÉRICOS

COMPUTAÇÃO DE ALTO DESEMPENHO ENVOLVENDO CLUSTERS E MÉTODOS NUMÉRICOS CENTRO UNIVERSITÁRIO VILA VELHA CURSO DE CIÊNCIA DA COMPUTAÇÃO WESLEY DOS SANTOS MENENGUCI COMPUTAÇÃO DE ALTO DESEMPENHO ENVOLVENDO CLUSTERS E MÉTODOS NUMÉRICOS VILA VELHA 2008 WESLEY DOS SANTOS MENENGUCI

Leia mais

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

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

Leia mais

7 Processamento Paralelo

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

Leia mais

Aspectos de Programação Paralela em Máquinas NUMA

Aspectos de Programação Paralela em Máquinas NUMA Aspectos de Programação Paralela em Máquinas NUMA Alexandre Carissimi 1 Fabrice Dupros 2 Jean-François Méhaut 3 Rafael Vanoni Polanczyk 1 1 Instituto de Informática UFRGS Caixa Postal 15.064 Porto Alegre

Leia mais

Microcontroladores e Microprocessadores

Microcontroladores e Microprocessadores Microcontroladores e Microprocessadores Arquitetura Von Neumann e Arquitetura Harvard Prof. Samuel Cavalcante Conteúdo Componentes básicos de um computador Processamento Unidades de Entrada/Saída (I/O)

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