Laboratório 0
- Threads
e Monitor
LEITORES x ESCRITORES
(18/03/2019)
Buffer (interface),
Buffer
(implementação),
Leitor,
Escritor,
Main (package principal)
Exemplo 1 - Leitores x Escritores (Java) (Não mostra a terminação
das threads)
Exemplo 2 - Leitores x Escritores (Java) (Cuida da terminação
das threads, implementa 1 escritor no pool e escreve e 4 leitores)
Exemplos para Escalonamento
de Threads em Diferentes Formas em
Java
Transações - O Problema da Atualização Perdida
(Sicronização com Locks)
==================================================================================================
Unidade 1 - Programação Paralela
com OpenMP
Verificando Instalação
Apresentação 1 (AULA)
Apostila Introdução ao OpenMP (AULA)
OpenMP Diretivas (Primeiras Diretivas)
Exemplo1 - Cláusula
Schedule
Exemplo2 - Cláusula
Dynamic Schedule
Exemplo3 - Cláusula
Reduction
Exemplos - Outras Diretivas
(atomic, critical, single, master, section) e Cláusula
(nowait)
Apostila
de
Treinamento OpenMP
Conceitos
em OpenMP
Conceitos de Processamento Paralelo
Introduction to OpenMP
Introdução ao OpenMP
OpenMP Tutorial
Paralelização com OpenMP
Laboratório 1:
Tarefas Práticas OpenMP
Realizar testes com exemplos
contendo
diretivas,
cláusulas e
funçoes OpenMP (as mais importantes). O ambiente
mais fácil de excutar OpenMP é Ubuntu 16.04.
Usar as seguintes
diretivas:
parallel,
for, sections, barrier, atomic, critical, master
Usar as seguintes
cláusulas:
private, shared, sheduled, reduction, nowait,
num_threads Usar as seguintes
funções:omp_set_num_threads
omp_get_thread_num
omp_get_num_threads
omp_get_wtime
Postar no Moodle um
só arquivo <.....>*.txt, contendo seus 10 exemplos testados.
Para a Prova 1, as questões serão feitas sobre as tarefas práticas.
(*)
Para_Prova_OpenMP Prova
1 (29/04/2019) Sala CTC-207
AULA OMP PRATICA 1
AULA OMP PRATICA 2
Links Didáticos:
(1)
Programação em Memória Compartilhada com o OpenMP
(Por Ricardo Rocha, DCC, Universidade do Porto)
(2)
A partir deste link
Microsoft OpenMP Directives
pode-se obter:
Microsoft
Clauses
Microsoft
Library Reference contendo
(Bibliotecas,
Tipos de
Dados,
Variáveis
de ambientes,
Funções)
Obs: Caso
estes links (2) estejam lentos via a página, procurem copiar o link e entrar
no navegador para acessá-lo.
(3)
Exemplo
OpenMP Scheduling
(4)
OpenMP-intro-v5
(5)
OpenMP by Examples
Exemplo que pode ser testado:
(a) Multiplicação de matrizes - Multiplicar duas matrizes A(NRA,
NCA) e B(NCA, NCB). Lembre que para multiplicar duas
matrizes, o número de colunas de A deve ser igual ao número de linhas de B,
e a matriz resultante de ter a dimensão (NRA, NCB),
onde NRA é o número de linhas de A e NCB é o número de colunas de B.
Consequentemente, NCA é o número de colunas de A. Você pode estudar este
código OpenMP no final do arquivo
em
OpenMP Tutorial
.
(b) Você pode sugerir
para outra tarefa de OpenMP, aproveitar sua implementação que você fez em PThreads.
Tarefas opcionais, acrescentadas ao que é obrigatório, ao final do período,
valem mais 0,5 na média final no CAGR.
Arquivo Parte A da Prova 1
Arquivo Parte B da Prova 1
=================================================================================================
Unidade 2 - Programação Paralela Heterogênea
(CPU+GPU)
(*)
Apresentação OpenCL
(apresentado em aula)
Introdução em OpenCl - Uma introdução prática
(Sua Primeira Experiência)
Calling the Kernel
List-4-8-List-4.9 -
List-4-10-List-4-11
(*)
PARALELISMO DE DADOS, PARALELISMO DE TAREFA
TÉCNICA DE PROGRAMAÇÃO PARALELA EM PIPELINING
Introdução
ao OpenCL - Douglas Adriano Augusto - LNCC - 2012
CUDA x OpenCL (Modelos de Plataforma, Memória e Programação similares)
Multiplicação de Matrizes em CUDA
OpenCL
- AMD Processor
OpenCL - The open standard for
parallel programming of heterogeneous
OpenCL - Exemplos
Interessantes
OpenCL -
Software Intel OpenCL
OpenCL precisa de placas GPUs:
Nvidia GeForce AMD Radeon
Intel GPUs
Arquiteturas Paralelas Hibridas
TAREFAS PARA AVALIAÇÃO DA UNIDADE 3
Lab
2.1 - Tarefa Teórica Lab 3
- Parte 1 (Conceitos OpenCL) (Obrigatória para os que tratarem a Unidade 3, do ponto de vista
teórico.)
Lab
2.2 - Tarefa Teórica Lab 3
- Parte 2 (Um programa CUDA simples)
CUDA
C/C++ Basics Supercomputing 2011 Tutorial - Cyril Zeller, NVIDIA Corporation
(*)
Introdução ao OpenCL - LNCC
(*)
Introduction to OpenCL™ Programming (Ver
size_t get_global_id(dimidx),
onde dimidx
= 0, 1, 2,
pg. 65)
Por exemplo,
size_t id = get_global_id(0)
__kernel void square(__global int *input, __global int *output)
{
int
id = get_global_id(0); //
retorna o
id único de um work-item global;
(0) indica a dimesão 1.
output[id] = input[id]
* input[id];
}
(*)
Explicando get_global_id(dimidx)
Paralelismo
de Dados x Paralelismo de Tarefas: Um Exemplo
OpenCL Programming Guide
Book Heterogeneus Computing wtith OpenCL
(Gaster at ali)
Livro em português sobre CUDA
PROGRAMANDO PARA PROCESSADORES PARALELOS
Por WEN-MEI W. HWU,DAVID B. KIRK 2011
(*)
OpenCL Basics
How
to Install CUDA on Ubuntu 18.04
Lab 3 -
Tarefa Prática -
Estudar e
explicar as partes de exemplos de programas CUDA. Caso você tenha condiçoes
de máquina adequada (uma placa de vídeo Nvidia) é conveniente executar o
programa CUDA. Voce pode utilizar Ubuntu. Usar um dos exemplos explicados em
Introdução a CUDA - Programando threads em
paralelo . Um
programa com o
modelo de paralelismo de
dados.
Palestra CUDA -
"
Paralelismo: Você Está Fazendo Isso Errado
"
-
Iury Krieger
(Fullstack Developer - Chaordic Systems
Palestra AMBIENTE DE PROGRAMAÇÃO PARA GAMES - Denis Coelho
PROVA 1 -
29/04/2019 (sala CTC 207)
Programação Paralela com CUDA
(computação heterogênea CPU + GPU)
=================================================================================================
Prova 1 resolvida
(2019.1)
PROVA 1 DE RECUPERAÇÃO
(Entregar de forma impressa e manuscrita (2019.1)
PROVA 2 -
Comunicação por Sockets
Prova 2 Resolvida
Prova em
branco para correção de seus erros
PROVA 2 -
Prova em branco para correção de seus erros
Prova 2 Resolvida (segunda chamada)
===============================================================
Unidade 3 - Programação Distribuida com
Hadoop
Hadoop - Conceitos e Exemplo Didático
(Texto Completo)
Hadoop - Slides Daniel Cordeiro
Questionário Hadoop - Fazer antes de iniciar a tarefa prática ! (pdf)
Questionário Hadoop - Fazer antes de iniciar a tarefa prática ! (docx)
Exemplo Didático Hadoop - Tarefa Prática
(Com links para instalação e outros conceitos e
figuras)
Big Data e a implementação de um Sistema Distribuído com Apache Hadoop
==============================================================
Slides da Palestra
Tarefa 5 (Palestra) :
Baixe o projeto, do link dado nos slides e altere o código para que o
algoritmo conte as ocorrências de 3 palavras especificadas de sua escolha.
Use um texto de 300 palavras. Ver no último link dos slides:
https://goo.gl/TNnQMv
Hadoop Wikipedia
=================================================================================================
Unidade 4 - Programação Paralela e Distribuída com
Spark
PROVA 2 - 26/06/2019-Resolvida
------------------------------------------------------------------------------------------- |