Agendamento para Sistemas Paralelos

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

Download "Agendamento para Sistemas Paralelos"

Transcrição

1 Advanced Computer Architectures: Agendamento para Sistemas Paralelos Oliver Sinnen INESC-ID Instituto Superior Técnico

2 Conteúdo I: Introdução II: Agendamento dinâmico III: Agendamento estático 2

3 I: Introdução O que é agendamento? decomposição em sub-tarefas análise de dependências mapeamento agendamento 3

4 I: Introdução Tipos de agendamento Dois tipos: Agendamento dinâmico Efectuado durante a execução do programa (runtime) Agendamento estático Efectuado antes da execução do programa (ao tempo de compilação) Conhecimento necessário: Dependências Tempos de computação/comunicação Sistema determinístico 4

5 I: Introdução Desafios do agendamento 1. Overhead Custos para agendar e sincronizar as tarefas 2. Balançar a carga Utilização eficiente dos processadores 3. Comunicação Evitar comunicação entre processadores (cara) 5

6 I: Introdução Objectivo do agendamento Objectivo: tempo de execução mais curto possível compromisso entre os 3 desafios Não é fácil: Só balançar a carga já é um problema NP-difícil não é possível encontrar solução óptima em tempo útil Problema binpacking / knapsack 6

7 I: Introdução Exemplo: balançar a carga 4 processadores Conjunto de tarefas independentes 7

8 II: Agendamento dinâmico Sem dependências Mestre/escravo Agendamento de ciclos Com dependências Agendamento do sistema operativo 8

9 II: Agendamento dinâmico Características Efectuado durante a execução do programa (runtime) Agendamento mais usado Indicado quando: Sistemas não são determinísticos Sistemas heterogéneos (difícil de modelizar) Não se conhece o tempo de computação/comunicação das tarefas Por ex.: tempo depende dos dados 9

10 II: Agendamento dinâmico Com/sem dependências Agendamento dinâmico sem dependências Não há dependências entre as tarefas Princípio mestre/escravo Agendamento de ciclos Agendamento dinâmico com dependências Há dependências entre as tarefas Agendamento do sistema operativo (num sistema paralelo) 10

11 II: Agendamento dinâmico Sem dependências Não há dependências entre as sub-tarefas Não há comunicação entre as sub-tarefas Ordem da execução das tarefas é irrelevante Só compromisso entre overhead e balançar a carga Exemplos: Ray tracing Multimedia Desencriptação 11

12 II: Agendamento dinâmico Princípio mestre/escravo Mestre Controla execução da tarefa Divide a tarefa em sub-tarefas e distribui-as entre os escravos Escravo Recebe sub-tarefa Executa-a Recebe nova sub-tarefa... 12

13 II: Agendamento dinâmico Princípio mestre/escravo (cont.) Indicado quando Tempo de execução das tarefas varia Sistema paralelo não é determinístico Por ex. computadores na rede (NOW, cluster) Agendamento das tarefas usa mesmos princípios como o agendamento de ciclos Exemplos: SETI@home TFC no INESC-ID: encoder de MPEG4 num cluster Ray tracing (render farms) 13

14 II: Agendamento dinâmico Agendamento de ciclos Agendamento de ciclos: agendamento das iterações nos processadores Exemplo: for i = 1 to N A[i] = f(b[i], C[i]) endfor Aqui: iterações independentes 14

15 II: Agendamento dinâmico Agendamento de ciclos: estático/dinâmico Se carga é conhecida é regular Agendamento estático carga balançada Senão Agendamento dinâmico carga não balançada 15

16 II: Agendamento dinâmico Agendamento de ciclos: princípio Agendamento dinâmico de ciclos Princípio (como mestre/escravo): Until no iterations left: Get chunk of iterations Execute these iterations Diferença: não há mestre (estrutura de dados na memória partilhada) Código do ciclo é adaptado 16

17 II: Agendamento dinâmico Agendamento de ciclos: chunksize Compromisso entre overhead e balançar a carga Cunksize Problema: Chunksize grande: possível desigualdade da carga entre os processadores Chunksize pequeno: muito overhead 17

18 II: Agendamento dinâmico Agendamento de ciclos: dynamic e guided Soluções: Agendamento dynamic Cunksize não muda durante o agendamento Agendamento guided Cunksize muda: Por ex.: o próximo chunksize é o numero das restantes iterações dividido pelo número de processadores Cunksize é reduzido exponencialmente 18

19 II: Agendamento dinâmico Agendamento de ciclos: dynamic e guided dynamic: guided: 19

20 II: Agendamento dinâmico Agendamento de ciclos: OpenMP Exemplo: agendamento de ciclos em OpenMP Sintaxe: schedule(kind, chunksize) kind: STATIC, DYNAMIC, GUIDED ou Runtime 20

21 II: Agendamento dinâmico Agendamento de ciclos: efeitos de cache Exemplo: for i = 1 to N A[i] = B[i] * C[i] endfor Linha de cache: mais do que um elemento dos arrays Iterações vizinhas em processadores diferentes Conflito de cache!! 21

22 II: Agendamento dinâmico Com dependências Há dependências entre as sub-tarefas Comunicação e sincronização entre as sub-tarefas Agendamento não conhece as dependências Tratadas pelas tarefas Agendamento do sistema operativo: Multithreading (no multiprogramming não há dependências) 22

23 II: Agendamento dinâmico Agendamento do SO Agendamento do sistema operativo Threads em vez de tarefas SO distribui os threads disponíveis entre os processadores Quando há mais threads do que processadores: Princípio de time-slice Objectivos Overhead pequeno Ser justo (evitar morte de fome ) Prioridades/interactividade 23

24 II: Agendamento dinâmico Agendamento do SO: comunicação Programador não tem influência ao agendamento do SO Comunicação e sincronização são feitas nos threads Agendamento é feito pelo programador Comunicação e sincronização entre os threads Pela memória partilhada Precisa de sincronização entre os threads Mecanismos de sincronização Semáforos Barreiras Exemplos: Java: synchronized OpenMP: barrier, critical 24 section (atomic, lock)

25 II: Agendamento dinâmico Agendamento do SO: evitar comunicação Objectivo adicional: evitar comunicação desnecessária Muito importante para o desempenho Cache Mesmo thread sempre para o mesmo processador Sistemas NUMA (Non Uniform Memory Access) Migração de thread para processadores vizinhos Memória fica perto Hyperthreading (POWER, P4) Agendamento deve saber diferença entre processador real e virtual 25

26 Agendamento de tarefas DAG Agendamento de ciclos Sem dependências Com dependências Grafo de fluxo 26

27 Características Efectuado antes da execução do programa (ao tempo de compilação) Conhecimento necessário: Dependências Tempos de computação/comunicação Não pode depender (muito) dos dados Requerimento Sistema determinístico Eliminação do overhead Agendamento feito durante a compilação 27

28 Agendamento de tarefas Programas com estrutura arbitrária Programa representado por um grafo Modelo simples do sistema paralelo alvo Este agendamento é implícito, por ex., em programas utilizando MPI 28

29 Exemplo paralelização programa/tarefa d = a 2 +a+1 decomposição sub-tarefas A: a = 1 B: b = a+1 C: c = a*a D: d = b+c análise de dependências 29

30 Grafo de tarefas (DAG) A: a = 1 B: b = a+1 C: c = a*a D: d = b+c grafo de tarefas (DAG) Grafo representa programa Entrada de agendamento de tarefas directed acyclic graph (DAG) nó (n): sub-tarefa arco (e): dependência (comunicação) peso: tempo de computação w(n) ou comunicação c(e) 30

31 Agendamento de tarefas Exemplo: 2 processadores + ex. ex. 31

32 Definições e constrangimentos Definições: DAG: G(V,E), nó n, arco e Tempo inicial: t s (n) ; tempo final: t f (n) Colocação no processador: proc(n) Constrangimentos: Constrangimento de Processador: proc(n i )=proc(n j ) => t s (n i ) t f (n j ) ou t s (n j ) t f (n i ) Constrangimento de precedência: para todos arcos e ji de E (de n j para n i ) t s (n i ) t f (n j ) + c(e ji ) 32

33 Agendamento de tarefas: objectivo Colocação temporal e espacial das sub-tarefas nos processadores ao tempo de compilação Objectivo: encontrar agendamento com extensão mais curta possível => também é NP-difícil Heurísticas de agendamento Agendamento em lista Agendamento com duplicação de nós Clustering Algoritmos genéticos 33

34 Agendamento em lista 1. Ordena os nós do DAG segundo uma prioridade, respeitando as dependências 2. Itera sobre a lista de 1.) e agenda cada nó no processador que permite a execução mais cedo Exemplo: Ordem dos nós: A,C,D,F,B,E,G 34

35 Técnica de inserção Agendar um nó entre dois nós já agendados 35

36 Modelo clássico do agendamento de tarefas modelo de sistema por ex. 8 processadores Propriedades: Sistema dedicado Processadores dedicados Custo zero de comunicação local Sub-sistema de comunicação Comunicação concordante Rede completamente ligada 36

37 Contenção de comunicação exemplo modelo clássico Contenção nos postos de acesso Na interface Maioria das redes não é completamente ligada Contenção na rede Nas ligações da rede 37

38 Modelo da rede Novo modelo da rede: Vértices: processadores (P) e switches (S) Redes estáticas e dinâmicas Contenção nos postos de acesso e na rede completamente ligada switched LAN Arcos: ligações de comunicação (L) Arcos não-dirigidos Half duplex Arcos dirigidos Full duplex Hiperarcos Barramento exemplo: 8 dual-processor cluster 38

39 Agendamento dos arcos Agendamento dos arcos nas ligações (L) Como nós nos processadores Encaminhamento: Depende do sistema alvo Algoritmo devolve lista de ligações, por ex. <L 1, L 2, L 3 > 39

40 Agendamento considerando contenção Sistema alvo representado pelo modela da rede Integração do agendamento dos arcos no agendamento de tarefas Só tem impacto ao tempo inicial do nó: t s (n i ) t f (e ji ) (constrangimento de precedência) sem contenção 40 com contenção

41 Envolvimento do processador Experiências propõe: modelo de contenção ainda não é suficientemente bom Propriedades do modelo de sistema:... Sub-sistemas de comunicação Comunicação concordante Rede completamente ligada Discrepância sistema real modelo Envolvimento do processador na comunicação 41 envolvimento

42 Envolvimento do processador: tipos Dois lados Um lado 3 ª entidade 42

43 Agendamento de arco no processador Como se considera o envolvimento no agendamento de tarefas Agendamento de arco no processador Tamanho do arco determinado por Tipo de envolvimento Parâmetros de envolvimento o r,s, i r,s 43

44 Agendamento considerando envolvimento Integra bem com agendamento considerando contenção Mas é muito mais difícil Problema: Arco só é agendado se comunicação é remota Soluções: 1. Agendamento provisório 2. Usar mapeamento pronto 44

45 1. Agendamento provisório Agenda provisoriamente os arcos que saem Corresponde ao pior caso que todas comunicações são remotas Quando o nó de destino é agendado: Agenda arco no caminho e no processador de destino Ou: remove arco se comunicação é local Desvantagens: Resulta em espaços no agendamento Solução parcial: inserir nós 45

46 2. Usar mapeamento pronto Agendamento de 2 passos: 1. Determina mapeamento com uma heurística Comunicações remotas são conhecidas 2. Agenda nós nos processadores determinados Pode ser feito por um algoritmo tipo agendamento em lista Agendamento provisório não é necessário 46

47 Agendamento considerando envolvimento Agendamento provisório Agendamento em lista Mesmo algoritmo como sob modelo de contenção Novo: agendamento provisório dos arcos que saem Usar mapeamento pronto Algoritmo genético Cromossoma representa mapeamento Fitness-function é extensão do agendamento 47

48 Agendamento de ciclos Sem dependências Com dependências Grafo de fluxo 48

49 Agendamento de ciclos Programas com estrutura cíclica Tipicamente: for... Usado em compiladores de paralelização Analise das dependências sofisticado Para Computadores paralelos Processadores especializados Embeded systems 49

50 Agendamento de ciclos: sem dependências Aqui: agendamento estático Exemplo: for i = 1 to N A[i] = B[i] + C[i] endfor p processadores Agendamento estático típico: cada processador executa N/p iterações 50

51 Agendamento de ciclos: técnicas Quais iterações? Duas alternativas: Bloco Cada processador recebe um bloco corrente Cíclico As iterações são distribuídas ciclicamente entre os processadores 51

52 Agendamento de ciclos: bloco e cíclico bloco: cíclico: 52

53 Agendamento de ciclos: OpenMP Agendamento estático com OpenMP: schedule(kind, chunksize) kind: STATIC Bloco chunksize = N/p Cíclico chunksize = x << N/p 53

54 Agendamento de ciclos: com dependências Exemplo: for i = 1 to N a: A[i] = C[i-1] + 7 b: B[i] = A[i] + C[i-1] c: C[i] = A[i] + 99 endfor Dois tipos de dependências: Entre iterações Entre tarefas da mesma iteração 54

55 Grafo de fluxo for i = 1 to N a: A[i] = C[i-2] + 7 b: B[i] = A[i] + C[i-1] c: C[i] = A[i] + 99 d: D[i] = 3*C[i] endfor Grafo de fluxo: Semelhante com DAG Mas permite ciclos Cada ciclo tem de ter pelo menos um atraso 55

56 Agendamento de ciclos: unrolling Unrolling: Fazer do grafo de fluxo um DAG 56

57 Agendamento de ciclos: simples Ideia simples: Trata corpo do ciclo como um DAG 57

58 Agendamento de ciclos: software pipelining Software pipelining Usar o princípio de pipelining 58

59 Agendamento de ciclos: loop shifting Loop shifting Converter dependências entre iterações em dependências entre tarefas da mesma iteração for i = 1 to N a: A[i] = B[i-1] + 7 b: B[i] = C[i] + 6 endfor a: A[1] = B[0] + 7 for i = 2 to N b: B[i-1] = C[i-1] + 6 a: A[i] = B[i-1] + 7 endfor b: B[N] = C[N]

60 Agendamento de ciclos: retiming Retiming Generalização de loop shifiting Modificar os atraso num grafo de fluxo Objectivo: reduzir tempo de ciclo 60

61 Agendamento de ciclos: multidimensional for i = 0 to 5 for j = 0 to 5 A[i+1,j] = B[i,j] + C(i,j) B[i+1,j+1] = A[i,j] + 1 endfor endfor Uma iteração um nó Ciclos multidimensionais: alvo típico de compiladores de paralelização 61

62 Ciclos multidimensionais: técnicas Por exemplo: Skewing loop shifting Tiling... 62

63 Conclusão II: Introdução II: Agendamento dinâmico Sem dependências Mestre/escravo Agendamento de ciclos Com dependências Agendamento do sistema operativo III: Agendamento estático Agendamento de tarefas DAG Agendamento de ciclos Sem dependências Com dependências Grafo de fluxo 63

64 II: Contention scheduling Experimental results accuracy Execution of code on real parallel system Code generated from random graphs and schedules produced by 4 algorithms under classic and contention model Graph characteristic: CCR Communication to Computation Ratio Target systems: PC-Cluster, Sun E3500, Cray T3E classic contention classic contention classic contention CCR 0.1 CCR 1 CCR 10 64

65 II: Contention scheduling Experimental results efficiency classic contention classic contention classic contention CCR 0.1 CCR 1 CCR 10 Conclusions Greatly improved accuracy under contention model Considerable improvements of efficiency, i.e. reduction in execution time 65

66 III: Processor involvement Experimental results accuracy Schedules of previous experiments (under classic and contention model) rescheduled under involvement-contention model: Processor allocation and node order taken from schedules under other models example: PC-Cluster CL-LS(bl): LS classic model 66 LS(dls): LS contention model

67 III: Processor involvement Experimental results execution time Same experimental methodology Larger graph set, including regular graphs Same LS algorithm under the three different models Assuming 100% two-sided involvement avg. values Sun E3500, 4 proc. 67 PC-cluster, 16 proc.

Programação e Scheduling

Programação e Scheduling Sistemas de Processamento Paralelo: Programação e Scheduling Oliver Sinnen oliver.sinnen@inesc.pt Conteúdo Introdução Programação paralela Identificação de sub-tarefas Dependências Scheduling List Scheduling

Leia mais

Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída)

Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída) Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída) Modelos de consistência de memória João Luís Ferreira Sobral jls@... 29 Março 2011 Resumo Revisão: modelos de threads Qual a necessidade

Leia mais

Scheduling and Task Allocation ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING Hesham El-Rewini 2005 Capítulo 10 Autor...: Antonio Edson Ceccon Professor..: Prof. Heitor Silvério Lopes Apresentação

Leia mais

Organização de Computadores II. Arquiteturas MIMD

Organização de Computadores II. Arquiteturas MIMD Organização de Computadores II Arquiteturas MIMD Arquiteturas UMA Arquiteturas com memória única global. Tempo de acesso uniforme para todos os nós de processamento. Nós de processamento e memória interconectados

Leia mais

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Arquiteturas MIMD Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes modelos: Arquiteturas MIMD de

Leia mais

OpenMP. Adaptado do Material do Calebe de Paula Bianchini

OpenMP. Adaptado do Material do Calebe de Paula Bianchini OpenMP Adaptado do Material do Calebe de Paula Bianchini calebe.bianchini@mackenzie.br HelloWorld #pragma omp parallel // Code inside this region runs in parallel. printf("hello!\n"); 2 O que é OpenMP*?

Leia mais

for(int x=0; x < width; x++) { for(int y=0; y < height; y++) { finalimage[x][y]=renderpixel(x,y, &scenedata); } }

for(int x=0; x < width; x++) { for(int y=0; y < height; y++) { finalimage[x][y]=renderpixel(x,y, &scenedata); } } Paralelização em OpenMP Identifique os loops pesados ; Distribua-os: Versão sequencial double res[10000]; calculo_pesado(&res[i]); Versão paralela double res[10000]; for calculo_pesado(&res[i]); OMP for

Leia mais

Agenda. O que é OpenMP? Regiões Paralelas Construtores para Compartilhamento de

Agenda. O que é OpenMP? Regiões Paralelas Construtores para Compartilhamento de Programando OpenMP Agenda O que é OpenMP? Regiões Paralelas Construtores para Compartilhamento de Trabalho Montando um escopo de dados para proteger de condições de corrida Cláusulas de agendamento O que

Leia mais

Paralela e Distribuída. Memórias Cache e Arquitecturas Multi-Processador

Paralela e Distribuída. Memórias Cache e Arquitecturas Multi-Processador Programação Paralela e Distribuída Memórias Cache e Arquitecturas Multi-Processador Memórias Cache e Arquitecturas Multi-Processador A principal motivação para utilizar o OpenMP é conseguir maximizar a

Leia mais

Memórias Cache em Arquiteturas Multiprocessador e Multicore

Memórias Cache em Arquiteturas Multiprocessador e Multicore Memórias Cache em Arquiteturas Multiprocessador e Multicore Ricardo Rocha Departamento de Ciência de Computadores Faculdade de Ciências Universidade do Porto Computação Paralela 2015/2016 R. Rocha (DCC-FCUP)

Leia mais

Organização de Computadores

Organização de Computadores Capítulo 2-B Organização de Computadores Orlando Loques setembro 2006 Referências: principal: Capítulo 2, Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization

Leia mais

Programação em Paralelo OpenMP

Programação em Paralelo OpenMP Programação em Paralelo OpenMP N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 1 / 15 Introdução Potencial do GPU vs CPU Cálculo: 367

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

Bibliografia. OpenMP. Disponibilidade de OpenMP. Abordagem SPMD. Nicolas Maillard

Bibliografia. OpenMP. Disponibilidade de OpenMP. Abordagem SPMD. Nicolas Maillard Bibliografia Nicolas Maillard nicolas@inf.ufrgs.br Instituto de Informática Universidade Federal do Rio Grande do Sul home-page: http://www.openmp.org/presentations Parallel Programming in. R. Chandra

Leia mais

OpenMP: Variáveis de Ambiente

OpenMP: Variáveis de Ambiente Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de

Leia mais

Variáveis em OpenMP. Esbel Tomás Valero Orellana

Variáveis em OpenMP. Esbel Tomás Valero Orellana Variáveis em OpenMP 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 31 de Maio de 2010

Leia mais

Introdução ao OpenMP

Introdução ao OpenMP Introdução ao OpenMP Fernando Silva DCC FCUP Recursos OpenMP.org (http://www.openmp.org) Tutorial (http://www.llnl.gov/computing/tutorials/openmp/) Implementação gratuita Omni OpenMP compiler project (http://phase.hpcc.jp/omni/)

Leia mais

Organização de Computadores 2005/2006 Processamento Paralelo

Organização de Computadores 2005/2006 Processamento Paralelo GoBack Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 ORGC Processamento Paralelo slide 1 Porquê? Definição de computação paralela Alocação

Leia mais

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD Universidade Federal do Rio de Janeiro Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquiteturas de Sistemas de Processamento Paralelo Arquiteturas MIMD Arquiteturas MIMD com Memória Distribuída MIMD

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

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Multiprocessamento Patterson & Hennessy Capítulo 9 Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Tópicos Abordados Tipos comuns SMP (processamento paralelo) NUMA (placas de alto

Leia mais

Modelos para Concorrência

Modelos para Concorrência Modelos para Concorrência Modelos para descrição de concorrência Programa Interdisciplinar de Pós Graduação em Computação Aplicada Universidade do Vale do Rio dos Sinos Gerson Cavalheiro Processamento

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

1. Considere a execução do seguinte troço de código num processador com ISA compatível

1. Considere a execução do seguinte troço de código num processador com ISA compatível 1. Considere a execução do seguinte troço de código num processador com ISA compatível com o MIPS64. loop: L.D F0,0(R1) ; F0 M[R1+0] L.D F2,8(R1) ; F2 M[R1+8] L.D F4,0(R2) ; F4 M[R2+0] SUB.D F0,F0,F2 ;

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

Computação Paralela (CUDA)

Computação Paralela (CUDA) Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim hussamaibrahim@ufam.edu.br Notas de Aula Baseado nas Notas de

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi-Core Prof Dr Departamento de Informática Universidade Federal de Pelotas Etapas do curso Apresentação de modelos Aplicação de modelos Arquiteturas multi-core

Leia mais

Programação Distribuída e Paralela. Jorge Barbosa

Programação Distribuída e Paralela. Jorge Barbosa Programação Distribuída e Paralela Jorge Barbosa 1 Máquinas Paralelas Processadores Memória Rede de interligação Classificação das máquinas paralelas 2 Processador Escalar Processadores Processador que

Leia mais

Programação Paralela e Concorrente

Programação Paralela e Concorrente Linguagens para Programação Paralela PGAS 2016 Linguagens de Programação Paralelas paralelismo de dados (data-parallel) GAS e PGAS orientação a processos memória compartilhada troca de mensagens Paralelismo

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

Introdução ao OpenMP

Introdução ao OpenMP Introdução ao OpenMP Threads em CPU multicore Rogério A. Gonçalves 1,2 Alfredo Goldman 2 1 Departamento de Computação (DACOM) Universidade Tecnológica Federal do Paraná (UTFPR) 2 Departamento de Ciência

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

Parallel Computing Paradigms

Parallel Computing Paradigms João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... Web: Elearning 1 At the end of the course, students should be able to: Design and optimise parallel applications that can efficiently run on a wide

Leia mais

Paralelismo em Computadores com Tecnologia Multicore

Paralelismo em Computadores com Tecnologia Multicore IFRN - Pau dos Ferros Pau dos Ferros/RN, 25 de fevereiro de 2016 O minicurso Descrição: Para se utilizar os vários núcleos de processamento disponíveis nos computadores atuais de forma eficiente, faz necessário

Leia mais

PCC104 Projeto e Análise de Algoritmos

PCC104 Projeto e Análise de Algoritmos PCC104 Projeto e Análise de Algoritmos Joubert de Castro Lima joubertlima@gmail.com Professor Adjunto DECOM UFOP 2010/1 Figuras retiradas do livro Introduction to parallel Computing Programar em paralelo

Leia mais

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: ssvenske@unicentro.br

Leia mais

Construtores de Sicronização em OpenMP

Construtores de Sicronização em OpenMP Construtores de Sicronização em OpenMP 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

Linguagens para Programação Paralela. October 26, 2010

Linguagens para Programação Paralela. October 26, 2010 October 26, 2010 Linguagens X Bibliotecas expressividade facilidade de uso integração com programas e programadores Modelos de Linguagens Paralelas (lista não completa) paralelismo de dados (data-parallel)

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

Programação Paralela. Objetivo: Apresentar conceitos básico de programação paralela com MPI.

Programação Paralela. Objetivo: Apresentar conceitos básico de programação paralela com MPI. Programação Paralela Objetivo: Apresentar conceitos básico de programação paralela com MPI. Apresentação Introdução; Arquiteturas paralelas; Análises de algoritmos; Comunicação em programas paralelos;

Leia mais

INE5645 PROGRAMAÇAO PARALELA E DISTRIBUÍDA PROVA 1 18/09/2017 ALUNO: Prof. Bosco

INE5645 PROGRAMAÇAO PARALELA E DISTRIBUÍDA PROVA 1 18/09/2017 ALUNO: Prof. Bosco INE5645 PROGRAMAÇAO PARALELA E DISTRIBUÍDA PROVA 1 18/09/2017 ALUNO: Prof. Bosco 1. a. (Verdade/Falso) Threads ou processos são programas sequenciais. Programação concorrente é aquela onde diversos processos/threads

Leia mais

OpenMP: Variáveis de Ambiente

OpenMP: Variáveis de Ambiente Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de

Leia mais

Introdução OpenMP. Nielsen Castelo Damasceno

Introdução OpenMP. Nielsen Castelo Damasceno Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto

Leia mais

Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve:

Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve: Pipeline Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.Osório] Estrutura da CPU Em cada ciclo,

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

Programação Paralela e Distribuída (DCC/UFRJ)

Programação Paralela e Distribuída (DCC/UFRJ) Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória

Leia mais

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC)

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC) 1. Considere um processador in-order com 5 estágios (IF, ID, EX1, EX2, WB) sem qualquer mecanismo de forwarding de dados, e o seguinte troço de código. Memória de instruções Operação MOV R1,R0 ; R1 R0

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

OpenMP: Uma Introdução

OpenMP: Uma Introdução Instituto de Informática OpenMP: Uma Introdução Cláudio Geyer Fonte! Fontes! Slides inicialmente baseados em palestra de Ruud van der Pas! Janeiro de 2009! Na Nanyang Technological University, Singapore!

Leia mais

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Gabriel Freytag Guilherme Arruda Rogério S. M. Martins Edson L. Padoin Universidade Regional do Noroeste do Estado do Rio Grande

Leia mais

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

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

Leia mais

Paradigmas de Computação

Paradigmas de Computação UCE- Computação Paralela e Distribuída Paradigmas de Computação João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://alba.di.uminho.pt/... 1 Paradigmas de Computação paralela Resultados da Aprendizagem

Leia mais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Desenvolvimento de Aplicações Paralelas (gec.di.uminho.pt/lesi/ap10203/aula06aplicaçõespar.pdf) João Luís Ferreira Sobral Departamento

Leia mais

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel OpenMP Slides baseados em tutorial de Tim Mattson da Intel O que é OpenMP? Uma especificação para um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de sistema que podem ser utilizadas

Leia mais

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação

Leia mais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MULTIPROCESSADORES

Leia mais

INPE Outubro, Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva Projeto:

INPE Outubro, Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva  Projeto: INPE Outubro, 2008 Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva fabiana.santana@usp.br, amsaraiv@usp.br Apoio: Instituição: Projeto: Objetivos: Apresentar versão de alto desempenho para o Garp

Leia mais

The Excitement in Parallel Computing

The Excitement in Parallel Computing The Excitement in Parallel Computing MAC0412 - Organização de Computadores Alberto Ueda, Bruno Ozahata, Camila Matsubara, Gabriel Pugliese, João Paulo Mota, Leonardo Marchetti, Mina Cintho e Pĺınio Esmerio

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

Leia mais

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 Eldair F. Dornelles 2, Henrique A. Richter 3, Miquéias F. M. Trennepohl 4, Taís T. Siqueira

Leia mais

Programação Concorrente e Paralela

Programação Concorrente e Paralela projeto de programas paralelos 2016 PCAM problema particionamento comunicacao aglomeracao mapeamento desenhada para memória distribuída mas muitas idéias em comum Particionamento idéia é expor oportunidades

Leia mais

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel OpenMP Slides baseados em tutorial de Tim Mattson da Intel Modelo OpenMP Como as threads interagem? OpenMP é um modelo baseado em multithreading Threads se comunicam pelo compartilhamento de variáveis

Leia mais

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação UDP e TCP,

Leia mais

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação

Leia mais

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,

Leia mais

AULA DE REVISÃO 3 ILP

AULA DE REVISÃO 3 ILP AULA DE REVISÃO 3 ILP Exercício 1: Considere um bloco de código com 15 instruções cada uma com tempo de execução Tex. Elas são executadas numa unidade pipeline de 5 estágios. Os overheads do pipeline são

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

Otimização do código. Compiladores Cristina C. Vieira. Compiladores 2012/2013

Otimização do código. Compiladores Cristina C. Vieira. Compiladores 2012/2013 Otimização do código Compiladores Cristina C. Vieira 1 Otimizações Idealmente, o compilador deveria gerar código eficiente Mas o compilador mapeia as AST para a linguagem assembly Geralmente, existe uma

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com

Leia mais

CAP-387(2016) Tópicos Especiais em

CAP-387(2016) Tópicos Especiais em CAP-387(2016) Tópicos Especiais em Computação Aplicada: Construção de Aplicações Massivamente Paralelas Aula 13: Vetorização Celso L. Mendes, Stephan Stephany LAC / INPE Emails: celso.mendes@inpe.br, stephan.stephany@inpe.br

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache

Leia mais

Jorge Barbosa, FEUP-DEI 2008

Jorge Barbosa, FEUP-DEI 2008 Técnicas para paralelização de aplicações Jorge Barbosa, FEUP-DEI 2008 Índice Introdução Técnicas de paralelização de aplicações Nível 1: Usando código sequencial Nível 2: Alteração mínima de código sequencial

Leia mais

Pequena Apresentação Sobre Paralelismo em nível de instrução

Pequena Apresentação Sobre Paralelismo em nível de instrução Pequena Apresentação Sobre Paralelismo em nível de instrução Primórdios do Paralelismo: Pipeline Múltiplas unidades funcionais (sem pipeline) Paralelismo em Nível de Instrução processadores superescalares

Leia mais

Arquitetura e Organização de Processadores. Aula 4. Pipelines

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

Leia mais

Sistemas Operacionais. Adão de Melo Neto

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,

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez gregorio@uninove.br 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

Estudo Comparativo de Algoritmos de Escalonamento para Grades Computacionais

Estudo Comparativo de Algoritmos de Escalonamento para Grades Computacionais Estudo Comparativo de Algoritmos de Escalonamento para Grades Computacionais Alvaro Henry Mamani Aliaga e Alfredo Goldman Instituto de Matemática e Estatística Departamento de Ciência da Computação Universidade

Leia mais

SSC PROGRAMAÇÃO CONCORRENTE. Aula 07 Técnicas de Desenvolvimento de Programas Paralelos Parte 2 Prof. Jó Ueyama

SSC PROGRAMAÇÃO CONCORRENTE. Aula 07 Técnicas de Desenvolvimento de Programas Paralelos Parte 2 Prof. Jó Ueyama SSC- 0742 PROGRAMAÇÃO CONCORRENTE Aula 07 Técnicas de Desenvolvimento de Programas Paralelos Parte 2 Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Computadores vetoriais Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach e site do curso EE 7722, GPU Microarchitecture do Prof. David Koppelman Graphical

Leia mais

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW 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 08 Arquiteturas VLIW 1. Introdução VLIW é Very

Leia mais

SSC0510 Arquitetura de Computadores

SSC0510 Arquitetura de Computadores SSC0510 Arquitetura de Computadores 11ª Aula Paralelismo Avançado em Nível de Instrução e em Nível de Tarefas (Threads) Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Tipos de Paralelismo BLP: Bit Level

Leia mais

Caracterização de Sistemas Distribuídos

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

Leia mais

Software retargeting

Software retargeting Software retargeting Luigi & Flavio CMP502 2002/II Binary translation z Arquitetura é uma camada de software z é uma tecnologia disruptiva? z Suporte a novo paradigma: virtual IT shop PARA MAIS INFORMAÇÕES...

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

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado Arquitectura de Computadores 2 o Semestre (2013/2014) MEAer 2 o Teste - 19 de Junho de 2014 Duração: 1h30 + 0h15 Regras: Otesteésemconsulta, apenas tem disponível o anexo que lhe deverá ter sido entregue

Leia mais

Processamento Paralelo & Multiprocessadores

Processamento Paralelo & Multiprocessadores Processamento Paralelo & Multies Motivação Tipos de máquinas paralelas Coerência entre caches UFPR Bacharelado em Ciência da Computação 1 UMA Uniform Memory Access no acesso à memória é a mesma para todos

Leia mais

Modelo de Von Neumann

Modelo de Von Neumann 1 Modelo de Von Neumann Memória UC ALU Entrada Saída ACC 2 Arquitetura de Von Neumann 3 O Computador 4 Processador Microprocessadores São processadores contidos em um único encapsulamento (CI). Microcontroladores

Leia mais

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Frustum Culling Híbrido Utilizando CPU e GPU Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Agenda Objetivos Motivação Algoritmos de visibilidade Frustum Culling

Leia mais

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

Leia mais

Tecnicas Essencias Greedy e Dynamic

Tecnicas Essencias Greedy e Dynamic Tecnicas Essencias Greedy e Dynamic Paul Crocker RELEASE - Reliable and Secure Computation Group Universidade da Beira Interior, Portugal October 2010 1 / 27 Outline 1 Introdução 2 Exemplo Greedy I : Interval

Leia mais

Paradigmas de Computação Paralela

Paradigmas de Computação Paralela Paradigmas de Computação Paralela Modelos e Linguagens de Computação Paralela João Luís Ferreira Sobral jls@... 1 Dezembro 2015 Razões para a computação paralela (cf. Skillicorn & Talia 1998) O mundo é

Leia mais

Algoritmos para Escalonamento de Instruções e Alocação de Registradores na Infraestrutura LLVM

Algoritmos para Escalonamento de Instruções e Alocação de Registradores na Infraestrutura LLVM Algoritmos para Escalonamento de Instruções e Alocação de Registradores na Infraestrutura LLVM Lucas da Costa Silva Orientador: Prof. Dr. Ricardo Ribeiro dos Santos Faculdade de Computação Universidade

Leia mais

Economia de Energia em Sistemas Embarcados com Multiprocessadores Homogêneos ou Heterogêneos

Economia de Energia em Sistemas Embarcados com Multiprocessadores Homogêneos ou Heterogêneos MAC0461 e MAC5758 Introdução ao Escalonamento e Aplicações Economia de Energia em Sistemas Embarcados com Multiprocessadores Homogêneos ou Heterogêneos Victoriano Alfonso Phocco Diaz alfonso7@ime.usp.br

Leia mais

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global GERÊNCIA DE RECURSOS Escalonamento Global Além de prover comunicação, recursos de acesso a rede, memória compartilhada, sistemas de arquivos distribuídos, um sistema operacional distribuído tem que poder

Leia mais

Introdução à OpenMP (Dia 1) Prof. Guido Araujo

Introdução à OpenMP (Dia 1) Prof. Guido Araujo Introdução à OpenMP (Dia ) Prof. Guido Araujo www.ic.unicamp.br/~guido Roteiro Escrevendo programas usando OpenMP Usando OpenMP para paralelizar laços seriais com pequenas mudanças no código fonte Explorar

Leia mais

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela.

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela. Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela. Marlos A. S. Lima 1, Davi Magalhães 2, F. C. de Lima Júnior 3, Rommel W.

Leia mais

Optimização do tempo de processamento de aplicações em clusters em ambiente multi-utilizador

Optimização do tempo de processamento de aplicações em clusters em ambiente multi-utilizador FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Optimização do tempo de processamento de aplicações em clusters em ambiente multi-utilizador Belmiro Daniel Rodrigues Moreira Dissertação Mestrado Integrado

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

Programação Paralela e Distribuída

Programação Paralela e Distribuída Programação Paralela e Distribuída Referência: Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004

Leia mais