UFABC - MCZA020-13 - Programação Paralela
Primeiro Quadrimestre de 2020
Índice
Turma: DAMCZA020-13SA
Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br
1 Avisos
- EP2 adiado para dia 20/06.
- O enunciado do EP2 já está disponível.
- 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!
- Corrigidas as entradas do EP1. Já disponíveis no repositório.
- Enunciado do EP 1 disponível.
- Página colocada no ar.
2 Informações Gerais
- Turma DAMCZA020-13SA Diurno
Quarta das 10:00 às 12:00, Sala S-302-1, SemanalSexta 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 ( |
Aula ( |
|||
09:00 - 10:00 | Atendimento ( |
Aula ( |
|||
10:00 - 11:00 | Aula ( |
Atendimento ( |
|||
11:00 - 12:00 | Aula ( |
Atendimento ( |
|||
----- | |||||
18:00 - 19:00 | Atendimento ( |
||||
19:00 - 20:00 | Atendimento ( |
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
- Horários de atendimento
- Online - A qualquer horário
- Por e-mail.
Pelo discord: https://discord.gg/A5FZk7m
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.
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.
- 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.
5 Datas Importantes
Prova 1: 01/04/2020EP1: 12/04/2020+Prova 2: 11/05/2020EP2: 26/04/2020Sub: 14/05/2020EP3: 10/05/2020Rec.: 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.
6 Listas de Exercícios
7 Exercícios Programas
- EP1 - MPI - Eternity
EP2 - PThreadsEP3 - OpenMPOs antigos EPs 2 e 3 deram vez a um único novo EP2 unificado- EP2 - Sokoban (PThreads e OpenMP)
8 Aulas
8.1 Aulas presenciais
Sem | Aula | Data | Assunto | Referências | Material |
---|---|---|---|---|---|
1ª | 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 | |
2ª | 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 | ||
3ª | 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 | |
4ª | 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 | |
5ª | 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
- A playlist contendo todos os vídeos da disciplina está aqui: https://www.youtube.com/playlist?list=PLR2tpXhN7CHckZTqYxEfmZ4Z5Tha2Y41W
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 |
9 Critério de Avaliação
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.
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*}
10 Recursos Online
- Oferecimentos anteriores de MCZA020-13 - Programação Paralela
- Disciplina MAC5742 - Introdução à Computação Paralela e Distribuída e MAC0219 - Programação Concorrente e Paralela - Material do professor Alfredo Goldman da USP
- Disciplina MO644/MC970 Introdução à Programação Paralela - Material do Professor Guido Araújo da Unicamp
- Disciplina CMPT851: Parallel Programming for Scientific Computing - Notas de aula do Professor Raymond J. Spiteri da University of Saskatchewan
11 Bibliografia
11.1 Básica
Os principais textos utilizados neste curso serão o PP e o RR.
[PP]
- Peter Pacheco. An Introduction to Parallel Programming. Second Edition.
- Link Biblioteca: http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=13315
[RR]
- Thomas Rauber, Gudula Rünger. Parallel Programming: For Multicore and Cluster Systems. Second Edition
- Link Biblioteca: http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=87487
- O PDF do livro pode ser baixado diretamente (gratuitamente) daqui:
http://dx.doi.org/10.1007/978-3-642-37801-0
- Atenção! Para baixar gratuitamente você deve fazer o download a partir da rede UFABC
11.2 Complementar
Para nos aprofundarmos em alguns dos assuntos dados em aula, ocasionalmente faremos referências aos seguintes livros:
[GGKK]
- Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar. Introduction to parallel computing. Second Edition.
- Link Biblioteca: http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=6678
[SR]
- Seyed H. Roosta Parallel processing and parallel algorithms : theory and computation.
- Link Biblioteca: http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=9568
Última atualização: 2020-06-01 19:21
Emacs 26.3 (Org-mode 9.3.6)