Paradigmas da Computação Paralela
Mestrado Integrado em Eng.ª Informática
2017/2018

João Luís Sobral


Programa

  • Introdução

    • Evolução das arquiteturas de computadores

    • Níveis e tipos de paralelismo

    • Paradigmas vs linguagens de programação

    • Linguagens baseadas em diretivas, extensões e bibliotecas

  • Programação baseada no paradigma de memória partilhada

    • OpenMP

    • Java "threads"

    • Modelos de consistência de memória

    • Medição de otimização de desempenho em memória partilhada

  • Programação baseada no paradigma de memória distribuída

    • Processos comunicantes (MPI)

    • Objetos distribuídos, cliente/servidor

    • Desenho de aplicações paralelas

    • Padrões comuns de computação

    • Medição e otimização de desempenho em memória partilhada

  • Programação baseada em modelos híbridos

    • Modelo híbridos MPI + OpenMP

    • Modelos de memória virtual partilhada (virtual shared memory)

    • Modelo global com partições (partitioned global address space)


Sumários

Semana 1 pdf

19-Setembro-2017, 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

Semana 2

26-Setembro-2017, 14h-17h

T: Introdução aos "clusters" de computação.

TP: Visita à infra-estrutura Search

Semana 3 pdf

03-Outubro-2017, 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

Semana4 pdf

10-Outubro-2017, 14h-17h

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

Semana 5 pdf

17-Outubro-2017, 14h-17h

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

Semana 6 pdf

24-Outubro-2017, 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.

Semana 7 pdf

31-Outubro-2017, 14h-17h

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.

Semana 8 pdf

7-Novembro-2017, 14h-17h

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.

Semana 9 pdf

14-Novembro-2017, 14h-17h

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.

Semana 10 pdf

21-Novembro-2017, 14h-17h

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

Semana 11 pdf

28-Novembro-2017, 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

Semana 12 pdf

05-Dezembro-2017, 14h-17h

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

Semana 13

12-Dezembro-2017, 14h-17h

T: Apresentação do trabalho pratico 2 (MPI).

TP: Apresentação do trabalho pratico 2 (MPI).