Paradigmas da Computação Paralela João Luís Sobral |
Ultima
Modificação: 15
Dez 2015
departamento de informática |
Sumários
15-Setembro-2015, 14h-17h
T: Introdução ao módulo de paradigmas de computação
paralela: resultados da aprendizagem, programa e avaliação.
TP: Apresentação do planeamento da disciplina
22- Setembro-2015, 14h-17h
T: Introdução à programação de sistemas de memória
partilhada: OpenMP.
TP: Exploração de paralelismo em OpenMP:
análise do vários construtores da linguagem
T:
Programação concorrente: Segurança e vivacidade. Programação concorrente em
linguagens orientadas ao objeto. Programação concorrente em Java. Extensões de
concorrência introduzidas em Java 5 e
Java 8.
TP:
Estudo das primitivas de programação concorrente em Java
T:
Análise do standard OpenMP 4.0: afinidade de fios de
execução, seções de vetores, dependências entre tarefas, suporte a vetorização
e a aceleradores externos.
TP:
exploração de paralelismo com OpenMP
13- Outubro-2015, 14h-17h
T: Optimização de aplicações em sistemas de memória
partilhada: análise da principais limitações à escalabilidade das aplicações
(limite de largura de banda da memória, sobrecarga de paralelismo/excesso de
sincronização, falta balanceamento da carga computacional).
TP: Otimização de programas OpenMP.
Apresentação do primeiro trabalho prático da disciplina.
T: Paradigma
de programação baseada em passagem de mensagens. Introdução ao standard MPI (Message Passing
Interface).
TP:
Codificação de algoritmos paralelos no standard MPI.
T:
“Middleware” para aplicações paralelas/distribuídas.: identificação,
comunicação e ciclo de vida das entidades. Estudo do Java RMI e .Net “remoting”. Comparação com o paradigma de passagem de
mensagens.
TP:
Análise do Java RMI, em particular a sua implementação através de passagem de
mensagens.
T:
Metodologia de desenvolvimento de aplicações paralelas: partição, identificação
de comunicação, aglomeração e mapeamento. Análise dos tipos de algoritmos paralelos
mais comuns: “heartbeat”, “master-slave”,
“divide & conquer” e “pipeline”.
TP:
Codificação de padrões comuns de computação no standard MPI.
T:
Medição e optimização do desempenho das aplicações paralelas: Modelos de
desempenho, análise da escalabilidade das aplicações
TP: Estudo
do impacto do balanceamento da carga e da sobrecarga do comunicação numa
implementação paralela do crivo de Eratóstenes
17- Novembro-2015, 14h-17h
T: Modelos de consistência de memória. Análise do
modelo do OpenMP e do Java. Sistemas de memória
partilhada distribuída (DSM).
TP: Estudo do modelo de consistência de memória do OpenMP
T:
Modelos de programação híbridos: Combinação de passagem de mensagens com
memória partihlas e “Partitioned
Global Address Space (PGAS)”.
TP:
Análise e implementação híbrida (MPI/OpenMP) do crivo de Eratóstenes
T:
Análise dos principais modelos e linguagens de computação paralelas. Discussão
segundo as categorias: nada explícito; paralelismo explícito; paralelismo e decomposição
explícita; paralelismo, decomposição e mapeamento explícitos; sincronização
explícita e tudo explícito.
TP:
Discussão da avaliação dos trabalho prático 1 (OpenMP);
discussão do trabalho pratico 2 (MPI).
Apresentação
de discussão dos trabalhos da disciplina.