UFABC - MCZA020-13 - Programação Paralela
Primeiro Quadrimestre de 2020

Índice

Permalink

Turma: DAMCZA020-13SA
Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br

1 Avisos

  • [2020-06-01 seg] EP2 adiado para dia 20/06.
  • [2020-05-22 sex] O enunciado do EP2 já está disponível.
  • [2020-04-21 ter] Atenção: Informações sobre como a disciplina será encaminhada durante o ECE estão disponíveis. A página toda foi atualizada para refletir essas modificações. Releia com atenção!
  • [2020-03-30 seg] Corrigidas as entradas do EP1. Já disponíveis no repositório.
  • [2020-03-13 sex] Enunciado do EP 1 disponível.
  • [2020-02-10 seg] Página colocada no ar.


div.png

2 Informações Gerais

  • Turma DAMCZA020-13SA Diurno
  • Quarta das 10:00 às 12:00, Sala S-302-1, Semanal
  • Sexta das 08:00 às 10:00, Sala S-302-1, Semanal

2.1 Atendimento

Horário Seg Ter Qua Qui Sex
08:00 - 09:00   Atendimento (Sala 531-2 online )     Aula (Sala S-302-1 online )
09:00 - 10:00   Atendimento (Sala 531-2 online )     Aula (Sala S-302-1 online )
10:00 - 11:00     Aula (Sala S-302-1 online )   Atendimento (Sala 531-2 online )
11:00 - 12:00     Aula (Sala S-302-1 online )   Atendimento (Sala 531-2 online )
-----          
18:00 - 19:00     Atendimento (Sala 531-2 online )    
19:00 - 20:00     Atendimento (Sala 531-2 online )    
  • Presencial (Será feito atendimento apenas online)
    • Horários de atendimento
      • Nos horários listados abaixo não é preciso confirmar ou marcar, apenas apareça! :-)
      • Terça-feira, das 08:00 às 10:00, Sala 531-2.
      • Quarta-feira, das 18:00 às 20:00, Sala 531-2.
      • Sexta-feira, das 10:00 às 12:00, Sala 531-2.
    • Agendado por e-mail
      • Verifique minha agenda e sugira pelo menos dois possíveis horários!
    • Em sala de aula - Após as aulas
  • Online - A qualquer horário


div.png

3 Sobre a Disciplina

MCZA020-13 - Programação Paralela

  • TPI: 4-0-4
  • Recomendação: Paradigmas de Programação

Objetivos

Apresentar aos alunos os principais conceitos de programação paralela e concorrente e as ferramentas e bibliotecas existentes para o desenvolvimento de aplicações paralelas.

Conteúdo Programático

Introdução. Modelos de arquiteturas paralelas. Paralelismo. Tipos de acessos. Organização e distribuição de tarefas. Organização e distribuição de dados. Programação Paralela.

Fonte: Projeto Pedagógico do BCC 2017


div.png

4 ECE

O ECE foi aprovado no ConsEPE. Logo, a partir de agora, os docentes e os discentes podem optar por participar nos estudos EAD. As regras do ECE podem ser vistas aqui: graduação, pós-graduação.

  • O calendário oficial foi definido pelo Anexo III.
    • Início das atividades remotas: 20/04/2020.
    • Fim das atividades remotas: 06/06/2020.

O plano de ensino atualizado pode pode ser visto aqui.

  • Videoaulas serão disponibilizadas semanalmente às quartas e sextas, neste site.
  • Teremos também atividades de acompanhamento a cada assunto. Entregas em atraso não serão aceitas. Cada atividade terá um prazo de uma semana para ser entregue.


div.png

5 Datas Importantes

  • Prova 1: 01/04/2020
  • EP1: 12/04/2020+
  • Prova 2: 11/05/2020
  • EP2: 26/04/2020
  • Sub: 14/05/2020
  • EP3: 10/05/2020
  • Rec.: Data e horário a combinar no início do Q2.
  • EP1: 03/05/2020
  • EP2: 07/06/2020 \(\to\) 20/06/2020
  • EP3: 31/05/2020
  • Prova Final: 05/06/2020 para quem escoheu fazer online, data a ser definida para os demais.
  • Prova Substitutiva: Data a ser definida
  • Rec.: Data a ser definida

Enunciados dos EPs serão disponibilizados no site da disciplina. As datas das provas final e de recuperação serão divulgadas assim que definidas conforme o Anexo III da Resolução ConsEPE Nº 239/2020.


div.png

6 Listas de Exercícios

6.1 Provas antigas


div.png

7 Exercícios Programas

  • EP1 - MPI - Eternity
  • EP2 - PThreads
  • EP3 - OpenMP Os antigos EPs 2 e 3 deram vez a um único novo EP2 unificado
  • EP2 - Sokoban (PThreads e OpenMP)


div.png

8 Aulas

8.1 Aulas presenciais

Sem Aula Data Assunto Referências Material
1 12/02 - Quarta Apresentação do curso; Programação paralela: introdução e motivação [PP] Cp. 1; [GGKK] Cp. 1 Apresentação do curso; Introdução
  2 14/02 - Sexta Arquitetura de Computadores Paralelos Pt. 1 [PP] Cp. 2; [RR] Cp. 2; [GGKK] Cp. 2 Introdução Arquitetura
3 19/02 - Quarta Arquitetura de Computadores Paralelos Pt. 2 [PP] Cp. 2; [RR] Cp. 2; [GGKK] Cp. 2 Introdução Arquitetura
  4 21/02 - Sexta Arquitetura de Computadores Paralelos Pt. 3   Fontes comuns de perda de desempenho - Código Aula
  26/02 - Quarta - Não haverá aula. Carnaval Wikipedia  
  5 28/02 - Sexta Modelos de Programação Paralela [PP] Cp. 2; [RR] Cp. 3, 4; [GGKK] Cp. 3, 4, 5 Software Paralelo; Código completo do livro
6 04/03 - Quarta Análise de Desempenho [PP] Cp. 2; [RR] Cp. 3, 4; [GGKK] Cp. 3, 4, 5 Software Paralelo; Código medição de tempo
  7 06/03 - Sexta MPI Pt. 1 [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 Prog. para Memória Distribuída
8 11/03 - Quarta MPI Pt. 2 [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 Prog. para Memória Distribuída; Código completo do livro
  9 13/03 - Sexta MPI Pt. 3 [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 Prog. para Memória Distribuída; Código completo do livro

8.2 ECE

Aula Data Assunto Referências Material
10 22/04/2020 - Qua Modelo de Atores   (1) Vídeo - Atores; (2) Slides; (3) Código;
11 24/04/2020 - Sex Pthreads Pt. 1 [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 (1) Vídeo - Intro PThreads; (2) Slides
12 29/04/2020 - Qua Pthreads Pt. 2 [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 (1) Vídeo - Prod/Cons + Semáforos; (2) Vídeo - Variáveis de Condição; (3) Vídeo - RW Locks; (4) Slides
- 01/05/2020 - Sex Não haverá aula. - Dia do trabalho    
13 06/05/2020 - Qua Pthreads Pt. 3 [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 (1) Slides; (2) Vídeo - Notas sobre False Sharing; (3) Vídeo - Thread Safety e Comentários finais; (4) Vídeo - Convertendo um Fractal Sequencial em Paralelo; (5) Código Fractal
14 08/05/2020 - Sex OpenMP Pt. 1 [PP] Cp. 5; [RR] Cp. 6 (1) Slides; (2) Vídeo 1 - Introdução ao OpenMP; (3) Vídeo 2 - Aproximação Trapezoidal em OpenMP; (4) Vídeo 3 - Reductions; (5) Vídeo 4 - OpenMP Parallel For
15 13/05/2020 - Qua OpenMP Pt. 2 [PP] Cp. 5; [RR] Cp. 6 (1) Slides; (2) Vídeo 1 - Mais sobre "parallel for" - Ordenação; (3) Vídeo 2 - A cláusula schedule
16 15/05/2020 - Sex OpenMP Pt. 3 [PP] Cp. 5; [RR] Cp. 6 (1) Slides; (2) Vídeo 1 - Produtores Consumidores; (3) Vídeo 2 - Diretivas critical e atomic; (4) Vídeo 3 - OpenMP Locks; (5) Vídeo 4 - OpenMP - False Sharing e Conclusão
17 20/05/2020 - Qua Intel Thread Building Blocks Intel TBB Docs. (1) Slides; (2) Intel Thread Building Blocks (TBB); (3) TBB - Parallel For; (4) TBB - Parallel Reduce e Outros;
18 22/05/2020 - Sex Memória Transacional   (1) Slides; (2) Introdução a Memória Transacional; (3) TM por Baixo dos Panos; (4) TM em Software/Hardware, Hello World
19 27/05/2020 - Qua Conversa com Alunos    
21 29/05/2020 - Sex N-Corpos [PP] Cp. 7 (1) Slides; (2) N-Body Simulation; (3) N-Body Simulation com OpenMP
22 03/06/2020 - Qua Simulado Prova Final    
23 05/06/2020 - Sex Prova Final    
24 A definir Prova Sub. - Local a definir    
- A definir Prova Rec. - Local a definir    


div.png

9 Critério de Avaliação

warning.png Honestidade Acadêmica

Entre outros, o código de ética da UFABC estabelece em seu artigo 25 que é eticamente inaceitável que os discentes:
I - fraudem avaliações;
II - fabriquem ou falsifiquem dados;
III - plagiem ou não creditem devidamente autoria;
IV - aceitem autoria de material academico sem participação na produção;
V - vendam ou cedam autoria de material acadêmico próprio a pessoas que não participaram da produção.

Muitos ainda têm dúvidas sobre a interpretação das regras definidas pelo Código de Ética da UFABC. Por esta razão, diversos professores elaboraram um documento (disponível aqui) com vários exemplos e esclarecendo a interpretação das regras acima. Abaixo uma versão resumida. Sempre consulte o documento completo ou converse com o seu professor em caso de dúvidas!

  • Regra 1 - Você não pode enviar para avaliação um trabalho que não seja de sua própria autoria ou que seja derivado/baseado em soluções elaboradas por outros.
  • Regra 2 - Você não pode compartilhar a sua solução com outros alunos nem pedir aos seus colegas que compartilhem as soluções deles com você.
  • Regra 3 - Nos trabalhos enviados para avaliação você deve indicar eventuais assistências que você tenha recebido.

    ATENÇÃO: todos os trabalhos enviados para avaliação poderão ser verificados por um sistema automatizado de detecção de plágio.

Qualquer violação às regras descritas acima implicará:

  • Descarte dos conceitos atribuídos a TODAS as tarefas avaliativas regulares de TODOS os envolvidos, causando assim suas reprovações automáticas com conceito F .
  • Possível denúncia à Comissão de Transgressões Disciplinares Discentes da Graduação, a qual decidirá sobre a punição adequada à violação que pode resultar em advertência, suspensão ou desligamento , de acordo com os artigos 78-82 do Regimento Geral da UFABC.
  • Possível denúncia apresentada à Comissão de Ética da UFABC, de acordo com o artigo 25 do Código de Ética da UFABC.

Atenção

Os critérios de avaliação mudaram com o ECE. Releia essa seção com atenção.

p A avaliação da disciplina será composta por duas notas principais, uma referente à teoria e outra a projetos práticos. Considere:

  • \(N_F\) é a nota final;
  • \(N_{\text{Pr}}\) é a nota da prova final;
  • \(N_{\text{E}}\) é a nota dos exercícios programas.

A nota final (\(N_F\)) será determinada pela média harmônica ponderada de \(N_{\text{Pr}}\) e \(N_{\text{E}}\) com pesos 2 e 3 respectivamente:

\begin{equation*} N_F = \frac{5}{\frac{2}{\max\{0.1, N_{\text{Pr}}\}} + \frac{3}{\max\{0.1, N_{\text{E}}\}}} \end{equation*}

O conceito final (\(C_F\)) será obtido de acordo com a equação abaixo:

\begin{equation*} C_F = \begin{cases} \textbf{F} ,& \text{se } N_F \in [0,0;5,0) \\ \textbf{D} ,& \text{se } N_F \in [5,0;6,0) \\ \textbf{C} ,& \text{se } N_F \in [6,0;7,0) \\ \textbf{B} ,& \text{se } N_F \in [7,0;8,5) \\ \textbf{A} ,& \text{se } N_F \in [8,5;10,0] \\ \end{cases} \end{equation*}

9.1 Prova Final

  • A nota da teoria será dada pela nota da prova final \(N_{\text{Pr}}\).
  • A prova será efetuada em sala de aula, sem qualquer tipo de consulta, caso as atividades presenciais sejam retomadas em período hábil. Caso contrário a prova será feita online, em ambiente, datas e horários combinados previamente com os alunos com pelo menos 10 dias de antecedência.

9.2 Exercícios Programas

Teremos 3 EPs de igual peso durante o quadrimestre. A nota dos exercícios programas \(N_{\text{E}}\) será calculada por uma média aritmética simples.

9.3 Prova Substitutiva

A prova substitutiva será aberta a todos os interessados. A sua nota, obrigatoriamente, será utilizada em substituição à nota da prova final ainda que isto diminua a nota final do aluno.

9.4 Recuperação

Conforme Resolução ConsEPE nº 182 fica assegurado a todos os alunos com \(C_F\) igual a D ou F o direito a fazer uso de mecanismos de recuperação.

A recuperação será feita através de uma prova \(P_R\), sem consulta, e a sua nota será utilizada para compor a o conceito pós-recuperação \(C_R\) conforme as equações abaixo:

\[N_R = \frac{P_R + N_F}{2}\]

Caso 1 \(C_F = D\):

\begin{equation*} C_R = \begin{cases} \textbf{C} ,& \text{se } N_R \geq 6,0 \\ \textbf{D} ,& \text{caso contrário} \end{cases} \end{equation*}

Caso 2 \(C_F = F\):

\begin{equation*} C_R = \begin{cases} \textbf{D} ,& \text{se } N_R \geq 5,0 \\ \textbf{F} ,& \text{caso contrário} \end{cases} \end{equation*}


div.png

10 Recursos Online

11 Bibliografia

11.1 Básica

Os principais textos utilizados neste curso serão o PP e o RR.

div.png

pp.jpeg [PP]

div.png

rr.jpeg [RR]

11.2 Complementar

Para nos aprofundarmos em alguns dos assuntos dados em aula, ocasionalmente faremos referências aos seguintes livros:

div.png

ggkk.jpeg [GGKK]

div.png

sr.jpeg [SR]


Última atualização: 2020-06-01 19:21
Emacs 26.3 (Org-mode 9.3.6)

Autor: Emilio Francesquini
e.francesquini@ufabc.edu.br

Criado em: 2020-06-01 seg 19:21