OpenMP. Um método de paralelização para as linguagens Fortran, C, C++ para shared memory systems.

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

Download "OpenMP. Um método de paralelização para as linguagens Fortran, C, C++ para shared memory systems."

Transcrição

1 OpenMP Um método de paralelização para as linguagens Fortran, C, C++ para shared memory systems. Directivas para o compilador Threads Biblioteca de rotinas Variáveis de ambiente entidade que pode executar de f o r m a i n d e p e n d e n t e u m conjunto de instruções B. Chapman, G. Jost, R. van der Pas Using OpenMP, MIT Press 2008

2 OpenMP - II Multiplicação Matriz-Vector M ik V k = A i k i Paralelização segundo i

3 PROGRAM matriz_vector END PROGRAM matriz_vector IMPLICIT NONE INTEGER n, m, memstat REAL start, finish DOUBLE PRECISION, DIMENSION (:), ALLOCATABLE :: vec, a DOUBLE PRECISION, DIMENSION (:,:), ALLOCATABLE :: mat PRINT *, " M(n,m) V(m) = A(m) " PRINT *, " Valores para m, n >>>" READ(*,*) n, m SUBROUTINE mat_vect( n, m, mat, vec, x ) IMPLICIT NONE INTEGER, INTENT(IN) :: n, m DOUBLE PRECISION, DIMENSION (n,m), INTENT(IN) :: mat ALLOCATE( mat(n,m), STAT=memstat ) IF ( memstat /= 0) STOP " Erro na alocação de M " ALLOCATE( vec(m), STAT=memstat ) IF ( memstat /= 0) STOP " Erro na alocação de V " ALLOCATE( a(m), STAT=memstat ) IF ( memstat /= 0) STOP " Erro na alocação de A " PRINT *, " Inicialização da matriz M e vector V" mat = 1 vec = 1 PRINT *, " M * V" CALL CPU_TIME(start) CALL mat_vect( n, m, mat, vec, a ) CALL CPU_TIME(finish) PRINT *, " Tempo Mat*Vec = ", finish-start, seg PRINT *, " Finaliza" IF ( ALLOCATED(mat) ) DEALLOCATE( mat, STAT=memstat ) IF ( ALLOCATED(vec) ) DEALLOCATE( vec, STAT=memstat ) IF ( ALLOCATED(a) ) DEALLOCATE( a, STAT=memstat ) DOUBLE PRECISION, DIMENSION (m), INTENT(IN) :: vec DOUBLE PRECISION, DIMENSION (m), INTENT(INOUT) :: x!... Variáveis Locais INTEGER i, j DO i = 1, n x(i) = 0 DO j = 1, m x(i) = x(i) + mat(i,j)*vec(j) END SUBROUTINE mat_vect

4 SUBROUTINE mat_vect( n, m, mat, vec, x ) IMPLICIT NONE INTEGER, INTENT(IN) :: n, m DOUBLE PRECISION, DIMENSION (n,m), INTENT(IN) :: mat DOUBLE PRECISION, DIMENSION (m), INTENT(IN) :: vec #pragma omp parallel for default(none) \ DOUBLE PRECISION, DIMENSION (m), INTENT(INOUT) :: x shared(n,m,mat,vec,x) private(i,j)!... Variáveis Locais INTEGER i, j!$omp PARALLEL DO DEFAULT(none) & for( i = 1; i <= n; i++) { x(i) = 0; for( j = 1; j <= m; j++) x(i) = x(i) + mat(i,j)*vec(j) }!$OMP SHARED(n,m,mat,vec,x) PRIVATE(i,j) DO i = 1, n x(i) = 0 DO j = 1, m x(i) = x(i) + mat(i,j)*vec(j)!$omp END PARALLEL DO END SUBROUTINE mat_vect

5 !$OMP PARALLEL DO DEFAULT(none)!$OMP SHARED(n,m,mat,vec,x) PRIVATE(i,j) DO i = 1, n x(i) = 0!$OMP PARALLEL DO DEFAULT(none) &!$OMP SHARED(x,mat,vec,i) PRIVATE(j) DO j = 1, m x(i) = x(i) + mat(i,j)*vec(j)!$omp END PARALLEL DO!$OMP END PARALLEL DO &!$OMP PARALLEL DO DEFAULT(none)!$OMP SHARED(n,m,mat,vec,x) PRIVATE(i) DO i = 1, n x(i) = SUM(mat(i,:)*vec(:))!$OMP END PARALLEL DO &

6 Tempos Execução (3000 x 3000): Série: (somátorios) (SUM) Paralelo (2 Threads): (somatórios) (2 ciclos) (SUM) 0.136

7 PROGRAM pi_s USE omp_lib IMPLICIT NONE INTEGER n, i, n_threads REAL start, finish DOUBLE PRECISION w, s, x, pi DOUBLE PRECISION, PARAMETER :: ZERO = 0, ONE = 1, HALF = 0.5 DOUBLE PRECISION, EXTERNAL :: f FUNCTION f(x) IMPLICIT NONE DOUBLE PRECISION, INTENT(IN) :: x DOUBLE PRECISION f!... DOUBLE PRECISION, PARAMETER :: FOUR = 4, ONE = 1 f = FOUR / (ONE + x*x) END FUNCTION f READ(*,*) n n_threads = 1 pi = ZERO w = ONE/DBLE(n) CALL CPU_TIME(start)!$OMP PARALLEL PRIVATE(x,s)!$ n_threads = omp_get_num_threads() s = ZERO!$OMP DO DO i = 1, n x = w*( DBLE(i) - HALF) s = s + f(x)!$omp!$omp CRITICAL pi = pi + w*s!$omp END CRITICAL Cálculo Pi!$OMP END PARALLEL CALL CPU_TIME(finish) PRINT *, n, pi PRINT *, " T Exec. = ", finish-start PRINT *, " # Threads = ", n_threads END PROGRAM pi_s

8 !$OMP PARALLEL PRIVATE(x,s)!$ n_threads = omp_get_num_threads() s = ZERO!$OMP DO DO i = 1, n x = w*( DBLE(i) - HALF) s = s + f(x)!$omp!$omp CRITICAL pi = pi + w*s!$omp END CRITICAL!$OMP END PARALLEL!$OMP PARALLEL DEFAULT(none) &!$OMP SHARED(pi,w,n,n_threads) PRIVATE(i,x,s)!$ n_threads = omp_get_num_threads() s = ZERO!$OMP DO DO i = 1, n x = w*( DBLE(i) - HALF) s = s + f(x)!$omp!$omp CRITICAL pi = pi + w*s!$omp END CRITICAL!$OMP END PARALLEL!$OMP PARALLEL DEFAULT(none) &!$OMP SHARED(w,n,n_threads) PRIVATE(i,x,s), reduction(+:pi)!$ n_threads = omp_get_num_threads() s = ZERO pi = ZERO!$OMP DO DO i = 1, n x = w*( DBLE(i) - HALF) s = s + f(x)!$omp pi = pi + w*s!$omp END PARALLEL

9

10

11

12 Problema du dt = f(t, u) u(t = 0) = u 0 Procurar solução para 0 t T du dt (t) u(t + t) u(t) t u(t + t) u(t) + tf(t, u(t)) Data dependency - não há forma de paralelizar

13 Método de 2ª ordem: du dt = f(t, u(t)) u(t + t) =u(t)+ tu (t)+ 2 2 u (t) u (t + t) =u (t)+ tu (t)+ 2 2 u (t) tu (t) =u (t + t) u (t)++o( t 2 ) tu (t) =u (t) u (t t)++o( t 2 ) u(t + t) =u(t)+ tf(t, u(t)) + t [f(t, u(t)) f(t t, u(t t)] 2 u(t + t) =u(t)+ t 2 [3f(t, u(t)) f(t t, u(t t)] + O( t3 ) u(t + t) =u(t)+ t 2 [f(t, u(t)) + f(t, 2u(t) u(t t)] + O( t2 )

14 Método de 2ª ordem u n+1 = u((n + 1) t) =u n + t n+1 t n 2 [ ] f(t n,u n )+f(t n+1, 2u n u n+1 ) Cálculos Independentes Considere f(t, u) =u u 0, u 1 = u 0 + t, u n+1 = Au n + Bu n 1, A = t 2, B = t 2

15 Resolução de Sistema Linear B A B A u 0 u 1 u 2 u 3. = 0 t 0 0. (I + A)u = B u = I I + A B = B AB + A2 B

16 Ler B u = B B = AB Oportunidades de Paralelização Multiplicação Matriz Vector Soma Vectores Norma Vector u = u + B B Erro Sim Não Stop

17 Escreva o programa para resolver o problema de condições formulado usando OpenMP e efectue medidas do speedup=( Tempo Execução Paralela)/(Tempo Execução Série) e da eficiência paralela = speedup/thread. Ao executar o programa considere T = 1 e utilize valores do intervalo de tempo de 0.01 e Compare a solução numérica com a solução exacta obtida por integração directa da equação diferencial.

UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO

UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO Plano de Ensino Curso 1604B Bacharelado em Física de Materiais Ênfase Identificação Disciplina - Optativa 0004214A Física Computacional I Docente(s) Francisco Carlos Lavarda Unidade Faculdade de Ciências

Leia mais

Câmpus de Bauru Plano de Ensino Curso Ênfase Identificação Disciplina Docente(s) Unidade Departamento Créditos Carga Horária Seriação ideal

Câmpus de Bauru Plano de Ensino Curso Ênfase Identificação Disciplina Docente(s) Unidade Departamento Créditos Carga Horária Seriação ideal Curso 1605B - Bacharelado em Física de Materiais Ênfase Identificação Disciplina 0004214A - Física Computacional I Docente(s) Francisco Carlos Lavarda Unidade Faculdade de Ciências Departamento Departamento

Leia mais

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

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

Leia mais

/media/juan/c c/ l5q14.f90 Página 1 de 7 ter 11 jun :23:20-03 module implicit none character dimension allocatable real

/media/juan/c c/ l5q14.f90 Página 1 de 7 ter 11 jun :23:20-03 module implicit none character dimension allocatable real Página 1 de 7 ter 11 jun 2019 15:23:20-03 1 module revendedora 2 implicit none 3! modelo, ano de fabricação, placa, cor do veículo 4! Cada célula da matriz vai conter 20 caracteres. 5 character(20), dimension(:,:),

Leia mais

Exercícios - vetorização Escrever uma função para multiplicação de matrizes.

Exercícios - vetorização Escrever uma função para multiplicação de matrizes. Exercícios - vetorização Escrever uma função para multiplicação de matrizes. 1/15 Exemplo artificial: toda linguagem tem uma função (ou operador) para isso em alguma biblioteca (padrão ou não). Equivalente

Leia mais

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

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

Leia mais

Introdução ao Fortran 90-3

Introdução ao Fortran 90-3 Introdução ao Fortran 90-3 Departamento de Física UFPel Identificador na forma de Matriz Definição 1 Um identificador na forma de uma matriz consiste de um conjunto retangular de elementos, todos do mesmo

Leia mais

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

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

Leia mais

Programação estruturada no Fortran 90-3

Programação estruturada no Fortran 90-3 Programação estruturada no Fortran 90-3 Departamento de Física UFPel Em Fortran 90 existem dois tipos de subprogramas: Funções e Subrotinas Uma Função, quando chamada, retorna um único valor calculado

Leia mais

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

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

Leia mais

Introdução OpenMP. Nielsen Castelo Damasceno

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

Leia mais

Jorge Barbosa, FEUP-DEI 2008

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

Leia mais

Departamento de Matemática Universidade de Coimbra

Departamento de Matemática Universidade de Coimbra Departamento de Matemática Universidade de Coimbra Ano Lectivo de 200x/200(x + 1) Introdução aos Computadores e Programação Exame Tipo Duração da prova: 2h30 1. (Pergunta (teórica) simples) Diga o que

Leia mais

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

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

Leia mais

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes

Leia mais

CAP-387(2016) Tópicos Especiais em

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

Leia mais

Programação Concorrente e Paralela

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

Leia mais

1. O número de bactérias numa cultura pode ser estimado pela expressão:

1. O número de bactérias numa cultura pode ser estimado pela expressão: Funções 1. O número de bactérias numa cultura pode ser estimado pela expressão: N e kt sendo N a população inicial, k a taxa de crescimento e t o tempo de evolução. Escreva uma função para calcular o número

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal do Maranhão Curso de Química Departamento de Informática Introdução à Computação Linguagem Fortran Profa. Msc. Maria Auxiliadora Freire maria@deinf.ufma.br 1 LINGUAGEM FORTRAN FUNÇÕES

Leia mais

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

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

Leia mais

OpenMP: Variáveis de Ambiente

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

Leia mais

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

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

Leia mais

Memórias Cache em Arquiteturas Multiprocessador e Multicore

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

Leia mais

Map05 - Métodos Matriciais Computacionais Mat Álgebra Matricial Computacional Primeiro Exercicio Computacional, entregar ao Prof: 22/10/2012

Map05 - Métodos Matriciais Computacionais Mat Álgebra Matricial Computacional Primeiro Exercicio Computacional, entregar ao Prof: 22/10/2012 Mat0050 - Álgebra Matricial Computacional Primeiro Exercicio Computacional, entregar ao Prof: 22/0/202 Assunto: Normais vetoriais, BLAS e Fortran90 Objetivo: Completar estudo dirigido que não pode ser

Leia mais

Introdução ao Fortran 90. Aula 3

Introdução ao Fortran 90. Aula 3 Introdução ao Fortran 90 Aula 3 Usando vetores e matrizes Definição Uma matriz ou vetor consiste de um conjunto retangular de elementos, todos do mesmo tipo e espécie do tipo. Uma matriz ou vetor é um

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Processamento Paralelo

Processamento Paralelo Processamento Paralelo Apresentação do Curso Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br

Leia mais

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

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

Leia mais

Introdução ao fortran 90 - Aula 1

Introdução ao fortran 90 - Aula 1 Introdução ao fortran 90 - Aula 1 Departamento de Física UFPel 1954-1957: The IBM Mathematical Formula Translating System John W. Backus da IBM: Fortran I: alternativa à linguagem assembler para a programação

Leia mais

Conceitos Introdutórios sobre a Linguagem FORTRAN

Conceitos Introdutórios sobre a Linguagem FORTRAN Conceitos Introdutórios sobre a Linguagem FORTRAN Caracteres válidos Caracteres alfabéticos: A,a Z,z (não é Case sensitive ) Caracteres numéricos: 0-9 Caracteres especiais: branco. ; : + - / etc Constantes

Leia mais

Construtores de Sicronização em OpenMP

Construtores de Sicronização em OpenMP Construtores de Sicronização em OpenMP Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br

Leia mais

OpenMP. Aleardo Manacero Jr.

OpenMP. 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 mais

Programação estruturada no Fortran 90-1

Programação estruturada no Fortran 90-1 Programação estruturada no Fortran 90-1 Departamento de Física UFPel Programação estruturada: unidades de programa A programação estruturada em Fortran 90 implica no uso de unidades de programa, do tipo:

Leia mais

Introdução ao OpenMP

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

Leia mais

Para saber se o pacote está disponível nos repositórios, abra um terminal e digite (use o comando abaixo):

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

Introdução ao OpenMP

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

Leia mais

Introdução ao FORTRAN 90. Aula 4

Introdução ao FORTRAN 90. Aula 4 Introdução ao FORTRAN 90 Aula 4 Usados quando o programa contém estruturas complexas e com estruturas contendo conjuntos de instruções repetidas. O conjunto de instruções repetidas não se enquadra em uma

Leia mais

Paralela e Distribuída. Memória Paralela com o OpenMP

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

Uma fórmula de recorrência para o cá/cu/o dos coeficientes dos polinómios Hen(x)

Uma fórmula de recorrência para o cá/cu/o dos coeficientes dos polinómios Hen(x) GAZETA DE MATEMATIÇA 17 Uma fórmula de recorrência para o cá/cu/o dos coeficientes dos polinómios Hen(x) por Rui João Baptista Soarei Um sistema de polinómios P n (x) de grau ti diz-se ortogonal no intervalo

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 17 de novembro de 2011 Aula Prática Instalação Fortran sudo apt-get install

Leia mais

Exercícios - vetorização Escrever uma função para multiplicação de matrizes.

Exercícios - vetorização Escrever uma função para multiplicação de matrizes. Exercícios - vetorização Escrever uma função para multiplicação de matrizes. 1/10 Exemplo artificial: toda linguagem tem uma função (ou operador) para isso em alguma biblioteca (padrão ou não). Equivalente

Leia mais

Introdução ao OpenMP

Introduçã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 mais

Programação em FORTRAN III. João Manuel R. S. Tavares

Programação em FORTRAN III. João Manuel R. S. Tavares Programação em FORTRAN III João Manuel R. S. Tavares Array versus Variáveis Simples Uma variável simples é utilizada para guardar um único valor; Uma variável do tipo array é utilizada para representar

Leia mais

Programação em Paralelo OpenMP

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

Leia mais

GEO764 - Programação avançada em Geofísica. Exemplo em Fortran 90. Estilo de programação. Formato livre do programa. FORTRAN 90: Aula n o 1 Elementos

GEO764 - Programação avançada em Geofísica. Exemplo em Fortran 90. Estilo de programação. Formato livre do programa. FORTRAN 90: Aula n o 1 Elementos GEO764 - Programação avançada em Geofísica FORTRAN 90: Aula n o 1 Elementos Exemplo em Fortran 90 MODULE Triangle_Operations IMPLICIT NONE CONTAINS FUNCTION Area(x,y,z) REAL :: Area! tipo da função REAL,

Leia mais

Análise Numérica. Trabalho Prático 1 Decomposição LU e Integração Numérica

Análise Numérica. Trabalho Prático 1 Decomposição LU e Integração Numérica Universidade Federal de Minas Gerais Departamento de Ciência da Computação Análise Numérica Trabalho Prático 1 Decomposição LU e Integração Numérica Professor: Frederico Ferreira Campos Filho Alunos: Bruno

Leia mais

Paralela e Distribuída. com o MPI e o OpenMP

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

Leia mais

Capítulo 19. DERIVADAS E INTEGRAIS NUMÉRICAS

Capítulo 19. DERIVADAS E INTEGRAIS NUMÉRICAS Capítulo 19. DERIVADAS E INTEGRAIS NUMÉRICAS OBJETIVOS DO CAPÍTULO Calcular derivadas numéricas com quatro tipos de aproximações numéricas do método de diferenças finitas: UDS, DDS, CDS-2 e CDS-4. Calcular

Leia mais

Introdução ao Fortran 90-1

Introdução ao Fortran 90-1 Introdução ao Fortran 90-1 Departamento de Física UFPel Definição de Programa em Fortran 90 Programa ou Código-fonte Programa ou código-fonte é um conjunto de instruções, também chamadas de comandos, escritas

Leia mais

Capítulo 10. MATRIZES

Capítulo 10. MATRIZES Capítulo 10. MATRIZES OBJETIVOS DO CAPÍTULO Conceitos de: conjunto multidimensional (matriz), ciclo implícito, ciclo duplo Comandos do FORTRAN: DIMENSION(:,:), MATMUL 10.1 programa10a.f90 Para inicializar

Leia mais

OpenMP. Adaptado do Material do Calebe de Paula Bianchini

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

Leia mais

Processamento de Matrizes

Processamento de Matrizes Capítulo 6 Processamento de Matrizes A definição e o processamento de matrizes e vetores sempre foi um recurso presente em todas as linguagens de programação, inclusive no Fortran 77. Uma novidade importante

Leia mais

Técnicas de Paralelização

Técnicas de Paralelização Técnicas de Paralelização 2 Particionar e dividir para conquistar Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson &

Leia mais

Programação com Funções. Subprogramas do tipo Função

Programação com Funções. Subprogramas do tipo Função Programação com Funções Problemas complexos divididos em subproblemas Subprogramas funções (function) subrotinas (subroutine) Fortran contém funções intrínsecas, ou de biblioteca. Exemplos de funções intrínsecas:

Leia mais

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

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

Leia mais

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

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

Leia mais

Matheus S. Serpa, Vinícius G. Pinto, Philippe O. A. Navaux Contato: INTEL MODERN CODE PARTNER

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: msserpa@inf.ufrgs.br

Leia mais

DD3IMP (FINITE ELEMENT SOLVER) THE CHALLENGE OF COMPUTATIONAL PERFORMANCE IMPROVEMENT THROUGH HPC

DD3IMP (FINITE ELEMENT SOLVER) THE CHALLENGE OF COMPUTATIONAL PERFORMANCE IMPROVEMENT THROUGH HPC DD3IMP (FINITE ELEMENT SOLVER) THE CHALLENGE OF COMPUTATIONAL PERFORMANCE IMPROVEMENT THROUGH HPC J.L. ALVES CT2M, UNIVERSIDADE DO MINHO CEMUC, UNIVERSIDADE DE COIMBRA MEI, 19 NOVEMBRO DE 2013 VAMOS POR

Leia mais

Trabalho Prático. CI316 Programação Paralela Prof. Daniel Weingaertner

Trabalho Prático. CI316 Programação Paralela Prof. Daniel Weingaertner Trabalho Prático CI316 Programação Paralela Prof. Daniel Weingaertner Equações Diferencias Parciais Método de Jacobi Método de Gaus-Seidel Red-Black Gaus-Seidel Trabalho Prático Equações Diferenciais Parciais

Leia mais

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos Modularidade Objetivos: Introduzir noções básicas de modularidade Funções e procedimentos Motivação É muito difícil manter um código quando ele tende a ser grande (com muitas linhas) É preciso organizar

Leia mais

Apostila de Fortran. É uma pseudo-linguagem a qual oferece recursos para que o programador possa codificar e testar os seus algoritmos.

Apostila de Fortran. É uma pseudo-linguagem a qual oferece recursos para que o programador possa codificar e testar os seus algoritmos. Apostila de Fortran Fortran Uma das linguagens de programação mais velhas, o FORTRAN foi desenvolvido por uma equipe de programadores conduzida por John Backus na IBM, e foi primeiramente publicada em

Leia mais

Programação em MATLAB

Programação em MATLAB Programação em MATLAB Estruturas de Repetição Ciclo FOR Ciclos FOR encadeados Pré-alocação de variáveis Combinar ciclos FOR com a instrução IF Instituto Superior Técnico, Dep. de Engenharia Mecânica -

Leia mais

Introdução ao Fortran 90-1

Introdução ao Fortran 90-1 Introdução ao Fortran 90-1 Departamento de Física UFPel Definição de Programa em Fortran 90 Programa ou Código-fonte Programa ou código-fonte é um conjunto de instruções, também chamadas de comandos, escritas

Leia mais

In I t n rto r d o u d ç u ão ã o à à Com o pu p t u a t ç a ão ã Linguagem Fortran! " 1

In I t n rto r d o u d ç u ão ã o à à Com o pu p t u a t ç a ão ã Linguagem Fortran!  1 Introdução à Computação Linguagem Fortran! " 1 ESTRUTURA DE CONTROLE DECISÃO SE / CASO; 2 ESTRUTURA DE CONTROLE Operadores Relacionais Símbolo Significado Fortran = Igual - Equal to.eq. Diferente - Not

Leia mais

Programação em Memória Partilhada com o OpenMP

Programaçã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 mais

Introdução ao Fortran 90-4

Introdução ao Fortran 90-4 Introdução ao Fortran 90-4 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

Introdução ao Scilab 3.0 Parte 3

Introdução ao Scilab 3.0 Parte 3 Introdução ao Scilab 3.0 Parte 3 Paulo S. Motta Pires pmotta@dca.ufrn.br Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte NATAL - RN Paulo Motta (DCA-UFRN)

Leia mais

PROGRAMAÇÃO. Programação paralela com o OpenMP Em paralelo

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

Leia mais

Introdução à Programação Aula prática Nº O número de bactérias numa cultura pode ser estimado pela expressão:

Introdução à Programação Aula prática Nº O número de bactérias numa cultura pode ser estimado pela expressão: Funções 1. O número de bactérias numa cultura pode ser estimado pela expressão: N e kt sendo N a população inicial, k a taxa de crescimento e t o tempo de evolução. Escreva uma função para calcular o número

Leia mais

Tópicos. Integração espacial. Desafios de HPC + FEA: Método dos Elementos Finitos. Terão os nubentes FEA e HPC uma vida longa e feliz (na UMinho)?

Tópicos. Integração espacial. Desafios de HPC + FEA: Método dos Elementos Finitos. Terão os nubentes FEA e HPC uma vida longa e feliz (na UMinho)? Terão os nubentes FEA e HP uma vida longa e feliz (na UMinho)? Exemplos FEA e desafios HP Luís Alves Departamento de Engenharia Mecânica Escola de Engenharia Universidade do Minho 16 de Outubro de 2012

Leia mais

Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores

Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores Emanuel Estrada Uma variável LOGICAL pode somente

Leia mais

Introdução à programação paralela em Fortran usando OpenMP e MPI

Introduçã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 mais

Programação estruturada no Fortran 90-2

Programação estruturada no Fortran 90-2 Programação estruturada no Fortran 90-2 Departamento de Física UFPel Faça um programa em Fortran 90 que calcule o valor do cos-seno de x através da série abaixo, co-seno(x) = 1 x2 2! + x4 4! x6 6! + x8

Leia mais

Introdução ao Fortran 90-3

Introdução ao Fortran 90-3 Introdução ao Fortran 90-3 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

Paralelismo em Computadores com Tecnologia Multicore

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

Leia mais

Relatório Trabalho 1 Programação Paralela

Relatório Trabalho 1 Programação Paralela Relatório Trabalho 1 Programação Paralela Gustavo Rissetti 1 Rodrigo Exterckötter Tjäder 1 1 Acadêmicos do Curso de Ciência da Computação Universidade Federal de Santa Maria (UFSM) {rissetti,tjader@inf.ufsm.br

Leia mais

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA) Objectivos Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA) Vantagens da programação Eficiência em operações repetitivas Melhor clarividência na decomposição

Leia mais

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA RELATÓRIO TÉCNICO CIENTÍFICO Período: Outubro/2015 a

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo

Leia mais

Exercícios de Fixação Aula 09

Exercícios de Fixação Aula 09 Disciplina: TCC-0.0 Prog. de Computadores III Professor: Leandro Augusto Frata Fernandes Turma: E- Data: / / Exercícios de Fixação Aula 0. Construa um algoritmo (pseudocódigo e fluxograma) que receba o

Leia mais

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

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

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável

Leia mais

Vetores, Matrizes e Gráficos

Vetores, Matrizes e Gráficos Programação de Computadores I UFOP DECOM 2013 2 Aula prática 3 Vetores, Matrizes e Gráficos Resumo Nesta aula você irá utilizar vetores para resolver diversos tipos de problemas. Para expressar a solução

Leia mais

Medida de desempenho

Medida de desempenho Medida de desempenho Aceleração (Speedup) = (Tempo em 1 CPU) / (Tempo em p CPUs) O que devemos comparar? Programa paralelo em 1 CPU? Programa equivalente sequencial? Melhor programa sequencial? Fator de

Leia mais

Matemática Computacional - 2 o ano LEMat e MEQ

Matemática Computacional - 2 o ano LEMat e MEQ Instituto Superior Técnico Departamento de Matemática Secção de Matemática Aplicada e Análise Numérica Matemática Computacional - o ano LEMat e MEQ Exame/Teste - 5 de Fevereiro de - Parte I (h3m). Considere

Leia mais

MATRIZES. 1) Faça um programa em Fortran que recebe como parâmetro uma matriz A (nxn) de números reais. Esse programa deve informar

MATRIZES. 1) Faça um programa em Fortran que recebe como parâmetro uma matriz A (nxn) de números reais. Esse programa deve informar MATRIZES 1) Faça um programa em Fortran que recebe como parâmetro uma matriz A (nxn) de números reais. Esse programa deve informar (a) a soma dos elementos da coluna n (b) a soma dos elementos da diagonal

Leia mais

Testes Formativos de Computação Numérica e Simbólica

Testes Formativos de Computação Numérica e Simbólica Testes Formativos de Computação Numérica e Simbólica Os testes formativos e 2 consistem em exercícios de aplicação dos vários algoritmos que compõem a matéria da disciplina. O teste formativo 3 consiste

Leia mais

ÍNDICE PARTE I INTRODUÇÃO... 6

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

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:

Leia mais

Exercícios de Fixação Introdução ao FORTRAN

Exercícios de Fixação Introdução ao FORTRAN 1 Exercícios de Fixação Introdução ao FORTRAN 1. Converta os algoritmos dos seguintes exercícios de fixação associados ao conjunto de slides 4 para código fonte FORTRAN. Compile e execute os programas.

Leia mais

OpenMP: Uma Introdução

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

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

O USO DA BIBLIOTECA LAPACK

O USO DA BIBLIOTECA LAPACK ............................................ Rua dos Andradas, 1614 Santa Maria/RS CEP: 97010-032 Fone: (55)3220-1200 Área de Ciências Tecnológicas FSC210 Linguagem de Programação Científica Turma 27941

Leia mais

Prática 10 - Funções

Prática 10 - Funções Programação de Computadores I UFOP DECOM June 9, 2016 Prática 10 - Funções Abstract Nesta aula prática você vai aprender a definir e usar funções em um programa. Contents 1 Funções 1 1.1 Definição e chamada

Leia mais

Aquecimento. program math2 integer:: x,num1 write(*,*)"digite dois números read(*,*) x,num1 write(*,*)"a soma é",x+y end program math2

Aquecimento. program math2 integer:: x,num1 write(*,*)digite dois números read(*,*) x,num1 write(*,*)a soma é,x+y end program math2 Aquecimento program math2 integer:: x,num1 write(*,*)"digite dois números read(*,*) x,num1 write(*,*)"a soma é",x+y end program math2 Aquecimento 2 Sabendo que a temperatura pode ser escrita em graus Centígrados

Leia mais

Introdução à Computação - FORTRAN

Introdução à Computação - FORTRAN Universidade Federal do Maranhão Departamento de Informática Notas de Aula arlos Eduardo Portela Serra de astro 1 Ficha 12 FORTRAN FORMULA TRANSLATION Linguagem algébrica, cujas regras e estruturas são

Leia mais

Desenvolvendo Aplicações OpenMP

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

Algoritmos e Estruturas de Dados. Grupo 1

Algoritmos e Estruturas de Dados. Grupo 1 Licenciatura em Engenharia Electrotécnica e de Computadores Algoritmos e Estruturas de Dados Trabalho prático P1B 2003/04 2 o semestre Efectue as tarefas de programação descritas abaixo, usando a linguagem

Leia mais

VARIÁVEIS INDEXADAS VETORES E MATRIZES

VARIÁVEIS INDEXADAS VETORES E MATRIZES VARIÁVEIS INDEXADAS VETORES E MATRIZES Auxiliadora Freire Slide 1 CONJUNTOS E VARIÁVEIS INDEXADAS Nome associado ao conjunto Cada elemento do conjunto é referenciado pelo índice Vetores unidimensional

Leia mais