Introdução ao Processamento de Alto Desempenho

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

Download "Introdução ao Processamento de Alto Desempenho"

Transcrição

1 ao Processamento de Alto Desempenho ERAD Nordeste Prof. Dr. Esbel Tomás Valero Orellana Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@nbcgib.uesc.br 21 de Setembro de / 46

2 Apresentação O PROFESSOR Formado em Enganharia Nuclear pelo ISCTN (Havana, Cuba) Mestrado em Modelagem Computacional pelo IP da UERJ (Nova Friburgo, RJ, Brasil) Doutorado em Modelagem Computacional pelo LNCC (Petrópolis, RJ, Brasil) Implantação do O Laboratório de Bioinformática - LABBI na UESC Direção do Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas - NBCGIB na UESC Criaç o da Rede Colaborativa de Computação de Alto Desempenho e Aplicações da Bahia (Rede CoCADA-Ba) Implantação do Centro de Armazenamento de dados e Computação Avançada da UESC - CACAU 2 / 46

3 Apresentação O EVENTO A Escola Regional de Alto Desempenho (ERAD) - Região Nordeste é um evento organizado pela Rede CoCADA, a qual é composta por instituições de ensino e de pesquisa dos estados da Bahia, Alagoas e Sergipe, bem como por pesquisadores da Universidade Autônoma de Barcelona. O público-alvo do evento é composto por alunos de cursos de graduação e pós-graduação, professores, pesquisadores e profissionais com interesse na área de Processamento de Alto Desempenho (PAD) e seus temas relacionados. Objetivos Promover a área de PAD no estado e na região; Qualificar o público-alvo nos temas pertinentes a essa área; Estabelecer um espaço de referência para o intercâmbio de experiências de ensino, pesquisa e extensão em PAD na região. 3 / 46

4 Apresentação O MINI-CURSO A O Mini-curso A: a Processamento de Alto desempenho pretende fazer um revisão de alguns tópicos gerais PAD. Serão abordadas as principais tecnologias disponíveis e as técnicas de programação paralela mais utilizadas. Programação utilizando multithreads, troca de mensagens e a arquitetura CUDA são apresentadas de forma resumida. O Minicurso se propões servir como base para estudos futuros, mais avançados, sobre os temas abordados. Pelas limitações de tempo e espaço está fora do escopo oferecer uma referência detalhada em programação paralela. 4 / 46

5 Apresentação OS PARTICIPANTES A plateia está formada por... quantos alunos de graduação? 5 / 46

6 Apresentação OS PARTICIPANTES A plateia está formada por... quantos alunos de graduação? de quais cursos? 5 / 46

7 Apresentação OS PARTICIPANTES A plateia está formada por... quantos alunos de graduação? de quais cursos? quantos alunos de pós-graduação? 5 / 46

8 Apresentação OS PARTICIPANTES A plateia está formada por... quantos alunos de graduação? de quais cursos? quantos alunos de pós-graduação? quantos professores, pesquisadores e profissionais com interesse na área de PAD? 5 / 46

9 Tópicos 6 / 46

10 Tópicos Considerações sobre PAD 6 / 46

11 Tópicos Considerações sobre PAD Arquiteturas Modernas com Múltiplos Processadores 6 / 46

12 Tópicos Considerações sobre PAD Arquiteturas Modernas com Múltiplos Processadores Visão Geral sobre 6 / 46

13 Tópicos Considerações sobre PAD Arquiteturas Modernas com Múltiplos Processadores Visão Geral sobre Estudo de caso: Multiplicação de Matizes 6 / 46

14 Tópicos Considerações sobre PAD Arquiteturas Modernas com Múltiplos Processadores Visão Geral sobre Estudo de caso: Multiplicação de Matizes Considerações Finais 6 / 46

15 A evolução 7 / 46

16 Uma linha do tempo Em 1993 começa a ser desenvolvido o primeiro cluster tipo Beowulf 8 / 46

17 Uma linha do tempo Em 1993 começa a ser desenvolvido o primeiro cluster tipo Beowulf 8 / 46

18 Uma linha do tempo O conceito de cluster Beowulf evoluiu... 9 / 46

19 Uma linha do tempo O conceito de cluster Beowulf evoluiu... 9 / 46

20 Uma linha do tempo... e ficou sofisticado 10 / 46

21 Uma linha do tempo... e ficou sofisticado 10 / 46

22 Uma linha do tempo Entretanto, por volta de 2003 novidades tecnológicas chegaram para modificar a forma como se pensava PAD até aquele momento 11 / 46

23 Uma linha do tempo Entretanto, por volta de 2003 novidades tecnológicas chegaram para modificar a forma como se pensava PAD até aquele momento 11 / 46

24 Uma linha do tempo Hoje, quase dez anos depois, nos encontramos com um senário totalmente novo no qual um simples laptop pode possuir um desempenho da ordem dos teraflops; 12 / 46

25 Uma linha do tempo Os modernos clusters passaram a utilizar máquinas multiprocessadas e, em alguns casos, equipadas com poderosas GPUs; As novas arquiteturas híbridas, interligadas por redes cada vez mais rápidas, incrementaram a capacidade computacional disponível. 13 / 46

26 Serial vs Paralelo Algoritmo serial ou sequencial: executado em um único processador, Algoritmo paralelo: executado em dois ou mais processadores, Para cada algoritmo paralelo existe um algoritmo serial que realiza a mesma tarefa, Antes de criar um algoritmo paralelo sempre crie uma versão serial para o mesmo problema. Algoritmo serial: ponto de partida, garante a compreensão do problema, auxilia na validação do programa paralelo. 14 / 46

27 Objetivo de um programa paralelo Objetivo de um algoritmo paralelo: obter um desempenho superior com relação a versão sequencial; Desempenho = tempo de execução, Tempo total de execução = tempo de computação + tempo ocioso + tempo de comunicação, 15 / 46

28 Tempo de execução Tempo de computação: tempo das operações de E/S e cálculos do programa, Tempo ocioso ou tempo de sincronização: Dedicado a sincronizar um algoritmo ou a esperar pelos processos mais lentos, Tempo de comunicação = latência + tempo de transmissão, latência: tempo de preparação da mensagem (pacotes), tempo de transmissão: velocidade real de transmissão (largura de banda). 16 / 46

29 Fatores Para obtermos algoritmos paralelos eficientes devemos considerar: Balanceamento de carga: dividir equitativamente o trabalho entre os processadores, Minimizar as necessidades de comunicação, Minimizar o tempo ocioso, Sobrepor as operações de comunicação e de computação. Minimizar (concentrar) as operações E/S. 17 / 46

30 Projeto de programas paralelos Existem basicamente dois enfoques para projetar programas paralelos: 1 Paralelismo de dados: neste enfoque particionamos os dados, e associamos um subconjunto de dados a cada processo, cada processo executa os mesmos comandos sobre seu subconjunto de dados. 2 Paralelismo de controle: dividimos o problema em tarefas (etapas) independentes, associamos cada tarefa a um processo, cada processo executa comandos diferentes. 18 / 46

31 Projeto de programas paralelos Características do paralelismo de dados: 1 pode ser implementado mais facilmente que o paralelismo de controle, 2 não é prejudicado pela dependência entre as operações, 3 programas deste tipo são facilmente escaláveis (podem ser utilizados para resolver problemas cada vez maiores, apenas colocando mais processos), 4 pouca comunicação entre processos. 19 / 46

32 Projeto de programas paralelos Características do paralelismo de controle: 1 deve considerar a dependência entre as operações, 2 difícil de ser implementado, 3 dificuldades de escalabilidade, 4 grandes necessidades de comunicação. 20 / 46

33 Projeto de programas paralelos Características do paralelismo de controle: 1 deve considerar a dependência entre as operações, 2 difícil de ser implementado, 3 dificuldades de escalabilidade, 4 grandes necessidades de comunicação. A maioria dos programas paralelos envolvem os dois enfoques (dados e controle), O paralelismo de dados é muito mais comum. 20 / 46

34 Projeto de programas paralelos Como construir um programa paralelo: 1 Estudar, implementar e validar uma solução serial para o problema; 21 / 46

35 Projeto de programas paralelos Como construir um programa paralelo: 1 Estudar, implementar e validar uma solução serial para o problema; 2 Dividir os dados do problema entre os processos (PD); 21 / 46

36 Projeto de programas paralelos Como construir um programa paralelo: 1 Estudar, implementar e validar uma solução serial para o problema; 2 Dividir os dados do problema entre os processos (PD); 3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD); 21 / 46

37 Projeto de programas paralelos Como construir um programa paralelo: 1 Estudar, implementar e validar uma solução serial para o problema; 2 Dividir os dados do problema entre os processos (PD); 3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD); 4 Se o paralelismo de dados não for suficiente, identificar as necessidades de comunicação entre os processos; 21 / 46

38 Projeto de programas paralelos Como construir um programa paralelo: 1 Estudar, implementar e validar uma solução serial para o problema; 2 Dividir os dados do problema entre os processos (PD); 3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD); 4 Se o paralelismo de dados não for suficiente, identificar as necessidades de comunicação entre os processos; 5 Introduzir o paralelismo de controle (PC). 21 / 46

39 Análise de Desempenho p = número de processos (processadores) ou threads. n = tamanho do problema. Para avaliar o desempenho de programas seriais se utiliza notação assintótica (O, Ω), Análises assintóticas não são apropriadas para caracterizar o desempenho de programas paralelos. 22 / 46

40 Métricas Tempo de execução, Granularidade, Fator de balanço de carga, Speedup, Eficiência. 23 / 46

41 Tempo de execução Tempo de execução de um programa serial: T (n), apenas depende do tamanho do problema; Tempo de execução de um programa paralelo: T (n, p), depende do tamanho do problema e do número de processadores utilizados na execução; T (n, p) tempo total de execução, tempo transcorrido desde que o primeiro processador começa a execução, até que o último processador completa a execução da última instrução. 24 / 46

42 Tempo de execução Na maioria dos programas T (n, p) é simplesmente o tempo de execução do processo responsável pelas operações de E/S do programa (processo master), Consideramos que cada processo é executado em um processador físico diferente (não existem processos concorrentes), Geralmente para avaliarmos o desempenho de um programa paralelo comparamos ele com o programa serial que resolve o mesmo problema. 25 / 46

43 Speedup Speedup: é a razão do tempo de execução do algoritmo serial T (n) com o tempo de execução do algoritmo paralelo T (n, p), S(n, p) = T (n) T (n, p) T (n) tempo de execução do algoritmo serial mais rápido executado em um processador da máquina paralela, T (n, p) tempo de execução do algoritmo paralelo em p processadores da máquina paralela. 26 / 46

44 Speedup O algoritmo paralelo pode ser diferente do algoritmo serial mais rápido, O speedup fornece um indicador para o aumento da velocidade por utilizarmos uma maquina paralela. De forma geral: 0 < S(n, p) p, Se S(n, p) = p teremos speedup linear, Speedup linear é uma rara ocorrência pois a maioria das soluções paralelas introduzem alguma sobrecarga produto da distribuição de carga e a comunicação entre processos. 27 / 46

45 Speedup Se a sobrecarga da paralelização for muito alta, teremos que T (n) < T (n, p) e S(n, p) < 1 esta situação indesejável é chamada de slowdown. Resumo de speedups: S(n, p) < 1, slowdown, situação indesejável; 1 < S(n, p) < p, sublinear, comportamento geral; S(n, p) = p, linear, ideal não existe sobrecarga; S(n, p) > p, supralinear, situação possível; 28 / 46

46 Eficiência Eficiência: é a medida de utilização dos processos em um programa paralelo em relação ao programa serial. E(n, p) = S(n, p) p = T (n) pt (n, p) 29 / 46

47 Eficiência Eficiência: é a medida de utilização dos processos em um programa paralelo em relação ao programa serial. E(n, p) = S(n, p) p = T (n) pt (n, p) E(n, p) < 1 p, slowdown; 1 p < E(n, p) < 1, sublinear; E(n, p) = 1, linear; E(n, p) > 1, supralinear. 29 / 46

48 Tomadas de tempo Para avaliar o desempenho de programas paralelos devemos realizar tomadas de tempo, Para obtermos tomadas de tempo confiáveis considere as seguintes etapas: 1 Garantir na medida do possível exclusividade na utilização do processador, 2 Sincronizar os processo no inicio do código, 3 Fazer uma tomada de tempo (start), 4 Sincronizar os processo no final do código, 5 fazer uma tomada de tempo (finish), 6 Calcular o tempo transcorrido (finish-start). 30 / 46

49 Lei de Ahmdal A lei de Amdahl, foi formulada por Gene Amdahl em 1967; Estabelece um limite superior para o speedup de um algoritmo paralelo; De forma geral um problema é composto por: Um conjunto de operações de cálculo, Um conjunto de operações de E/S. Um algoritmo serial leva um tempo T s para resolver o problema. 31 / 46

50 Instruções paralelas O programa tem uma fração r = (1 f ) de instruções que são perfeitamente paralelizáveis ; Operações de cálculo; Independentemente do número de processos envolvidos (p), a fração r do programa apresenta speedup linear; O tempo de execução quando paralelizada com p processos é: rt s /p. 32 / 46

51 Instruções seriais Entretanto, temos uma fração f que é inerentemente serial; Operações de E/S; Independentemente do número de processos (p) utilizados; O tempo de execução destas instruções é sempre ft s. 33 / 46

52 Instruções seriais + paralelas 34 / 46

53 Speedup Calculamos o speedup deste programa: S(n, p) = S(n, p) = T s ft s + (1 f )T s /p 1 f + (1 f )/p 35 / 46

54 Speedup Calculamos o speedup deste programa: S(n, p) = S(n, p) = T s ft s + (1 f )T s /p 1 f + (1 f )/p Derivamos S(n, p) com relação a p, obteremos uma derivada sempre positiva indicando S(n, p) é uma função sempre crescente. ds(p) r = dp [(1 r)p + r] / 46

55 Speedup Calculamos o limite de S(n, p) quando p 1 lim S(n, p) = lim p p (1 r) + r/p = 1 (1 r) A função 1/(1 r) é um limite superior para o speedup de um programa paralelo. Lei de Amhdal: o speedup que podemos obter ao paralelizar um programa é limitado por 1/(1 r). 36 / 46

56 Exemplos Cálculo de speedup máximo segunda a lei de Ahmdal 1 r = 0.50, MS = 1/(1 r) = 2, para p > 2, E(n, p). 37 / 46

57 Exemplos Cálculo de speedup máximo segunda a lei de Ahmdal 1 r = 0.50, MS = 1/(1 r) = 2, para p > 2, E(n, p). 2 r = 0.75, MS = 1/(1 r) = 4, para p > 4, E(n, p). 37 / 46

58 Exemplos Cálculo de speedup máximo segunda a lei de Ahmdal 1 r = 0.50, MS = 1/(1 r) = 2, para p > 2, E(n, p). 2 r = 0.75, MS = 1/(1 r) = 4, para p > 4, E(n, p). 3 r = 0.99, MS = 1/(1 r) = 100, para p > 100, E(n, p). 37 / 46

59 Exemplos Cálculo de speedup máximo segunda a lei de Ahmdal 1 r = 0.50, MS = 1/(1 r) = 2, para p > 2, E(n, p). 2 r = 0.75, MS = 1/(1 r) = 4, para p > 4, E(n, p). 3 r = 0.99, MS = 1/(1 r) = 100, para p > 100, E(n, p). 4 Se executarmos o caso 3 com p = 1000 teremos uma eficiência E(n, p) = / 46

60 Exemplos Speedup máximo segunda a lei de Ahmdal 38 / 46

61 Exemplos O pintor de estacas 1 Preparo da tinta = 30s 2 Pintura das estacas = 300s 3 Tempo para a tinta secar = 30s 39 / 46

62 Exemplos O pintor de estacas 1 Preparo da tinta = 30s 2 Pintura das estacas = 300s 3 Tempo para a tinta secar = 30s Pintores Tempo Speedup = = = = = / 46

63 Exemplos A lei de Ahmdal desencoraja a utilização de paralelismo massivo; Não devemos utilizar centos ou mieis de processadores para resolver um único problema; Esta conclusão é correta? O que fazer? 40 / 46

64 Exemplos A lei de Ahmdal desencoraja a utilização de paralelismo massivo; Não devemos utilizar centos ou mieis de processadores para resolver um único problema; Esta conclusão é correta? O que fazer? A formulação de Ahmdal é matematicamente correta; Entretanto, devemos discutir suas hipóteses. 40 / 46

65 Lei de Ahmdal - Hipóteses Em todo programa existe um conjunto de (1 r) instruções que não são paralelizáveis; 41 / 46

66 Lei de Ahmdal - Hipóteses Em todo programa existe um conjunto de (1 r) instruções que não são paralelizáveis; É excessivamente otimista supor que as restantes r instruções são perfeitamente paralelizáveis, sempre teremos alguma sobrecarga produto da paralelização; 41 / 46

67 Lei de Ahmdal - Hipóteses Em todo programa existe um conjunto de (1 r) instruções que não são paralelizáveis; É excessivamente otimista supor que as restantes r instruções são perfeitamente paralelizáveis, sempre teremos alguma sobrecarga produto da paralelização; A principal deficiência da lei de Amdhal é que não considera o tamanho do problema n na formulação. 41 / 46

68 Lei de Gustavfson Em um problema qualquer ao aumentarmos o tamanho do problema n, a fração de instruções seriais (1 r) fica consideravelmente menor; Exemplos 42 / 46

69 Lei de Gustavfson Em um problema qualquer ao aumentarmos o tamanho do problema n, a fração de instruções seriais (1 r) fica consideravelmente menor; Exemplos Escalabilidade: um programa é escalável se podemos manter constante a eficiência E(n, p), incrementando o tamanho do problema n ao mesmo tempo que incrementamos o número de processos p. 42 / 46

70 Lei de Gustavfson Conceitos de trabalho (W ) e sobrecarga (T 0 ); 43 / 46

71 Lei de Gustavfson Conceitos de trabalho (W ) e sobrecarga (T 0 ); O trabalho de um programa serial é justamente seu tempo de execução W (n) = T (n); 43 / 46

72 Lei de Gustavfson Conceitos de trabalho (W ) e sobrecarga (T 0 ); O trabalho de um programa serial é justamente seu tempo de execução W (n) = T (n); O trabalho de um programa paralelo é a soma do trabalho feito por cada processo W (n, p) = pt (n, p); 43 / 46

73 Lei de Gustavfson Conceitos de trabalho (W ) e sobrecarga (T 0 ); O trabalho de um programa serial é justamente seu tempo de execução W (n) = T (n); O trabalho de um programa paralelo é a soma do trabalho feito por cada processo W (n, p) = pt (n, p); A sobrecarga do programa paralelo, é a diferença entre o trabalho feito pelo programa paralelo e o programa serial correspondente T 0 (n, p) = W (n, p) W (n) = pt (n, p) T (n). 43 / 46

74 Lei de Gustavfson A eficiência foi definida na forma E(n, p) = T (n) pt (n, p), Escrevemos a eficiência em função da sobrecarga, Substituímos o denominador pela definição de sobrecarga e obtemos E(n, p) = 1. T 0 (n, p) + 1 T (n) 44 / 46

75 Lei de Gustavfson Ao aumentar o número de processos incrementarmos p aumenta a sobrecarga T 0 (n, p); Se incrementamos n (aumenta T (n)) de forma que a fração T 0 (n, p)/t (n) permanece constante; Podemos então manter a eficiência constante e aumentar o número de processos, Este procedimento diminui o peso das operações seriais no problema. 45 / 46

76 Lei de Gustavfson Fontes de sobrecarga em programas paralelos: Comunicação entre processos, Inatividade de processos, Cálculos adicionais (provocados pela paralelização). Durante as décadas de 70 e 80, a lei de Amdahl foi amplamente aceita nos círculos científicos. Nos últimos anos o conceito de escalabilidade (Lei de Gufstavson) tem aberto novos horizontes ao uso de paralelismo massivo. 46 / 46

Caracterização de desempenho em programas paralelos

Caracterização de desempenho em programas paralelos Caracterização de desempenho em programas paralelos Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br

Leia mais

Arquiteturas Paralelas

Arquiteturas Paralelas ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno Índice 2 1. Introdução 2. Medidas de Desempenho Introdução 3 Aumento de desempenho dos

Leia mais

Medida de desempenho

Medida de desempenho Medida de desempenho Aceleração (Speedup) = (Tempo em 1 CPU) / (Tempo em p CPUs) O que devemos comparar? Programa paralelo em 1 CPU? Programa equivalente sequencial? Melhor programa sequencial? Fator de

Leia mais

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado Multiprocessadores - A evolução tecnológica dos processadores iria diminuir drasticamente. 2- O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos

Leia mais

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Programação de Alto Desempenho - 2. Prof: Carla Osthoff Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: osthoff@lncc.br 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda

Leia mais

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina

Leia mais

SSC PROGRAMAÇÃO CONCORRENTE

SSC PROGRAMAÇÃO CONCORRENTE SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 08 Avaliação de Desempenho de Programas Paralelos Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados

Leia mais

Algoritmos Paralelos Eficientes para Alguns Problemas em Proce. Caracteres

Algoritmos Paralelos Eficientes para Alguns Problemas em Proce. Caracteres lgoritmos Paralelos Eficientes para lguns Problemas em Processamento de Cadeias de Caracteres JI/SBC 2007 - Rio de Janeiro Parte 1 gradecimentos O material deste curso é baseado em trabalhos publicados

Leia mais

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído Arquitetura de Computadores Sistemas computacionais para processamento paralelo e distribuído Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Processamento

Leia mais

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho 1 Introdução I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho Os hardwares gráficos atualmente podem ser considerados como verdadeiros processadores

Leia mais

Introdução a Processamento de Alto Desempenho

Introdução a Processamento de Alto Desempenho Capítulo 1 Introdução a Processamento de Alto Desempenho Esbel T. Valero Orellana Abstract This article is a review of some general topics on high-performance computing. It covers the main technologies

Leia mais

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de 12 1 1.1. Motivações Dentre os tipos de técnicas de Inteligência Artificial existentes, as técnicas de Programação Genética (PG) continuam mudando rapidamente conforme os pesquisadores e profissionais

Leia mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ   fevereiro, / 41 Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

Introdução a Processamento de Alto desempenho

Introdução a Processamento de Alto desempenho Introdução a Processamento de Alto desempenho Esbel T. Valero Orellana 1 1 Nucleo de Biologia Computacional e Gestão de Informações Biotecnológicas Universidade Estadual de Santa Cruz (UESC) Campus Soane

Leia mais

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Diego da Silva Pereira 1 1 Professor de Redes de Computadores IFRN Câmpus Currais Novos. e-mail: diego.pereira@ifrn.edu.br Resumo:

Leia mais

Elementos de conexão e condições de paralelismo. Aleardo Manacero Jr.

Elementos de conexão e condições de paralelismo. Aleardo Manacero Jr. Elementos de conexão e condições de paralelismo Aleardo Manacero Jr. Elementos de Conexão O que é conectividade? Define como os elementos de processamento (CPU e memória) de um sistema de alto desempenho

Leia mais

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

Programação Concorrente

Programação Concorrente INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica

Leia mais

The future is parallel but it may not be easy

The future is parallel but it may not be easy The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de

Leia mais

APRESENTAÇÃO. Slides baseados no material de Marco A. Zanata Alves - UFPR (2016) Curso: CI316 Programação Paralela INTEL MODERN CODE PARTNER 1

APRESENTAÇÃO. Slides baseados no material de Marco A. Zanata Alves - UFPR (2016) Curso: CI316 Programação Paralela INTEL MODERN CODE PARTNER 1 INTEL MODERN CODE PARTNER APRESENTAÇÃO Slides baseados no material de Marco A. Zanata Alves - UFPR (2016) Curso: CI316 Programação Paralela INTEL MODERN CODE PARTNER 1 O QUE ESPERAR DESSE WORKSHOP? INTEL

Leia mais

Paralela e Distribuída. com o MPI e o OpenMP

Paralela e Distribuída. com o MPI e o OpenMP Programação Paralela e Distribuída Programação Híbrida com o e o OpenMP e OpenMP Uma forma de executar um programa em paralelo num cluster multiprocessor é criar um processo por cada processador. Nesse

Leia mais

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi Material

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados

Leia mais

Programação Paralela e Distribuída Lista de Exercícios P2 2008/1

Programação Paralela e Distribuída Lista de Exercícios P2 2008/1 Programação Paralela e Distribuída Lista de Exercícios P2 2008/1 Sincronização de Relógio Questão 1 Explique por que existe a necessidade de sincronização de relógio em sistemas distribuídos. Questão 2

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:

Leia mais

Desempenho de computação paralela

Desempenho de computação paralela Desempenho de computação paralela o paralelismo existente na aplicação decomposição do problema em subproblemas menores a alocação destes subproblemas aos processadores o modo de acesso aos dados: a existência

Leia mais

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 1: Introdução aos Sistemas Operacionais Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Pensando melhor... Porque cursar a disciplina de S.O.? A disciplina é obrigatória!

Leia mais

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Tomás Evalero Orellana Universidade Estadual de Santa Cruz Roteiro Breve introdução

Leia mais

Organização de Sistemas Computacionais Processadores: Organização da CPU

Organização de Sistemas Computacionais Processadores: Organização da CPU Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0

Leia mais

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Pedro Carlos da Silva Lara Fábio Borges de Oliveira Renato Portugal Laboratório Nacional de Computação Científica Índice 1 Introdução

Leia mais

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho Ciência da Computação Arq. e Org. de Computadores Avaliando e Compreendendo o Desempenho O Que Veremos Avaliando e compreendendo o desempenho: Introdução Definindo desempenho Medindo o desempenho e seus

Leia mais

Computação científica utilizando placas gráficas

Computação científica utilizando placas gráficas Brasília, dezembro de 2008 Universidade de Brasília - Faculdade do Gama Sumário Introdução Sumário Introdução Arquitetura da GPU Sumário Introdução Arquitetura da GPU Modelo de programação Sumário Introdução

Leia mais

LIMITES E DERIVADAS COM O SOFTWARE MATHEMATICA 10.3

LIMITES E DERIVADAS COM O SOFTWARE MATHEMATICA 10.3 Sociedade Brasileira de Matemática Matemática na Contemporaneidade: desafios e possibilidades LIMITES E DERIVADAS COM O SOFTWARE MATHEMATICA 10.3 Cláudio Firmino Arcanjo Secretaria de Estado da de Alagoas

Leia mais

Modelo de Programação Paralela

Modelo de Programação Paralela Modelo de Programação Paralela As arquiteturas paralelas e distribuídas possuem muitos detalhes Como especificar uma solução paralela pensando em todos esses detalhes? O que queremos? Eecutar a solução

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas

Leia mais

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto ENDEREÇAMENTO DE INSTRUÇÕES Adão de Melo Neto 1 TIPOS DE OPERAÇÕES 2 TIPOS DE OPERAÇÕES TIPOS DE INSTRUÇÕES/OPERAÇÕES (RELEMBRANDO) 3 INTRODUÇÃO TIPOS DE INSTRUÇÕES/OPERAÇÕES (RELEMBRANDO) 4 INTRODUÇÃO

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

Breve Introdução aos Sistemas Operativos. Disciplina de Informática PEUS, U.Porto

Breve Introdução aos Sistemas Operativos. Disciplina de Informática PEUS, U.Porto Breve Introdução aos Sistemas Operativos Disciplina de Informática PEUS, 2006 - U.Porto Definição de Sistema Operativo Um programa que funciona como intermediário entre o utilizador do computador e os

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Programação Concorrente e Paralela

Programação Concorrente e Paralela 2010.2 Objetivos princípios e técnicas de programação paralela multiprocessadores memória compartilhada troca de mensagens arquiteturas alternativas multicomputadores troca de mensagens obs: Essa troca

Leia mais

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:

Leia mais

Conceitos Básicos Processador

Conceitos Básicos Processador Infra-Estrutura de Hardware Conceitos Básicos Processador Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Organização da CPU Execução das Instruções RISC x CISC Paralelismo

Leia mais

Programação Paralela. Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes

Programação Paralela. Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Programação Paralela Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Introdução Programação paralela é a divisão de um problema em partes, de maneira que essas partes possam ser executadas paralelamente

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS

Leia mais

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES Paradigmas da Engenharia de Software AULA 03-04 PROF. ABRAHAO LOPES Introdução O processo de software é visto por uma sequência de atividades que produzem uma variedade de documentos, resultando em um

Leia mais

4 Cálculo de Equivalentes Dinâmicos

4 Cálculo de Equivalentes Dinâmicos 4 Cálculo de Equivalentes Dinâmicos 4.1. Introdução Os sistemas de potência interligados vêm adquirindo maior tamanho e complexidade, aumentando a dependência de sistemas de controle tanto em operação

Leia mais

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva Introdução à Programação Paralela através de Padrões Denise Stringhini Calebe Bianchini Luciano Silva Sumário Introdução: conceitos de paralelismo Conceitos básicos sobre padrões de programação paralela

Leia mais

DCBD. Avaliação de modelos. Métricas para avaliação de desempenho. Avaliação de modelos. Métricas para avaliação de desempenho...

DCBD. Avaliação de modelos. Métricas para avaliação de desempenho. Avaliação de modelos. Métricas para avaliação de desempenho... DCBD Métricas para avaliação de desempenho Como avaliar o desempenho de um modelo? Métodos para avaliação de desempenho Como obter estimativas confiáveis? Métodos para comparação de modelos Como comparar

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Multiprogramação leve em arquiteturas multi-core

Multiprogramação leve em arquiteturas multi-core Multiprogramação leve em arquiteturas multi-core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Arquiteturas multi-core Programação multithread Ferramentas de programação

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 5ª. Série Programação Distribuída A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br 29 de julho de 2015 1/21 Apresentação da disciplina Objetivo da disciplina

Leia mais

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o

Leia mais

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

Avaliação de Desempenho

Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB

Carlos Eduardo Batista Centro de Informática - UFPB Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação Arquitetura de computadores modernos Desafios da programação concorrente Definição de concorrência Correr junto Disputa por

Leia mais

Aula 3 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Aula 3 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos Aula 3 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS Marcelo Henrique dos Santos Marcelo Henrique dos Santos Email: Site: marcelosantos@outlook.com www.marcelohsantos.com.br TECNOLOGIA EM JOGOS

Leia mais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Introdução a Sistemas Operacionais. Adão de Melo Neto Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como

Leia mais

Programação Paralela e Distribuída

Programação Paralela e Distribuída INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.

Leia mais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

What is? Eduardo Viola Nicola Disciplina de IPPD

What is? Eduardo Viola Nicola Disciplina de IPPD What is? Eduardo Viola Nicola evnicola@inf.ufpel.edu.br Disciplina de IPPD Sumário 1)Introdução 2)Princípio Geral de Funcionamento 3)Exemplos de Aplicações 4)Modelo de Programação 5)Linguagens Suportadas

Leia mais

Prof. a : Patrícia Caldana

Prof. a : Patrícia Caldana CONJUNTOS NUMÉRICOS Podemos caracterizar um conjunto como sendo uma reunião de elementos que possuem características semelhantes. Caso esses elementos sejam números, temos então a representação dos conjuntos

Leia mais

SSC510 Arquitetura de Computadores. 6ª aula

SSC510 Arquitetura de Computadores. 6ª aula SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas

Leia mais

Desempenho. Sistemas de Computação

Desempenho. Sistemas de Computação Desempenho Definição Medidas de desempenho utilizadas Tempo de resposta ou tempo de execução: tempo decorrido entre o início da execução de um programa e o seu final Quantidade de trabalho realizada em

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Introdução Slide 1 Nielsen C. Damasceno Introdução Tanenbaum (2007) definiu que um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas

Leia mais

Técnicas Avançadas de Programação

Técnicas Avançadas de Programação Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Concorrência termo mais geral, um programa pode ser constituído por mais de um thread/processo concorrendo por recursos Paralelismo uma aplicação é eecutada por um conjunto

Leia mais

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC643 Avaliaçãode Desempenhode Sistemas Computacionais Aula 5 Sarita Mazzini Bruschi

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

Conceitos de Análise de Desempenho

Conceitos de Análise de Desempenho Conceitos de Análise de Desempenho Prof. Gustavo Leitão Campus Natal Central Planejamento de Capacidade de Sistemas 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 INTRODUÇÃO Introdução sobre análise de desempenho

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em

Leia mais

Linguagem de Programação II

Linguagem de Programação II Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes

Leia mais

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD Universidade Federal do Rio de Janeiro Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquiteturas de Sistemas de Processamento Paralelo Arquiteturas SIMD Arquiteturas SIMD Processadores Vetoriais Arquiteturas

Leia mais

Sistemas Operacionais. Tipos de SO

Sistemas Operacionais. Tipos de SO Sistemas Operacionais Tipos de SO Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefas Sistemas Multiprogramáveis/ Multitarefas Sistemas com Múltiplos Processadores

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

Leia mais

Programação Paralela e Distribuída

Programação Paralela e Distribuída Curso de Informática DCC-IM / UFRJ Programação Paralela e Distribuída Um curso prático Mario J. Júnior Gabriel P. Silva Colaboração: Adriano O. Cruz, Julio S. Aude Ementa Paradigma de Troca de Mensagens

Leia mais

Curso: Redes de Computadores

Curso: Redes de Computadores Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg

Leia mais

Algoritmos Computacionais

Algoritmos Computacionais UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE

Leia mais

Arquitetura de núcleo distribuído utilizando o sistema de switch central Z9000. Uma Nota Técnica da Dell

Arquitetura de núcleo distribuído utilizando o sistema de switch central Z9000. Uma Nota Técnica da Dell Arquitetura de núcleo distribuído utilizando o sistema de switch central Z9000 Uma Nota Técnica da Dell Esta nota técnica serve apenas para fins informativos e pode conter erros de digitação e erros técnicos.

Leia mais

3 Redes Neurais Artificiais

3 Redes Neurais Artificiais 3 Redes Neurais Artificiais 3.1. Introdução A capacidade de implementar computacionalmente versões simplificadas de neurônios biológicos deu origem a uma subespecialidade da inteligência artificial, conhecida

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha

Leia mais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I 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 Computadores I Circuitos Lógicos Sequenciais (Parte

Leia mais

Quando múltiplos núcleos não trazem melhorias

Quando múltiplos núcleos não trazem melhorias Instituto de Matemática e Estatística - USP Bacharelado em Ciências da Computação MAC0412 - Organização de Computação Quando múltiplos núcleos não trazem melhorias Autor: Ricardo Juliano Mesquita Silva

Leia mais

Análise de algoritmos. Parte I

Análise de algoritmos. Parte I Análise de algoritmos Parte I 1 Recursos usados por um algoritmo Uma vez que um procedimento está pronto/disponível, é importante determinar os recursos necessários para sua execução Tempo Memória Qual

Leia mais

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol. AULA 07 OBJETIVO: Estruturas de repetição: visão geral HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol. ESTRUTURA DE REPETIÇÃO

Leia mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto? LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar

Leia mais

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Ementa e Objetivos Ementa: Análise de Algoritmos: Notação O e Análise Assintótica.

Leia mais

Tabela 4.1 Distribuição dos indicadores por tipo Tipo de Indicador No. de indicadores. Indicadores de Evento 93. Indicadores de Tendência 37

Tabela 4.1 Distribuição dos indicadores por tipo Tipo de Indicador No. de indicadores. Indicadores de Evento 93. Indicadores de Tendência 37 4 Estudo de Casos A metodologia proposta no capítulo 3 foi aplicada em casos reais coletados de equipamentos Caterpillar da Sotreq. As falhas aqui estudadas são referentes a dois componentes do caminhão:

Leia mais

Bibliografia em processamento paralelo

Bibliografia em processamento paralelo Bibliografia em processamento paralelo Andrews, Concurrent Programming: Principles and Practice Foster, Designing and Building Parallel Programs Wolfe, High Performance Compilers for Parallel Computing

Leia mais

Segundo trabalho prático de implementação Sistema de reserva de assentos

Segundo trabalho prático de implementação Sistema de reserva de assentos Segundo trabalho prático de implementação Sistema de reserva de assentos 1. Descrição do problema Computação Concorrente (MAB-117) 2016/2 Prof. Silvana Rossetto 1 DCC/IM/UFRJ 17 de novembro de 2016 Um

Leia mais