UFABC - MCZA020-13 - Programação Paralela
Terceiro Quadrimestre de 2018
Índice
Turma: DAMCZA020-13SA
Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br
Avisos
- divulgadas Notas finais (incluindo a Rec.)
- disponível aqui e assim ajudar a melhorar o curso (ou o professor) em suas próximas edições. Seu feedback é muito importante para nós… Por favor, gaste 2 minutinhos para preencher o formulário
- Notas finais disponíveis (P1, P2, Proj. 1, Proj. 2)
- Avisos importantes:
- Para tirar dúvidas ou fazer vista de prova vocês podem me procurar na minha sala durante os horários de atendimento ou, em casos excepcionais, por e-mail.
- Prova de recuperação: terça-feira, dia 18/12, das 8h às 10h
- Por favor, para que eu possa imprimir um número de provas suficiente peço para aqueles que desejarem a prova de recuperação que me avisem por e-mail das suas intenções até dia 17/12 às 18h.
- A prova de recuperação pode ser feita por aqueles que ficaram com conceito final D ou F e não ultrapassaram o limite de faltas.
- Avisos importantes:
- P2 disponíveis Notas da
- Prova Substitutiva – Alunos que desejarem/precisarem fazer a prova substitutiva devem me mandar uma requisição por e-mail até no máximo dia 11/12/2018 expressando o seu interesse.
- disponível. Lista de exercícios 5
- disponível. Lista de exercícios 4
- Projeto 2 disponível. Enunciado do
- ATENÇÃO A aula de 08/11 será excepcionalmente no Laboratório 408-2 do bloco A.
- Projeto 1 no TIDIA disponível Link para envio do
- P1 disponíveis Notas da
- disponíveis Listas de exercício
- Projeto 1 disponível. Enunciado do
- Não teremos aula dia 04/10 por conta da Semana das Engenharias. Aproveitem as palestras!
- Página online
Informações Gerais
Aulas Teóricas
- Segundas das 08:00 às 10:00, semanal, Sala S-301-3
- Quintas das 10:00 às 12:00, semanal, Sala S-301-3
Atendimento
- Presencial
- Horários de atendimento
- Nos horários listados abaixo não é preciso confirmar ou marcar, apenas apareça! :-)
- Segunda-feira, das 10:00 às 12:00, Sala 531-2.
- Quarta-feira, das 13:00 às 15: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
- Por e-mail.
- Pelo fórum da disciplina (TIDIA).
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
Datas Importantes
- Prova 1 - 25/10/2018
- Prova 2 - 06/12/2018
- Prova Substitutiva - 13/12/2018
- Prova de Recuperação - 18/12/2018
- Projeto 1 -
28/10/2018\(\rightarrow\)04/11/2018\(\rightarrow\) 11/11/2018 (Hard Deadline!) - Projeto 2 - 09/12/2018
Projetos de Programação
- Projeto 1 - Crivo de Erastótenes
- Prazo:
28/10/2018\(\rightarrow\)04/11/2018\(\rightarrow\) 11/11/2018 (Hard Deadline!)
- Prazo:
- Projeto 2 - Sokoban
- Prazo: 09/12/2018
Aulas
Sem. | Data | Assunto | Referências | Material |
---|---|---|---|---|
1ª | 17/09 - Aula 01 | Apresentação do curso; Programação paralela: introdução e motivação | [PP] Cp. 1; [GGKK] Cp. 1; | Slides 01 |
20/09 - Aula 02 | Arquitetura de Computadores Pt. 1 | [PP] Cp. 2; [GGKK] Cp. 2; | Slides 02 | |
2ª | 24/09 - Aula 03 | Arquitetura de Computadores Pt. 2 | Slides 02 | |
27/09 - Aula 04 | E/S e Análise de Desempenho | Slides 02 (Código Livro) | ||
3ª | 01/10 - Aula 05 | Mão na massa! Exemplos programas com problemas de desempenho e soluçes mais comuns. | (1) Exemplos de Programas com Problemas de Desempenho; (2) Medindo o tempo | |
04/10 - Aula 06 | Semana das Engenharias - Não haverá aula | |||
4ª | 08/10 - Aula 07 | MPI Pt. 1 | [PP] Cp. 3; [GGKK] Cp. 6; | Slides 03 (Código Livro) |
11/10 - Aula 08 | MPI Pt. 2 | [PP] Cp. 3; [GGKK] Cp. 6; | Slides 03 | |
5ª | 15/10 - Aula 09 | MPI Pt. 3 | [PP] Cp. 3; [GGKK] Cp. 6; | Slides 03 |
18/10 - Aula 10 | Modelo de Atores | Superlinear Speedup; Break Amdahls Law!; Slides Atores | ||
6ª | 22/10 - Aula 11 | Map Reduce | Slides MapReduce | |
25/10 - Aula 12 | P1 | |||
7ª | 29/10 - Aula 13 | Programação em Arquiteturas com Memória Compartilhada | [PP] Cp. 4; [GGKK] Cp. 7; | Slides 04 |
01/11 - Aula 14 | Pthreads Pt. 1 | [PP] Cp. 4; [GGKK] Cp. 7; | Slides 04 | |
8ª | 05/11 - Aula 15 | Pthreads Pt. 2 | [PP] Cp. 4; [GGKK] Cp. 7; | Slides 04 |
08/11 - Aula 16 | Pthreads Pt. 3 - Aula Prática (Sala 408-2) | [PP] Cp. 4; [GGKK] Cp. 7; | Slides 04 | |
9ª | 12/11 - Aula 17 | OpenMP Pt. 1 | [PP] Cp. 5; [GGKK] Cp. 7 | Slides 05 |
15/11 - Feriado | Feriado - Proclamação da República | |||
10ª | 19/11 - Feriado | Feriado - Dia da Consciência Negra (20/11) | ||
22/11 - Aula 18 | OpenMP Pt. 2 | [PP] Cp. 5; [GGKK] Cp. 7 | Slides 05 | |
11ª | 26/11 - Aula 19 | OpenMP Pt. 3 | [PP] Cp. 5; [GGKK] Cp. 7 | Slides 05 |
29/11 - Aula 20 | Memória Transacional | Slides Memória Transacional | ||
12ª | 03/12 - Aula 21 | Thread Building Blocks | Slides Intel TBB; Código TBB | |
06/12 - Aula 22 | P2 | |||
13ª | 13/12 - Aula 23 (Reposição dia 15/11) | Sub | ||
18/12 - Aula 24 (Reposição dia 19/11) | Rec |
Notas
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.
A avaliação da disciplina será composta por duas notas, uma referente às provas e outra referente aos projetos. Considere:
- \(N_F\) é a nota final;
- \(N_{Pv}\) é a nota das provas;
- \(N_{Pj}\) é a nota dos projetos.
A nota final (\(N_F\)) será determinada da seguinte maneira:
\begin{equation*} N_F = \begin{cases} \min\{N_{Pv}, N_{Pj}\} ,& \text{se } N_{Pv} < 5 \text{ ou } N_{Pj} < 5 \\ 0.6 \cdot N_{Pv} + 0.4 \cdot N_{Pj} ,& \text{caso contrário} \end{cases} \end{equation*}O conceito final (\(C_F\)) será obtido de acordo com a equação abaixo:
\begin{equation*} C_F = \begin{cases} \textbf{O} ,& \text{se ausência total exceder 25%}\\ \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*}Provas
A nota das provas \(N_{Pv}\) será formada por duas provas \(P_1\) e \(P_2\). Todas as provas serão efetuadas em sala de aula, sem qualquer tipo de consulta.
Haverá também uma prova subsitutiva \(P_S\) que será aberta a todos os interessados, ainda que eles tenham feito tanto a \(P_1\) quanto a \(P_2\).
Atenção
A nota da \(P_S\) será utilizada obrigatoriamente em substituição à menor nota entre \(P_1\) e \(P_2\) ainda que isto diminua a nota final do aluno!
Assim, a nota de provas (\(N_{Pv}\)) será calculada conforme a seguinte fórmula:
\begin{equation*} N_{Pv} = \begin{cases} \frac{2 \cdot P_S + 3 \cdot P_2}{5} ,& \text{caso tenha feito a } P_S \text{ e } P_1 < P_2 \\ \frac{2 \cdot P_1 + 3 \cdot P_S}{5} ,& \text{caso tenha feito a } P_S \text{ e } P_2 \leq P_1 \\ \frac {2 \cdot P_1 + 3 \cdot P_2}{5} ,& \text{caso contrário} \end{cases} \end{equation*}Projetos
Teremos dois projetos durante o quadrimestre (\(\text{Pr}_1\) e \(\text{Pr}_2\)) de igual peso. Sua nota será, então, calculada pela seguinte equação:
\begin{equation*} N_{Pj} = \frac {\text{Pr}_1 + \text{Pr}_2}{2} \end{equation*}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*}Recursos Online
- 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
Bibliografia
O principal texto utilizado neste curso será o PP. Alguns assuntos tratados em aula também farão referência aos demais livros abaixo
[PP] Texto principal
- Peter Pacheco. An Introduction to Parallel Programming. Second Edition.
- 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
[GGKK]
- Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar. Introduction to parallel computing. Second Edition.
- http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=6678
Última atualização: 2018-12-19 11:14
Emacs 26.1 (Org-mode 9.1.14)