Sistemas Distribuídos e Paralelos
|
|
|
- Zilda Guimarães Meneses
- 9 Há anos
- Visualizações:
Transcrição
1 Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC Eng. Alexander Rodríguez Bonet
2 Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha de tarefas. Tarefas: OpenMP 3.0. Outras ferramentas.
3 Objectivo Caracterizar as técnicas e ferramentas de programação paralela em memória compartilhada.
4 Introdução SSDDPP Todos os processadores compartilham o mesmo espaço de direções. Comunicação implícita através do acesso a variáveis compartilhadas. Necessários mecanismos de sincronização (semáforos, secções críticas, barreiras...). Atualmente em auge pelas arquiteturas multicores.
5 Ferramentas de programação paralela em memória compartilhada. Threads nativos (ex. Pthreads) programação de baixo nível (ainda que portável), baseada em chamadas a bibliotecas. OpenMP: API regular para programação em sistemas de memória compartilhada (Fortran, C/C++) programação de alto nível (diretoras no código sequencial). Portabilidade. Threading Building Blocks: Biblioteca para a programação paralela em memória compartilhada (C/C++). Permite a criação de programas paralelos mediante a combinação de pequenos componentes paralelos. Trabalha com o conceito de Tarefa em lugar
6 Ferramentas de programação paralela em memória compartilhada. Parallel Pattern Library (PPL): Biblioteca de programação paralela em.net. Baseada em extensões da linguagem Visual C. Programação baseia em padrões de implementação paralela. Trabalha com o conceito de Tarefa em lugar de Fios. Pacote java.util.concurrent de JAVA 7: Conjunto de primitivas de programação concorrente. Introduz conceitos como executor que permite a execução (planejamento) concorrente e transparente de tarefas. Introduz as tarefas de tipo Fork/Join para a implementação de algoritmos concorrentes de tipo Divide e Vencerás.
7 Características que devem ter estas ferramentas: Um mecanismo de identificação dos threads. Um método para declarar as variáveis como privadas (private) ou compartilhadas (shared). Um mecanismo para poder definir regiões paralelas, bem seja a nível de função ou a nível de iteração de bucle. Facilidades para sincronizar os threads.
8 OpenMP SSDDPP Um API usado para programação multithreding direto explícito e paralelismo de memória compartilhada. Consta de três componentes API principais: Diretoras do compilador, Rotinas de livraria de tempo de execução e Variáveis de meio. Portável: O API está especificado para C/C e Fortran. Implementou-se em múltiplas plataformas incluindo a maioria de Unix e Windows. Padronizado: Definido em acordo e usado por várias grandes empresas de SW/HW. Espera-se que se converta num regular ANSI.
9 OpenMP Simples e ligeiro: Estabelece um conjunto de diretoras simples e limitado para programar máquinas de memória compartilhada. Com tão só 3 ou 4 diretoras pode-se implementar um paralelismo significativo. Facilidade de uso. Proporciona capacidade para paralelizar incrementalmente um programa série, ao invés que as bibliotecas de passagem de mensagens, que requerem uma aproximação todo-ou-nada.
10 Qué não é OpenMP? Não está destinado a programas paralelos em memória distribuída (por si mesmo). Não está necessariamente implementado identicamente por todas as empresas. Não garante o uso mais eficiente da memória compartilhada (na actualidade não há construtores de localidade de dados).
11 Modelo Fork-Join Realiza um paralelismo explícito, não automático, baseado em fios que oferece ao programador o controle total da paralelización. Usa o modelo de execução paralela Fork-Join. Todos os programas OpenMP começam como um único fio: o fio mestre. O fio mestre executa-se sequencialmente até que se encontre a primeira construção de região paralela.
12 Modelo Fork-Join FORK: O fio mestre cria uma "equipa" de fios paralelos. As sentenças do programa que estão encerradas numa construção de região paralela se executam então entre vários fios da equipa. JOIN: Quando os fios da equipa completam as sentenças da construção de região paralela, se sincronizam e terminam deixando só ao fio mestre.
13 Modelo Fork-Join SSDDPP
14 Diretivas de OpenMP Sintaxe: #pragma omp nombre-directiva [cláusula,...] Pode ter uma, nenhuma ou várias cláusulas. A cada diretiva aplica-se a no máximo uma sentença seguinte, que deve ser um bloco estruturado. São sensíveis a maiúsculas. Só um nome de diretora se pode especificar por diretiva.
15 Criação de uma região paralela: Uma região paralela é um bloco de código que executarão vários fios. É a construção fundamental de OpenMP. Sintaxe: #pragma omp parallel [cláusula,...] /* structured block*/ Os programas OpenMP executam-se sequencialmente até encontrar a diretiva parallel. Cria-se um grupo de fios cujo número pode ser especificado na diretora. A cada fio criado executa as instruções especificadas em structured block.
16 Cláusulas: Paralelização condicional: A cláusula if (scalar expression) determina se na região paralela criam-se os fios ou não. Grau de concorrência: A cláusula num_threads(integer expression) especifica o número de fios que serão criados pela diretiva parallel.
17 Tarefa SSDDPP Pesquisar a utilidade das cláusulas para o manejo de dados: private (variable list) firstprivate (variable list) shared (variable list) default (state) reduction (operator: variable list) Pesquisar a utilidade das diretivas: For barrier Master ordered sections Single Critical
18 Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC Eng. Alexander Rodríguez Bonet
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
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
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
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
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
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
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
SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella
SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados
Processos Concorrentes
Processos Concorrentes Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
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/)
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre o
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
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:
Matheus S. Serpa, Vinícius G. Pinto, Philippe O. A. Navaux Contato: INTEL MODERN CODE PARTNER
INTEL MODERN CODE: INTRODUÇÃO À PROGRAMAÇÃO VETORIAL E PARALELA PARA O PROCESSADOR INTEL XEON PHI KNIGHTS LANDING Matheus S. Serpa, Vinícius G. Pinto, Philippe O. A. Navaux Contato: [email protected]
Threads. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,
Threads Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Introduzir a noção de thread uma unidade básica de utilização do CPU Discutir os benefícios e os problemas
Paralela e Distribuída. com o MPI e o OpenMP
Programação Paralela e Distribuída Programação Híbrida com o e o OpenMP e OpenMP Uma forma de executar um programa em paralelo num cluster multiprocessor é criar um processo por cada processador. Nesse
Programação em Memória Compartilhada com OpenMP
Programação em Memória Compartilhada com 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 [email protected]
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
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre o
Introdução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
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
COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1
COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Monografia. Análise Comparativa de Desempenho de um algoritmo Paralelo implementado nas Linguagens de Programação CPAR e OpenMP
Monografia Análise Comparativa de Desempenho de um algoritmo Paralelo implementado nas Linguagens de Programação CPAR e OpenMP disciplina: Programação Paralela e Distribuída Professora: Liria Matsumoto
Introdução aos Conceitos de Computação Paralela através da estimativa de Pi
Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Diego da Silva Pereira 1 1 Professor de Redes de Computadores IFRN Câmpus Currais Novos. e-mail: [email protected] Resumo:
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
Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41
Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: [email protected] fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
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
AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação MULTIPROCESSADORES
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
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
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 é
Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger
Processos e Threads Ciclo 2 AT3 Prof. Hermes Senger Nota O presente material foi elaborado com base no material didático do livro Sistemas Operacionais, 3ª edição, de H.M.Deitel, P.J. Deitel, D.R. Choffnes,
Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.
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
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
Chapter 4: Threads. Operating System Concepts 8th Edition
Chapter 4: Threads Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano
Sistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE II SUMÁRIO 3. THREAD: 3.1 Introdução; 3.2 Ambiente Monothread; 3.3 Ambiente Multithread; 3.4 Arquitetura e Implementação; 3.5 Modelos
Sistemas Distribuídos
Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo,
Introdução à Programação Paralela com OpenMP: Além das Diretivas de Compilação
Capítulo 3 Introdução à Programação Paralela com OpenMP: Além das Diretivas de Compilação Rogério A. Gonçalves, João Martins de Queiroz Filho e Alfredo Goldman Abstract Compilation directives have been
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
PROGRAMAÇÃO. Programação paralela com o OpenMP Em paralelo
PROGRAMAÇÃO Programação paralela com o OpenMP Em paralelo O OpenMP traz o poder do multiprocessamento aos programas em C, C++ e Fortran. por Wolfgang Dautermann A nova safra de processadores com múltiplos
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Linguagens de Programação 10 Avaliação de Linguagens
Linguagens de Programação 10 Avaliação de Linguagens Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Modelo de Programação Paralela
Modelo de Programação Paralela As arquiteturas paralelas e distribuídas possuem muitos detalhes Como especificar uma solução paralela pensando em todos esses detalhes? O que queremos? Eecutar a solução
Linguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Linguagem Chapel. Walter Perez Urcia. Universidade de São Paulo Instituto de Matemática e Estadística Departamento de Ciências da Computação
Linguagem Chapel Walter Perez Urcia Universidade de São Paulo Instituto de Matemática e Estadística Departamento de Ciências da Computação 17 de junho de 2015 Walter Perez (IME - USP) Linguagem Chapel
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
Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente
Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente AUTOR: THAÍS S. HÜBNER BOLSISTA PBIP/UFPEL EMAIL: [email protected] ORIENTADOR ANDRÉ RAUBER DU BOIS Sumário
Sistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
PROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads
Threads Prof. Edwar Saliba Júnior Março de 2007 1 Definição Partes de um processo que compartilham mesmo espaço de endereçamento Sub-rotina de um programa executada paralelamente ao programa chamador (execução
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
