Agendamento para Sistemas Paralelos
|
|
- Maria do Loreto Arantes Aleixo
- 7 Há anos
- Visualizações:
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
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 maisParadigmas 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 maisScheduling 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 maisOrganizaçã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 maisUniversidade 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 maisOpenMP. 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 maisfor(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 maisAgenda. 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 maisParalela 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 maisMemó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 maisOrganizaçã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 maisProgramaçã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 maisIntroduçã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 maisBibliografia. 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 maisOpenMP: 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 maisVariá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 maisIntroduçã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 maisOrganizaçã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 maisArquiteturas 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 maisSistemas 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 maisMultiprocessamento. 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 maisModelos 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 maisDesempenho 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 mais1. 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 maisArquitetura 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 maisComputaçã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 maisFerramentas 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 maisProgramaçã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 maisProgramaçã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 maisBibliografia 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 maisIntroduçã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 maisProgramaçã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 maisParallel 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 maisParalelismo 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 maisPCC104 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 maisDESENVOLVIMENTO 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 maisConstrutores 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 maisLinguagens 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 maisParalelizaçã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 maisProgramaçã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 maisINE5645 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 maisOpenMP: 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 maisIntroduçã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 maisPipeline. 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 maisSSC510 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 maisProgramaçã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 mais1.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 maisTé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 maisOpenMP: 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 maisAná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 maisSistemas 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 maisParadigmas 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 maisArquitecturas 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 maisOpenMP. 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 maisSistema 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 maisAULA 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 maisINPE 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 maisThe 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 maisFerramentas 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 maisSistemas 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 maisUM 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 maisProgramaçã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 maisOpenMP. 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 maisINE 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 maisINE 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 maisUniversidade 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 maisAULA 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 maisCarlos 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 maisOtimizaçã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 maisMicroarquiteturas 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 maisCAP-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 maisSistemas 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 maisJorge 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 maisPequena 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 maisArquitetura 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 maisSistemas 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 maisParte 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 maisEstudo 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 maisSSC 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 maisArquiteturas 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 maisArquitetura 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 maisSSC0510 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 maisCaracterizaçã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 maisSoftware 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 maisThe 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 maisI. 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 maisProcessamento 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 maisModelo 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 maisFrustum 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 mais1. 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 maisTecnicas 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 maisParadigmas 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 maisAlgoritmos 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 maisEconomia 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 maisGerê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 maisIntroduçã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 maisAlgoritmo 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 maisOptimizaçã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 mais30/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 maisProgramaçã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