Parallel Computing Paradigms
|
|
|
- Manuela Franca Ramalho
- 9 Há anos
- Visualizações:
Transcrição
1 João Luís Ferreira Sobral Web: Elearning 1
2 At the end of the course, students should be able to: Design and optimise parallel applications that can efficiently run on a wide range of parallel computing platforms Identify/develop parallel applications using well-known parallelism patterns Identify limitations of current parallel programming paradigms and languages Identify limitations and workarounds to performance scalability Program (short version) Programming models and languages Shared vs distributed memory models Threads, communicating processes and distributed objects Tasks distribution among resources Mechanisms to express concurrency/parallelism Design of parallel applications Design phases: partition, communication, agglomeration, mapping Typical parallel algorithms: pipelining, farming, heartbeat e divide & conquer Measurement, analysis and optimisation of parallel applications Scalability analysis: cost / benefit of parallelism and its quantification (metrics) Granularity control: computation versus communication Load distribution techniques and data partition 2
3 Final grade One mini-project: development of typical parallel applications On shared memory (35%) On distributed memory (50%) On a recent programming language (15%) Requirements Basic Java and C /SCD Bibliography (base) Slides M. Quinn. Parallel programming in C with C and OpenMP, McGraw Hill, 2003 I. Foster. Designing and Building Parallel Programs, Addison-Wesley, Bibliography (additional) M. McCool, J. Reinders, A. Robison, Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufmann, 2012 C. Lin, L. Snyder, Principles of parallel programming, Pearson international,2009 R. Gerber, A. Binstock. Programming with Hyper-Threading Technology, Intel Press, F. Buschmann, D. Schmidt, M. Stal, H. Rohnert, Pattern-oriented Software Architecture Vol 2: Patterns for Concurrent and Networked Objects, John Wiley and Sons Ltd,
4 Introdução Níveis e tipos de paralelismo Paradigmas vs linguagens de programação Linguagens baseadas em: directivas (OpenMP), extensões à linguagem (java) vs bibliotecas (TBB) Programação baseada no paradigma de memória partilhada OpenMP Java threads / cilk Intel Thread building blocks Modelos de consistência de memória Medição de otimização de desempenho em memória partilhada Programação baseada no paradigma de memória distribuída Processos comunicantes (MPI) Objectos distribuídos, cliente/servidor Desenho de aplicações paralelas Padrões comuns de computação Medição e otimização de desempenho em memória partilhada Programação baseada em modelos híbridos Modelo híbrido MPI + OpenMP Modelos de memória virtual partilhada (virtual shared memory) Modelo global com partições (partitioned global address space) Modelos e paradigmas de computação paralela classificação das várias linguagens para computação paralela 4
5 Paradigmas de Computação Paralela Evolução das arquiteturas de computadores Microprogramação Pipelining Superescalaridade Caches Timeshared Memória Virtual RISC VLIW (EPIC) CC-UMA CC-NUMA Not-CC-NUMA Passagem de Mensagens GRID/Internet SIMD Evolução ILP Multithreading Processos comunicantes Revolução Os processadores exploram paralelismo ao nível da instrução de forma transparente Uma revolução obriga à alteração da forma de pensar dos programadores A ênfase de computação paralela é na programação deste tipo de arquitecturas 5
6 Paradigmas de Computação Paralela Evolução das arquiteturas de computadores Processor transistor counts 10 1 GHz Processor clock rates Million transistors Processor power (Watts) Watts
7 A methodology to develop parallel applications Problem Partitioning Identification of communication Task/communication agglomeration Mapping 7
Computação Paralela. João Luís Ferreira Sobral
João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.pt/micei/cp 1 Computação paralela Objectivo Desenvolvimento de aplicações que executem de forma eficiente numa gama alargada
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!
UCE- Computação Paralela e Distribuída Paradigmas de Computação Paralela
UCE- Computação Paralela e Distribuída Paradigmas de Computação Paralela João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://alba.di.uminho.pt/... 2/03/2010 1 Paradigmas de Computação paralela
Arquitecturas Paralelas I. Computação Paralela. João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.
Arquitecturas Paralelas I Computação Paralela João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.pt/lesi/ap1 1 Computação paralela Resultados da Aprendizagem Desenvolver aplicações
Arquitecturas Paralelas I. Computação Paralela. João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.
Arquitecturas Paralelas I Computação Paralela João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.pt/lesi/ap1 1 Computação paralela Resultados da Aprendizagem Conceber, implementar
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 é
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:
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
Programação Concorrente e Paralela. Noemi Rodriguez
2013 Objetivos princípios e técnicas de programação concorrente multiprocessadores memória compartilhada troca de mensagens obs: diferentes níveis de abstração! que princípios e técnicas são esses? notações
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: [email protected]
Disciplina de Arquitetura de Computadores
USP - ICMC - SSC SSC 0510 - Informática - 2o. Semestre 2010 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/
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
Disciplina de. Organização de Computadores Digitais
USP - ICMC - SSC SSC 0511 - Sist. Informação - 2o. Semestre 2014 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/
Disciplina de. Organização de Computadores Digitais
USP - ICMC - SSC SSC 0511 - Sist. Informação - 2o. Semestre 2014 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/
AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Pós-Graduação em Computação Distribuída e Ubíqua
Pós-Graduação em Computação Distribuída e Ubíqua INF628 - Engenharia de Software para Sistemas Distribuídos Sandro S. Andrade [email protected] Objetivos Apresentar os principais desafios de engenharia
Programação Distribuída e Paralela Apresentação
Programação Distribuída e Paralela Apresentação Programação Distribuída e Paralela (C. Geyer) Apresentação V4.2 S 1 Autoria Autoria Local Versão 4.2 Fev 2014 C. Geyer INF UFRGS Disciplinas INF01008 Programação
Arquitecturas Paralelas I Computação Paralela em Larga Escala. Introdução
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Introdução João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Setembro 2003 Programa Introdução e objectivos
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
ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE
ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE Objectivos da Disciplina Príncipios gerais da arquitectura de computadores Estrutura e comportamento de um computador Programação em assembly Processadores
Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER
COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti ([email protected]) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores
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)
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
SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama
SSC- 0742 PROGRAMAÇÃO CONCORRENTE Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados às
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Prof. Carlos Eduardo de B. Paes Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Objetivos
Arquiteturas paralelas Parte 1
Arquiteturas paralelas Parte 1 Processamento Paralelo Prof. Oberlan Romão Departamento de Computação e Eletrônica DCEL Centro Universitário Norte do Espírito Santo CEUNES Universidade Federal do Espírito
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
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
Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór
Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Filipo Mór WWW.FILIPOMOR.COM - REVISÃO ARQUITETURAS PARALELAS Evolução das Arquiteturas Evolução das Arquiteturas Entrada CPU Saída von
Disciplina de Arquitetura de Computadores
USP - ICMC - SSC SSC 0510 - Informática - 2o. Semestre 2009 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/
Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos
Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos Giuseppe G. P. Santana 1, Luís F. W. Goés 1 1 Departamento de Ciência da Computação Pontifícia Universidade
Programação Paralela e Distribuída
Curso de Informática DCC-IM / UFRJ Programação Paralela e Distribuída Um curso prático Mario J. Júnior Gabriel P. Silva Colaboração: Adriano O. Cruz, Julio S. Aude Ementa Paradigma de Troca de Mensagens
periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações
Introdução aos Sistemas de Computação (6) Análise de componentes num computador Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3.
Arquitetura de Sistemas Digitais
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Arquitetura de Sistemas Digitais Lucas Cordeiro [email protected] Notas de Aula Os slides deste
Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki
Ruby e JRuby em... Paralelos e Distribuídos Felipe Barden 151343 Lucas Fialho Zawacki 172072 Sobre o que vamos falar? A linguagem Ruby e suas aplicações em programação paralela e distribuída. A implementação
CIC Organização e Arquitetura de Computadores. Prof. Ricardo Jacobi Notas de Aula: Prof. Gerson Henrique Pfitscher
CIC - 116394 Organização e Arquitetura de Computadores Prof. Ricardo Jacobi Notas de Aula: Prof. Gerson Henrique Pfitscher Entender o funcionamento interno dos computadores não é uma tarefa simples para
Linguagem de Programação II
Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB [email protected] Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes
USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS
Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO
Avaliação das Interfaces de Ferramentas de Programação Concorrente Com a Suíte Cowichan
Avaliação das Interfaces de de Programação Concorrente Com a Suíte Cowichan Pablo T. Kila, Heitor Augusto G. Almeida Murilo F. Schmalfuss, Gerson Geraldo H. Cavalheiro 1 Universidade Federal de Pelotas
Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
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 1 Introdução Arquitetura e Organização 1. Arquitetura
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
William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU
William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores
Arquitetura de Software
Arquitetura de Software A arquitetura de um software é uma estrutura de componentes interconectados através de interfaces Componentes são compostos de componentes menores e interfaces A interação entre
Requer conhecimentos prévios de tecnologia informática e de representação de informação em sistemas digitais binários.
Grupo de disciplinas: Sistemas da Computação Anual Obrigatória X Semestral X Opcional Regime Diurno Nocturn Horas/semana T Teórica 1 o Ano 2 2 T/P Teórico/Prática 1 Semestre 1 1 P Prática 3 OT Orientação
Paralelização do Método de Jacobi em Memória Compartilhada 1
Paralelização do Método de Jacobi em Memória Compartilhada 1 Claudio Schepke [email protected] 1 PPGC - Instituto de Informática - UFRGS Introdução ao Processamento Paralelo e Distribuído Professor
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
COMPILADORES PROGRAMA E BIBLIOGRAFIA
COMPILADORES PROGRAMA E BIBLIOGRAFIA Mariza A. S. Bigonha e Roberto S. Bigonha UFMG 27 de maio de 2008 Todos os direitos reservados Proibida cópia sem autorização dos autores OBJETIVOS DO CURSO Ensinar
Parallel Algorithms for Multicore Game Engines
Lucas Euzébio Machado Parallel Algorithms for Multicore Game Engines TESE DE DOUTORADO DEPARTAMENTO DE INFORMÁTICA Postgraduate program in Informatics Rio de Janeiro March 2010 Lucas Euzébio Machado Parallel
SSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 17ª Aula Paralelismos nível de tarefas Profa. Sarita Mazzini Bruschi [email protected] Paralelismo no nível de tarefas Paralelismo a nível de thread (TLP Thread-Level
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
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Identificação: Disciplina: INE5645 - Programação Paralela e Distribuída Carga horária: 72 horas-aula Teóricas: 36 Práticas: 36 Período: 2º semestre de 2014 (em
Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?
Arquitetura do SET de instruções Instruction SET CISC vs RISC What s assembly as to do with it? Low-level - high-level programming language Assambley CODE section.text global _start ;must be declared for
Análise de Drawbacks no Desdobramento de Laços Relativo a Caches Associativas de GPUs
Análise de Drawbacks no Desdobramento de Laços Relativo a Caches Associativas de GPUs Neemias Gabriel P. B. Arruda 1, Francisco Heron de Carvalho Júnior 1, Tiago Carneiro 1, Anderson Boettge Pinheiro 1
Programação Concorrente e Paralela. Noemi Rodriguez
2016 o que é programação concorrente e paralela? programação concorrente: composição de linhas de atividades independentes programação paralela: execução simultânea de linhas de atividades Go blog (Rob
COMPUTAÇÃO PARALELA E DISTRIBUÍDA
COMPUTAÇÃO PARALELA E DISTRIBUÍDA Aluno: Alessandro Faletti Orientadora: Noemi Rodriguez Introdução O objetivo inicial no projeto era aplicar a possibilidade de processamento em paralelo no sistema CSBase
Introdução à plataforma Java
Introdução à plataforma Java Apresentação: Professor: Galvez Gonçalves [email protected] O que estudaremos 1. Os conceitos de programação orientada a objetos através de uma linguagem de programação que
Concurso público de provas e títulos para professor adjunto
Concurso público de provas e títulos para professor adjunto Número de vagas: 03 Área: Ciência da Computação Matéria Específica: Ciência da Computação Informações complementares: Critérios de seleção de
Exemplo Amdahl. O speedup total é dado por:
Í Revisão da prova Questão 20: A exploração do paralelismo em nível de instruções em uma arquitetura superescalar é realizada identificando no fluxo de instruções aquelas que são independentes a fim de
Licenciatura em Informática
Licenciatura em Informática Unidade Curricular Arquitetura de Computadores Computer Architecture Objetivos -Compreender o hardware e software de sistema (SO); -Entender os sistemas de numeração e aritmética
Arquiteturas Paralelas
Arquiteturas Paralelas Arquiteturas Paralelas Graduação em Ciência da Computação Universidade do Vale do Rio dos Sinos Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS Classificação
