Exercícios (Ian Foster s Book)
|
|
|
- Moisés Bento Balsemão
- 8 Há anos
- Visualizações:
Transcrição
1 Exercícios (Ian Foster s Book) 1) If today's workstations execute at operations per second, and performance increases at a rate of 25 percent per year, how long will it be before we have workstations capable of operations per second? 2) A climate model requires floating point operations for a ten-year simulation. How long would this computation take at floating point operations per second (10 Mflops)? 3) A climate model generates bytes of data in a ten-day simulation. How fast must data be transferred to secondary storage? What transfer rate is required if we are to search this data in ten minutes?
2 Aspectos Explorados pelo Modelo O modelo deve ser capaz de oferecer facilidades tais que seja fácil: Decompor o programa em tarefas paralelas Mapear as tarefas nos processadores físicos custo de comunicação heterogeneidade dos processadores Sincronização entre tarefas: é preciso ter conhecimento do estado global da estrutura de execução do programa (quando é necessário sincronizar?)
3 Abstraindo para Programar Maior facilidade de programação: o esforço intelectual é reduzido quando nos concentrarmos em "uma coisa de cada vez duas dimensões: dimensão espacial dimensão temporal
4 Dimensão Espacial A cada momento, conjuntos de tarefas independentes são implementadas cada tarefa ou processador não sabe o que acontecerá "a seguir" detalhamento de informações globais levam a uma programação difícil Dimensão Temporal programas são composições de ações seqüenciais que preenchem o sistema computacional como um todo: pode-se definir com maior conhecimento o que vai acontecer a seguir
5 Níveis de Paralelismo Dependendo do nível considerado, a exploração do paralelismo é diferente nível de aplicações ou fases de aplicações a nível de tarefas a nível de instruções - a execução da instrução necessita da busca, análise e execução propriamente dita dentro dos circuitos aritméticos
6 Algoritmos Quando queremos resolver um problema computacionalmente, temos que analisar a complexidade deste. No domínio seqüencial, se procura definir um algoritmo que resolva o problema em tempo mínimo. Mas quando se tratando de algoritmos paralelos, mais um parâmetro número de processadores operações independentes devem ser executadas em paralelo. qual o tamanho dos processos? noção de granulosidade (granularity) a razão entre o tempo de computação necessário para executar uma tarefa e a sobrecarga de comunicação durante essa computação.
7 Modelos de Computação Modelo de Computação Seqüencial: von Neumann plataforma base para que usuários e projetistas complexidade de tempo do pior caso: tempo máximo que o algoritmo pode levar para executar qualquer entrada com n elementos complexidade de tempo esperado: complexidade média critério de custo uniforme: qualquer instrução RAM leva uma unidade de tempo para ser executada e também o acesso a registradores Modelo de Computação Paralela O desempenho do programa paralelo depende de certos fatores dependentes da máquina: grau de concorrência; escalonamento e alocação de processadores; comunicação e sincronização.
8 Modelo PRAM modelo ideal conjunto de p processadores operando sincronamente sob o controle de um único relógio, compartilhando um espaço global de memória algoritmos desenvolvidos para este modelo geralmente são do tipo SIMD todos os processadores executam o mesmo conjunto de instruções, e ainda a cada unidade de tempo, todos os processadores estão executando a mesma instrução mas usando dados diferentes.
9 Modelo PRAM modelo ideal propriedades chaves: execução síncrona sem nenhum custo adicional para a sincronização comunicação realizada em uma unidade de tempo, qualquer que seja a célula de memória acessada comunicação é feita usando a memória global
10 Passo do algoritmo PRAM fase de leitura: os processadores acessam simultaneamente locais de memória para leitura. Cada processador acessa no máximo uma posição de memória e armazena o dado lido em sua memória local fase de computação: os processadores executam operações aritméticas básicas com seus dados locais fase de gravação: os processadores acessam simultaneamente locais de memória global para escrita. Cada processador acessa no máximo uma posição de memória e grava um certo dado que está armazenado localmente
11 Modelo PRAM análise e estudo de algoritmos paralelos definição de paradigma de programação paralela avaliação do desempenho desses algoritmos independentemente das máquinas paralelas se o desempenho de um algoritmo paralelo para o modelo PRAM não é satisfatório, então não tem sentido implementá-lo em qualquer que seja a máquina paralela se eficiente, no entanto, podemos simulá-lo em uma máquina real : simulação deve ser eficiente
12 Padrões de Acesso no Modelo PRAM Exclusive Read (ER): vários processadores não podem ler ao mesmo tempo no mesmo local Exclusive Write (EW): vários processadores não pode escrever no mesmo local de memória Concurrent Read (CR): vários processadores podem ler ao mesmo tempo o mesmo local de memória Concurrent Write (CW): vários processadores podem escrever no mesmo local de memória ao mesmo tempo Combinações são usadas para formar as variantes do PRAM: EREW, CREW, ERCW e CRCW
13 Prioridades do CRCW Para resolver conflitos no caso de vários processadores tentarem escrever ao mesmo tempo no mesmo local de memória global: Comum - vários processadores concorrem a escrita no mesmo local de memória global durante o mesmo instante de relógio - todos devem escrever o mesmo valor; Arbitrário - dentre os vários processadores, um é selecionado arbitrariamente e seu valor armazenado no local de memória disputado; Prioridade - dentre os vários processadores, aquele com o menor índice é escolhido para escrever o seu valor no local concorrido.
14 Memória Global P 1 P 2 P 3 P 4 P n
15 Comunicação em uma máquina PRAM Comunicação através da memória global: Pi quer passar x para Pj Pi escreve x em um local de memória global em um determinado passo Pj pode acessar o dado naquele local no próximo passo
16 Memória compartilhada P 1 P 2 d1 d 1 d 2 P 3 d 3 P n d n Passo 1: cada processador realiza sua computação
17 Memória compartilhada d 1 P 1 P 2 d1 d 1 d 2 P 3 d 3 P n d n Passo 1: P 1 escreve na memória
18 Observações os processadores operam sincronamente: a cada passo, todas os processadores executam a mesma instrução sobre dados distintos uma instrução pode ser simplesmente uma operação aritmética ou uma comparação de dois números processadores ativos: somente um subconjunto de processadores executem uma instrução e processadores restantes ficam ociosos/inativos
19 Exemplo V vetor com n elementos. x um dado valor Problema: x V? Ambiente: P processadores tipo EREW PRAM Analisando o problema: todos os processadores tem que saber o valor de x não podem acessar a célula de x simultaneamente depois, cada processador tem que olhar os elementos de V sinalização da localização do valor x no vetor V
20 Solução todos os processadores devem saber sobre x: broadcasting ou difusão Pior caso deste procedimento log 2 P passos P1 acessa a memória global: P2 comunica com P1 ou seja, de alguma forma, P1 informa x para P2 P1 e P2 informam x para P3 e P4 assim por diante processadores não têm permissão de acesso simultâneo gravam x em lugares distintos: M i é um dos P locais de memória global Um vetor M auxiliar é utilizado
21 Solução do broadcasting (leitura) P 1 lê x P 1 escreve x em M 1 P 2 lê M 1 P 2 escreve em M 2 P 3 e P 4 lêem M 1 e M 2 P 3 e P 4 escrevem em M 3 e M 4 P 5, P 6, P 7 e P 8 lêem M 1, M 2, M 3 e M 4 P 5, P 6, P 7 e P 8 escrevem M 5, M 6, M 7 e M 8 e assim por diante a cada passo: duas vezes o número de processadores ativos do passo anterior podem ler e escrever log P passos
22 broadcasting P 1 lê de x; P 1 escreve em M[1]; Para h:= 1 até log P faça { se 2 h-1 < i 2 h então { P i lê de M[i - 2 h-1 ]; P i escreve em M[i]; } }
23 Memória compartilhada x x x x x M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 x x x x x x PASSO 1 PASSO 2 PASSO 3 PASSO 4
24 A Procura o vetor V é divido em P pedaços: S1, S2,, SP Pi procura por x em Si pior caso: n/p passos Total: log P + n/p passos, no pior caso Como o algoritmo poderia ser melhorado?? Definição de uma variável Achou Com computador mais poderoso algoritmo mais rápido.
25 PRAM mais poderoso: CREW PRAM para achar x, o algoritmo executa n/p passos leituras concorrentes são permitidas todos os processadores podem acessar x em um passo todos os processadores podem consultar Achou em um passo mas ao encontrar, o processador tem que atualizar Achou Quantos passos nas seguintes situações? somente um dos elementos tem valor x x pode ser um valor repetido em V mais de um processador pode atualizar Achou simultaneamente.
26 Relações entre Modelos EREW PRAM mais fraco CREW PRAM pode executar EREW na mesma quantidade de tempo simplesmente leituras concorrentes não são feitas CRCW PRAM pode executar EREW na mesma quantidade de tempo simplesmente leituras concorrentes não são feitas
27 Simulando Múltiplos Acessos em EREW um só processador determinado instante pode acessar a um local de memória a em um o modelo é bastante flexível pode ser executado em qualquer outra PRAM permite a simulação de múltiplos acessos mesmo que o espaço de armazenamento aumente ou o tempo de execução aumente
28 Simulando Múltiplos Acessos em EREW Por que a simulação? O simulação pode ser necessária caso uma das razões aconteça: se os computadores paralelos disponíveis são do tipo EREW - então executar algoritmos tipo: CREW e CRCW através de simulação para computadores paralelos com um grande número de processadores: o número de processadores que podem acessar a um mesmo local de memória simultaneamente é limitado
29 Simulando CW comum em um EREW N acessos simultâneos por um EREW PRAM por N processos no mesmo local leituras simultâneas: valor difundido, conforme já descrito: log N passos escritas simultâneas: procedimento simétrico à difusão CW comum: todos processadores podem escrever no mesmo local de memória global se o valor for o mesmo. Suponha que P i queira escrever o valor a i (1 i N) variável auxiliar para cada processador P i : b i
30 Simulando CW comum em um EREW!????! É que vamos chamar de redução: comparamos vários para chegar a uma resposta! Precisamos de uma variável auxiliar?
31 Modelos Fortes e Fracos O que quer dizer mais forte? Se um algoritmo é simulado em um modelo mais fraco, o número de passos pode aumentar CR N leituras podem ser feitas concorrentemente ER uma leitura é feita por mais de uma passo [EcKstein,1979][Vishkin,1983] p processadores CRCW com prioridade, é simulado por um EREW PRAM com complexidade de tempo aumentado por um fator Θ (log p). em um CRCW com prioridade, os acessos simultâneos seria imediatos, mas não no EREW
32 Algoritmos PRAM para um problema: se um algoritmo PRAM tem complexidade de tempo menor que a do algoritmo seqüencial ótimo, então o paralelismo pode ser usado Como iniciar um algoritmo PRAM: ativar os P processadores que farão parte da computação os processadores serem ativados um a um através do algoritmo de difusão: log P passos depois da ativação, o algoritmo paralelo pode ser executado
33 Identificando Paralelismo paradigmas de computação paralela algoritmos aqui falados consideram o modelo PRAM. Exemplos: Árvore Binária: o fluxo de dados (e controle) se dá da raiz até as folhas Difusão: a partir de um processador, o fluxo (controle ou dados) passa para dois processadores e assim, dobrando a cada iteração. Divisão e Conquista: um problema é subdividido em subproblemas cada vez menores ou contrário, das folhas até a raíz: Redução: dado n valores, a operação X é uma binária associativa
34 Redução: Soma soma de n elementos: A = < 4, 3, 8, 2, 9, 1, 0, 5, 6, 3, 10, 2, 4, 7, 11, 3> Soma_PRAM_Pi (){ Para ( 1 h log n ) faça se ( i n/2 h ) faça A[i] := A[2i] + A[2i -1]; } A[i] := A[2i] + A[2i -1]; leitura: A[2i] e A[2i -1]; computa: A[2i] + A[2i -1]; escreve: A[i]
35 Memória compartilhada P 1 P 2 P 3 P 4 P 5 P 6 P 7 P
36
37 Redução: Soma primeiro loop: não há necessidade de mais do que n/2 processadores processadores acessam dois locais de memória simultaneamente, mas distintos processadores escrevem em um local de memória (cada) simultaneamente, mas distintos para somar, log n iterações são necessárias, cada uma tem tempo constante Complexidade do Algoritmo: O ( log n) com O ( n/2 ) processadores
38 Exercícios Capitulo I do Jájá exercícios 1.5 e 1.8
39 Noções de Complexidade Existem algoritmos PRAM cuja complexidade de tempo é menor do que o algoritmo correspondente seqüencial ótimo, mas podem desempenhar mais operações do que o seqüencial Complexidade de tempo do pior caso em função do tamanho da entrada. Cada passo corresponde: uma fase de computação uma fase de comunicação é importante especificar o número máximo de processadores usados, como função da entrada o modelo arquitetural sendo usado
40 Noções de Complexidade Paralelismo Limitado algoritmo p-paralelo se implementado em um modelo com p processadores, fixo T(n) e P(n): o tempo de execução e a quantidade de processadores do algoritmo paralelo se o número de passos é T(n) considerando p processadores, então esse algoritmo é p computável neste tempo se T(n) é polinomial e p é limitado superiormente por polinômio, então o número de processadores é limitado polinomialmente, senão, ilimitado
41 Algumas Definições A - algoritmo paralelo n - o tamanho da entrada Custo do Algoritmo Paralelo produto tempo-processador T(n) P(n) ignora ociosidade de processador Algoritmo paralelo de custo ótimo: T s = T(n) P(n) T s o tempo de execução do melhor algoritmo seqüencial p < P(n) processadores: cada processador executa sequencialmente o que P(n)/ p processadores executam T(n) P(n)/p unidades de tempo
42 Algumas Definições Speedup, dado o número de processadores p Se o S(A(n),p) é linear então todos os processadores são efetivamente utilizados difícil de ser alcançado devido a natureza dos algoritmos e do ambiente computacional paralelo difícil decompor o algoritmo em tarefas completamente independentes, onde cada tarefa leva T s /p unidades de tempo para ser executada
43 Algumas Definições Eficiência do algoritmo paralelo razão entre S(A(n),p) e o número de processadores p E(A(n),p) = S(A(n),p)/p mostra como os processadores são efetivamente utilizados: quanto maior, melhor a utilização de cada processador se E(A(n),p) = 1 o algoritmo paralelo é de custo ótimo (por que?)
44 Algumas Definições Eficiência do algoritmo paralelo razão entre S(A(n),p) e o número de processadores p E(A(n),p) = S(A(n),p)/p mostra como os processadores são efetivamente utilizados: quanto maior, melhor a utilização de cada processador se E(A(n),p) = 1 o algoritmo paralelo é de custo ótimo (por que?) E(A(n),p) = S(A(n),p)/p E(A(n),p) = (Ts/Tp)/p " sendo de custo ótimo, Ts = Tp p, então: E(A(n),p) = (Tp p /Tp)/p = 1
45 Algumas Definições Trabalho de um Algoritmo Paralelo um algoritmo é descrito como uma seqüência de unidades de tempo, onde em cada unidade um conjunto de instruções concorrentes trabalho de um algoritmo paralelo é o número total de operações executadas, não incluindo os tempos ociosos de certos processadores são somadas, a cada unidade de tempo, o número de operações concorrentes podem estar sendo executadas
46 Exemplo: soma de n elementos T(n) e P(n): n/2 processadores executam em O(log n) unidades de tempo Custo de O(n log n) em O(log n) unidades de tempo Usando p < P(n) processadores: O(n log n/p) 1a unidade de tempo - n/2 operações (somas em paralelo) 2a unidade de tempo - n/4 operações (somas em paralelo) 3a unidade de tempo - n/8 operações (somas em paralelo)... j-ésima unidade de tempo - n/2j operações Total de operações: O(log n) n/2 j = O(n)
47 Reduzindo o número de processadores Princípio de Brent Qualquer algoritmo paralelo com complexidade de tempo T(n) usando um número suficientemente grande de processadores e que ainda consistindo de O(e) operações elementares, pode ser implementado em p processadores com complexidade de tempo O( e/p + T(n)) Prova??
48 Unidade de Tempo Total de Operações: e Total de Processadores: p P 1 P P 2 k P p Número de Operações 1 e 1 2 e e e 4... T(n) e T Tempo Total
49 Fixando o número de processadores: soma de n elementos Seja um modelo PRAM com p = 2 q n = 2 k processadores: P 1,..., P p proponha um algoritmo paralelo para p processadores
50 Fixando o número de processadores: soma de n elementos Seja um modelo PRAM com p = 2 q n = 2 k processadores: P 1,..., P p Seja l = n/p = 2 s é responsável por A[l(s - 1) + 1],., A[ls] cada elemento é um vértice de uma árvore binária o número de computações concorrentes corresponde ao número de vértices em cada nível dividido pelos processadores disponíveis Análise do Algoritmo Seja o algoritmo em que n elementos são somados usando p processadores (Obs.: O algoritmo só considera o trabalho de um dado processador P s : primeiro passo: O(n/p) unidades de tempo segundo passo?
51 Soma de n Elementos (JáJá) algoritmo do processador Ps Soma_Paralela_Ps ( A, p ){ for j =1 to l do /* l = n/p */ B(l(s - 1) + j): =A(l(s - 1) + j); for h = 1 to log n do if (k - h - q 0) then for j = 2 k-h-q (s - 1) + 1 to 2 k-h-q s do B(j): = B(2j - 1) + B(2j); else if (s 2 k-h ) then B(s): = B(2s - 1) + B(2s); if (s = l) then S: = B(1); }
52 O que acontece com N = 8 e p = 2? (passo a passo) Soma_Paralela_Ps ( A, p ){ for j =1 to l do /* l = n/p */ B(l(s - 1) + j): =A(l(s - 1) + j); for h = 1 to log n do if (k - h - q 0) then for j = 2 k-h-q (s - 1) + 1 to 2 k-h-q s do B(j): = B(2j - 1) + B(2j); else if (s 2 k-h ) then B(s): = B(2s - 1) + B(2s); if (s = l) then S: = B(1); }
53 Memória compartilhada P 1 P 2 P 3 P
54 Modelando soma paralela de n números
55 Perguntas: qual o número de operações? qual o trabalho? qual o custo complexidade? tipo do PRAM? teria alguma outra versão com um menor de trabalho ou custo? qual o número de comunicações? 1 Responda as perguntas considerando as duas versões discutidas na sala de aula 2 especificar o pseudo-algoritmo da segunda versão discutida.
56 Implementação I soma de n números através de threads, implementar a soma de n números - em um número qualquer de processadores - em um número fixo de processadores vantagens e desvantagens?
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
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
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
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
Análise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected]
ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
Algoritmos Paralelos usando CGM/MPI: Uma Introdução. Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP DCC-IME-USP - Aula 02
Algoritmos Paralelos usando CGM/MPI: Uma Introdução Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP DCC-IME-USP - Aula 02 Aula 2 - Objetivos Introduzir o conceito de um sistema de computação
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são
Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)
Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora
Arquitetura e Organização de Processadores. Aula 4. Pipelines
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de
UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES
Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
Organização e Arquitetura de Computadores I
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de
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
Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP
Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade [email protected] Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade
Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache
Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade Funcionamento da memória cache Elementos de projeto de memória cache Mapeamento de dados MP/cache Algoritmos de substituição de dados
Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T
Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita
Introdução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
Computação Paralela 1
Computação Paralela 1 Nivio Ziviani 1 Conjunto de transparências elaborado por Nivio Ziviani e João Caram Projeto e Análise de Algoritmos - Nivio Ziviani 1 Computação Paralela Processo de resolver problemas
PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java
Aula 12 - Threads e Concorrência em Java Conteúdo Programático desta aula Aplicar os conceitos e threads, processos concorrentes e sincronização em pequenos programas. Aplicar e verificar os conceitos
Programação Estruturada Aula - Introdução a Linguagem de Programação
Programação Estruturada Aula - Introdução a Linguagem de Programação Prof. Flávio Barros [email protected] www.flaviobarros.com.br ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR 2 ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR
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
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of
Sistemas Operacionais. Adão de Melo Neto
Sistemas Operacionais Adão de Melo Neto 1 Computador Digital (Hardware) 2 Computador Digital Constituído por um conjunto de componentes interligados (hardware): processadores, memórias, registradores,
Aula 16: UCP: Conceitos Básicos e Componentes
Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34
Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)
Arquitetura de Computadores Professor: Vilson Heck Junior (Material: Douglas Juliani) Agenda Conceitos Componentes Funcionamento ou tarefas Otimização e desempenho Conceitos Componente de Hardware que
Processador: Conceitos Básicos e Componentes
Processador: Conceitos Básicos e Componentes Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF)
Arranjo de Processadores
Um arranjo síncrono de processadores paralelos é chamado arranjo de processadores, consistindo de múltiplos elementos processadores (EPs) sob a supervisão de uma unidade de controle (UC) Arranjo de processadores
Complexidade de algoritmos Notação Big-O
Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema
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
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
Complexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
Técnicas de Projeto de Algoritmos
UNIVERSIDADE NOVE DE JULHO - UNINOVE Pesquisa e Ordenação Técnicas de Projeto de Algoritmos Material disponível para download em: www.profvaniacristina.com Profa. Vânia Cristina de Souza Pereira 03 _ Material
Aula 10: Tratabilidade
Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas
2. Complexidade de Algoritmos
Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.
Teoria da Computação Aula 9 Noções de Complexidade
Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um
Algoritmos Paralelos Introdução (Jaja)
Algoritmos Paralelos Introdução (Jaja) Programação distribuída e paralela (C. Geyer) Algoritmos Paralelos 1 Autoria! Autores " C. Geyer! Local " II-UFRGS " Disciplina: Programação Distribuída e Paralela
Aula 12: Memória: Barramentos e Registradores
Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34
Teoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
Cálculo da árvore binária de busca ótima usando MPI
Cálculo da árvore binária de busca ótima usando MPI 1. O Algoritmo Adriano Medeiros 1, André Murbach Maidl 1 1 Programação Concorrente/Paralela - PUC-Rio 1 [email protected], [email protected] O
Linguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é
1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Construção de Algoritmos II Aula 06
exatasfepi.com.br Construção de Algoritmos II Aula 06 André Luís Duarte Porque mil anos são aos teus olhos como o dia de ontem que passou, e como a vigília da noite. Salmos 90:4 Recursividade e complexidade
Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa
Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação
Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Unidade de Controle. UC - Introdução
Unidade de Controle Prof. Alexandre Beletti (Cap. 3 Weber, Cap.8 Monteiro, Cap. 10,11 Stallings) UC - Introdução Para gerenciar o fluxo interno de dados e o instante em que ocorrem as transferências entre
Caracterização de Sistemas Distribuídos
Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes
Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação MULTIPROCESSADORES
Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica
Unidade 3 Controle de Concorrência Primitivas de Programação Concorrente Clássica Programação Concorrente A abstração de programação concorrente é o estudo de sequênciasde execução intercaladas, de instruções
Sistemas Multiprogramáveis/Multitarefa
Sistemas Multiprogramáveis/Multitarefa - Programas submetidos são armazenados em fitas/discos onde são executado sequencialmente -A UCP pode processar seqüencialmente cada job (tarefa), diminuindo o tempo
MC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira
ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES Prof. Juliana Santiago Teixeira [email protected] INTRODUÇÃO INTRODUÇÃO O processador é o componente vital do sistema de computação, responsável
Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação
Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computaçã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
Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 02 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação QUAIS SÃO OS COMPONENTES BÁSICOS DO HW DE UM SISTEMA COMPUTACIONAL?
AULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada [email protected], [email protected] Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Estruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão
ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão
UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da
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
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro ([email protected]) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1
Análise de Algoritmos
Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo
Aula 13: Memória Cache
Aula 13: Memória Cache Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Memória Cache FAC 1 / 53 Memória Cache Diego Passos (UFF) Memória:
Parte I Multiprocessamento
Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez [email protected] 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento
Estruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
4. Algoritmos de Busca em Vetores
Introdução à Computação II 5952011 4. Algoritmos de Busca em Vetores Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 4.1. Introdução 4.2. Busca Linear 4.2.1.
Disciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
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
SSC546 -Avaliação de Desempenho de Sistemas
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC546 -Avaliação de Desempenho de Sistemas Parte 1 -Aula 2 Sarita Mazzini Bruschi Material
Sistemas Operacionais
Sistemas Operacionais CAP 2: Conceitos de Hardware e Software Prof. MSc. Diego R. Moraes [email protected] Download de todo conteúdo da disciplina https://sites.google.com/site/diegorafaelmoraes/downloads
Programação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: [email protected] 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
Análise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar [email protected]
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;
NEANDERWIN. Algumas características do processador Neander são:
NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5 Cristina Boeres Mapeamento Associativo por Conjunto! Tenta resolver o problema de conflito de blocos na mesma linha (mapeamento
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 [email protected] Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
