Programação em Paralelo OpenMP
|
|
- Marcela Gil Sousa
- 6 Há anos
- Visualizações:
Transcrição
1 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
2 Introdução Potencial do GPU vs CPU Cálculo: 367 GFLOPS vs. 32 GFLOPS Largura de banda da memória: 86.4 GB/s vs. 8.4 GB/s GPU em todos os PCs e workstations Paralelização em CPUs Pthreads OpenMP MPI... Paralelização em GPUs CUDA OpenCL... N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 2 / 15
3 OpenMP N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 3 / 15
4 Outline 1 Introdução ao OpenMP 2 Modelo de Programação 3 Directivas C/C++ 4 Cláusulas 5 Exemplo: Redução 6 Exemplo: Sections 7 Construtores de Sincronização 8 Funções N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 4 / 15
5 Introdução ao OpenMP O que é o OpenMP? do inglês Open Multi-Processing, ou Multi-processamento aberto para CPUs API para programação paralela explícita standard para programação de sistemas de memória partilhada sobretudo paralelismo nos dados Constituída por: directivas de compilação bibliotecas de funções variáveis de ambiente Portátil versões para C/C++ e Fortran implementação para UNIX/Linux e Windows Objectivo - obter um standard de programação apoiado pelos grandes fabricantes de software e hardware N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 5 / 15
6 Modelo de Programação do OpenMP Paralelismo explícito Modelo de memória partilhada baseado em threads trabalho é dividido por threads de execução variáveis podem ser partilhadas por todos os threads duplicadas (privadas) para cada thread threads comunicam através das variáveis partilhadas Usar sincronização para evitar competição entre threads OpenMP Modelo de Execução Modelo de execução tipo "fork-join" Modelo de execução tipo fork join inicia execução com um processo (master thread) inicia execução com um processo (master thread) no início do construtor paralelo cria um team-of-threads no início do construtor paralelo cria um team of threads ao completar team-of-threads sincroniza numa barreira implícita ao completar o team of threads sincroniza numa barreira apenas o master continua em execução implícita apenas o master continua a execução Fernando Silva DCC FCUP 7 N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 6 / 15
7 Modelo de Programação do OpenMP OPENMP controlo de estruturas paralelas (directivas) distribuição de tarefas (directivas) variáveis (clausulas) sincronização (directivas) variáveis runtime e de ambiente parallel for parallel for section shared private... critical atomic barrier... omp_set_num_threads() omp_get_num_threads() OMP_NUM_THREADS OMP_SCHEDULE.... O número de threads na região paralela é determinado pelos seguintes factores (ordem de precedência): cláusula num_threads(int) função omp_set_num_threads() variável ambiente OMP_NUM_THREADS default - depende da implementação Os threads são numerados de 0 a N 1 Por defeito, um programa com varias regiões em paralelo usará o mesmo número de threads para cada região, a menos que seja redefinido N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 7 / 15
8 OpenMP: Directivas C/C++ #pragma omp directive-name [clause,...] newline directive-name uma directiva OpenMP válida. Tem de aparecer depois do pragma e antes das cláusulas [clause,...] Opcional. Podem aparecer em qualquer ordem e se necessário repetidas. newline Obrigatório. Seguido do bloco estruturado que vai ser executado em paralelo. #include < s t d i o. h> # include <omp. h> main ( ) { #pragma omp p a r a l l e l p r i n t f ( " Hello World \ n " ) ; return 0; } Compilar em Linux: gcc -o exemplo exemplo.c -fopenmp 1 processador Hello World 4 processadores Hello World Hello World Hello World Hello World N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 8 / 15
9 Cláusulas OpenMP #pragma omp parallel clause bloco_codigo(); As cláusulas possibilitam ao utilizador o controlo do âmbito das variáveis na região paralela. private(list) as variáveis da lista ficam privadas a cada thread do team não são inicializadas firstprivate(list) permite que as variáveis privadas sejam inicializadas shared(list) as variáveis da lista são partilhadas por todos os threads por defeito as variáveis são "shared" reduction(operator: list) permite operar sobre as variáveis da lista copyin(list) possibilita a atribuição do mesmo valor a variáveis THREADPRIVATE if(exp) tem de avaliar como verdadeiro para que o team de threads seja criado, senão a execução será sequencial. N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 9 / 15
10 Exemplo: Redução # include <omp. h> #include < s t d i o. h> #include < s t d l i b. h> i n t main ( i n t argc, char argv [ ] ) { i n t i, n, num_threads ; i n t sum = 0; n = 1000; i n t a = ( i n t ) malloc ( n sizeof ( i n t ) ) ; for ( i =0; i < n ; i ++) a [ i ] = i ; #pragma omp p a r a l l e l num_threads= omp_get_num_threads ( ) ; p r i n t f ( " \ nnumero de Threads : %d \ n \ n ", num_threads ) ; } #pragma omp p a r a l l e l for for ( i =0; i < n ; i ++) sum += a [ i ] ; p r i n t f ( " Sum = %d \ n ",sum ) ; Qual é o problema no código? N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 10 / 15
11 Exemplo: Redução # include <omp. h> #include < s t d i o. h> #include < s t d l i b. h> i n t main ( i n t argc, char argv [ ] ) { i n t i, n, num_threads ; i n t sum = 0; n = 1000; i n t a = ( i n t ) malloc ( n sizeof ( i n t ) ) ; for ( i =0; i < n ; i ++) a [ i ] = i ; #pragma omp p a r a l l e l num_threads= omp_get_num_threads ( ) ; p r i n t f ( " \ nnumero de Threads : %d \ n \ n ", num_threads ) ; } #pragma omp p a r a l l e l for for ( i =0; i < n ; i ++) sum += a [ i ] ; p r i n t f ( " Sum = %d \ n ",sum ) ; Qual é o problema no código? Vários threads a ler e escrever para sum N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 10 / 15
12 Exemplo: Redução (Cont.) Solução 1: reduction(operator: list) # include <omp. h> #include < s t d i o. h> #include < s t d l i b. h> i n t main ( i n t argc, char argv [ ] ) { i n t i, n, num_threads ; i n t sum = 0; n = 1000; i n t a = ( i n t ) malloc ( n sizeof ( i n t ) ) ; for ( i =0; i < n ; i ++) a [ i ] = i ; #pragma omp p a r a l l e l num_threads= omp_get_num_threads ( ) ; p r i n t f ( " \ nnumero de Threads : %d \ n \ n ", num_threads ) ; } #pragma omp p a r a l l e l for reduction ( + : sum) for ( i =0; i < n ; i ++) sum += a [ i ] ; p r i n t f ( " Sum = %d \ n ",sum ) ; N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 11 / 15
13 Exemplo: Redução (Cont.) Solução 2: Um array com o tamanho dado pelo número de threads # include <omp. h> #include < s t d i o. h> #include < s t d l i b. h> i n t main ( i n t argc, char argv [ ] ) { i n t i, n, num_threads ; i n t sum = 0; n = 1000; i n t a = ( i n t ) malloc ( n sizeof ( i n t ) ) ; for ( i =0; i < n ; i ++) a [ i ] = i ; #pragma omp p a r a l l e l num_threads= omp_get_num_threads ( ) ; p r i n t f ( " \ nnumero de Threads : %d \ n \ n ", num_threads ) ; i n t asum = ( i n t ) malloc ( num_threads sizeof ( i n t ) ) ; for ( i =0; i < num_threads ; i ++) asum [ num_threads ] = 0; #pragma omp p a r a l l e l for for ( i =0; i < n ; i ++) asum [ omp_get_thread_num ( ) ] += a [ i ] ; } for ( i =0; i < num_threads ; i ++) sum += asum [ i ] ; p r i n t f ( " Sum = %d \ n ",sum ) ; N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 12 / 15
14 Exemplo: Sections main ( ) { #pragma omp p a r a l l e l { #pragma omp section Task1 ( ) ; #pragma omp section Task2 ( ) ; #pragma omp section Task3 ( ) ; #pragma omp section Task4 ( ) ; } } sections 1 processador executa as tasks de forma sequencial 4 processadores uma task para cada processador N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 13 / 15
15 Construtores de Sincronização omp master especifica uma região que será executada apenas pelo master (os outros ignoram) omp critical especifica uma região crítica de código que deve ser executada apenas por um thread de cada vez. omp barrier quando esta directiva é alcançada por um thread, este espera até que os restantes cheguem ao mesmo ponto. omp atomic especifica um endereço de memória para actualização atómica. omp flush identifica um ponto de sincronização no qual é necessário providenciar uma visão consistente da memória. omp ordered especifica que as iterações devem ser executadas pela mesma ordem, como se fossem executadas sequencialmente. N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 14 / 15
16 Funções OpenMP void omp_set_num_threads(int) invocada na parte sequencial. int omp_get_num_threads(void) retorna o número de threads activos int omp_get_max_threads(void) retorna o número máximo de threads permitidos int omp_get_thread_num(void) retorna o ID do thread (entre 0 e N 1) int omp_get_num_procs(void) retorna o número de processadores disponíveis para o programa void omp_init_lock(omp_lock_t*) Inicializa um lock associado a variável de lock void omp_destroy_lock(omp_lock_t*) void omp_set_lock(omp_lock_t*) espera ate conseguir o lock void omp_unset_lock(omp_lock_t*) liberta o lock double omp_get_wtime(void) retorna o o num. segundos decorridos (elapsed time) double omp_get_wtick(void) retorna os segundos decorridos entre chamadas sucessivas N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 15 / 15
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 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 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 maisSSC 0742 PROGRAMAÇÃO CONCORRENTE. Aula 08 Ferramentas de Apoio ao Desenvolvimento de Aplicações Concorrentes OpenMP Prof.
SSC 0742 PROGRAMAÇÃO CONCORRENTE Aula 08 Ferramentas de Apoio ao Desenvolvimento de Aplicações Concorrentes OpenMP Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r
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 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 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 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 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 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 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 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 maisMatheus 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: msserpa@inf.ufrgs.br
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 maisPara saber se o pacote está disponível nos repositórios, abra um terminal e digite (use o comando abaixo):
Executando OpenMP Usaremos o Boot Remoto instalado na sala 6 do LIICT. Alguns comando para Debian/Ubuntu: Para saber se o pacote está disponível nos repositórios, abra um terminal e digite (use o comando
Leia maisOpenMP. Aleardo Manacero Jr.
OpenMP Aleardo Manacero Jr. Copyright Notice Material parcialmente retirado de Introduction to OpenMP, por Rudi Eigenmann -- eigenman@ecn.purdue.edu, Bob Kuhn -- bob@kai.com, Tim Mattson -- timothy.g.mattson@intel.com,
Leia maisPROGRAMAÇÃ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
Leia maisProgramação em Memória Partilhada com o OpenMP
Programação em Memória Partilhada com o OpenMP Ricardo Rocha Departamento de Ciência de Computadores Faculdade de Ciências Universidade do Po rto Computação Paralela 2015/2016 R. Rocha (DCC-FCUP) Programação
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 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 maisParalela e Distribuída. Memória Paralela com o OpenMP
Programação Paralela e Distribuída Programação em Memória Paralela com o OpenMP OpenMP O que significa OpenMP: Open specifications for Multi Processing via collaborative work between interested parties
Leia maisOpen Multi-Processing - OpenMP Papers and Abstracts
Open Multi-Processing - OpenMP Papers and Abstracts Nelsi Warken 1 Programa de Pós-Graduação em Informática Mestrado em Ciência da Computação Universidade Católica de Pelotas, RS, Brasil nelsi.warken@gmail.com
Leia maisParalela 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
Leia maisProgramação Paralela e Distribuída - OpenMP
Bacharelado em Ciência da Computação DCC-IM / UFRJ Programação Paralela e Distribuída - OpenMP Um curso prático Gabriel P. Silva Roteiro Introdução ao OpenMP Regiões Paralelas Diretivas de Compartilhamento
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 maisÍNDICE PARTE I INTRODUÇÃO... 6
Edição 1, 03/2008 A documentação apresentada a seguir foi elaborada pelos embaixadores Joseanderson Caldas e Maria Cecília Sena, membros do Laboratório de Computação Científica e Visualização (LCCV-UFAL)
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 maisOpenMP. Mestrado em Ciência da Computação Introdução ao Processamento Paralelo e Distribuído Prof. Dr. Adenauer Corrêa Yamin Mestranda: Nelsi Warken
OpenMP Mestrado em Ciência da Computação Introdução ao Processamento Paralelo e Distribuído Prof. Dr. Adenauer Corrêa Yamin Mestranda: Nelsi Warken Sumário 1. Introdução 2. História 3. Motivação 4. Objetivos
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 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 maisIntrodução ao OpenMP
Universidade Estadual de Campinas Centro Nacional de Processamento de Alto Desempenho São Paulo Apostila de Treinamento: Introdução ao OpenMP Revisão: 2014 Índice 1. Conceitos 03 1. Shared Memory 03 2.
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 maisIntroduçã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
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 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 maisAULA 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 max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
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 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 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 evalero@uesc.br
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 34: Programação MPI+OpenMP Celso L. Mendes, Stephan Stephany LAC / INPE Emails: celso.mendes@inpe.br,
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 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 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 maisMonografia. 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
Leia maisINE 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
Leia maisLaboratório de Programação Paralela. Introdução. Prof. Carlos Bazilio
Laboratório de Programação Paralela Introdução Prof. Carlos Bazilio Motivação Máquinas paralelas eram arquiteturas raras antigamente Este quadro se modificou por, pelo menos, 2 razões: Barateamento dos
Leia maisINE 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
Leia maisIntrodução à programação paralela em Fortran usando OpenMP e MPI
Introdução à programação paralela em Fortran usando OpenMP e MPI Henrique Gavioli Flores,Alex Lima de Mello, Marcelo Trindade Rebonatto Universidade de Passo Fundo 5 de Abril de 2018 1/28 1 / 28 Sumário
Leia maisIntel Thread Building Blocks (TBB)
Intel Thread Building Blocks (TBB) MCZA020-13 - Programação Paralela Emilio Francesquini e.francesquini@ufabc.edu.br 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Disclaimer
Leia maisLinguagem 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
Leia maisProcessamento Paralelo Utilizando GPU
Processamento Paralelo Utilizando GPU Universidade Estadual de Santa Cruz Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Evalero Orellana Cronograma Breve introdução sobre processamento paralelo
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1
ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1 Éder Paulo Pereira 2, Gilberto Przygoda Marmitt 3, Emilio Hoffmann De Oliveira 4, Edson Luiz Padoin 5, Carlos Eduardo Das Chagas
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 maisSSC 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
Leia maisCOMPARAÇÃ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
Leia maisProgramação Paralela. Introdução
Programação Paralela Introdução Prof. Carlos Bazilio http://www.puro.uff.br/bazilio Departamento de Computação Instituto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal
Leia maisDesenvolvendo Aplicações OpenMP
5 Desenvolvendo Aplicações OpenMP And there is more to come Ruud van der Pas (Sun Microsystems) An Overview of OpenMP 3.0- (IWOMP 2009) Professores: Nicolas Maillard 1 (nicolas@inf.ufrgs.br) Márcia Cristina
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisAluno 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
Leia maisApostila de Introdução ao OpenMP
Apostila de Introdução ao OpenMP INE5645 Programação Paralela e Distribuída Prof. João Bosco M. Sobral Março de 2017 Quando você executa um programa sequencial As instruções são executadas em 1 núcleo
Leia maisParalelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)
Paralelismo de dados (execução de simultaneidade) Em métodos tradicionais de programação (processamento sequencial), uma grande quantidade de dados é processada em um único núcleo de uma CPU, enquanto
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Tópicos Conceitos Modelos multithreads Bibliotecas Opções de criação
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 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 Programação multithread Prática
Leia maisParalelização Introdução a vetorização, OpenMP e MPI
1/43 Paralelização Introdução a vetorização, OpenMP e MPI 3 OpenMP Paulo Penteado IAG / USP pp.penteado@gmail.com Esta apresentação: Arquivos do curso: Artigo relacionado: http://www.ppenteado.net/ast/pp_para_on/pp_para_on_3.pdf
Leia maisIntroduçã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: diego.pereira@ifrn.edu.br Resumo:
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,
Leia maisFundamentos 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:
Leia maisParadigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot
Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Universidade Estadual de Santa Cruz Cronograma Introdução Serial vs Processamento
Leia maisProgramação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:
Leia maisSparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?
Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto
Leia maisXV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015
XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015 Impacto das Interfaces de Programação Paralela e do Grau de Paralelismo no Consumo Energético de uma Aplicação Thayson R. Karlinski, Arthur F. Lorenzon,
Leia maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 12 CUDA Parte 3 N. Cardoso & P. Bicudo Programação em
Leia maisO Modelo Síncrono BSP para Computação Paralela
O Modelo Síncrono BSP para Computação Paralela Raphael Y. de Camargo Ricardo Andrade Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo, Brasil São Paulo,
Leia mais13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica
13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física
Leia maisIntrodução ao CUDA. Material elaborado por Davi Conte.
Introdução ao CUDA Material elaborado por Davi Conte. O objetivo deste material é que o aluno possa iniciar seus conhecimentos em programação paralela, entendendo a diferença da execução de forma sequencial
Leia maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 11 CUDA Parte 2 N. Cardoso & P. Bicudo Programação em
Leia maisERAD SP 2013. IV Escola Regional de Alto Desempenho de São Paulo. Programando para múltiplos processadores: Pthreads, OpenMP e MPI.
ERAD SP 2013 IV Escola Regional de Alto Desempenho de São Paulo São Carlos / SP Minicurso Programando para múltiplos processadores: Pthreads, OpenMP e MPI Liria Matsumoto Sato (EP/USP) e Hélio Crestana
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisFabrício Gomes Vilasbôas
Fabrício Gomes Vilasbôas Apresentação Placas Arquitetura Toolkit e Ferramentas de Debug Pensando em CUDA Programação CUDA Python Programação PyCUDA 1) Grids( padrão Globus) 2) Clusters ( padrão MPI) 3)
Leia maisMessage Passing Interface - MPI. Jorge Barbosa
Message Passing Interface - MPI Jorge Barbosa Introdução ao MPI Até ao fim dos anos 80, os fabricantes de computadores desenvolviam a sua própria biblioteca de funções para desenvolver programas paralelos.
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMANDO
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisConversão de algoritmos de processamento e análise de dados atmosféricos da linguagem C para CUDA
Conversão de algoritmos de processamento e análise de dados atmosféricos da linguagem C para CUDA Bruno Nocera Zanette - brunonzanette@gmail.com Prof. Fabiano Silva - fabiano@inf.ufpr.br Uma análise do
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 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 maisThreads. 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
Leia maisDistâncias entre vértces em um grafo. Paralelização. André de Freitas Smaira
Distâncias entre vértces em um grafo Paralelização André de Freitas Smaira 1 1 Comentários iniciais Os códigos enviados são referentes à contabilização do tempo que não inclui a escrita (esse assunto será
Leia mais5 Unidades de Processamento Gráfico GPUs
5 Unidades de Processamento Gráfico GPUs As GPUs são processadores maciçamente paralelos, com múltiplos elementos de processamento, tipicamente utilizadas como aceleradores de computação. Elas fornecem
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (2.0) (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre
Leia maisStarPU. Edênis Freindorfer Azevedo. 10 de junho de Instituto de Matemática e Estatística
Instituto de Matemática e Estatística 10 de junho de 2015 Definição Principais ideias 1. Entender o que é. 2. Entender como funciona. Definição Resumo é uma biblioteca de programação para arquiteturas
Leia maisINF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010
Sistemas Gráficos INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 2 de Agosto de 2010 W. Celes Sistemas Gráficos 1 Visualização 3D Objetivo
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 maisProgramação Concorrente e Paralela
2010.2 Objetivos princípios e técnicas de programação paralela multiprocessadores memória compartilhada troca de mensagens arquiteturas alternativas multicomputadores troca de mensagens obs: Essa troca
Leia mais