UFABC - MCZA020-13 - Programação Paralela
Primeiro Quadrimestre de 2019
Índice
Turma: NAMCZA020-13SA
Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br
Avisos
- Notas finais (incluíndo Rec.) divulgadas.
↑ novidades
- Sala da prova de recuperação: A-113-0
- A prova de recuperação será no dia 10/06/2019 das 19:00 às 21:00. Sala A-113-0.
- Notas finais disponíveis! A data da Rec. será divulgada aqui em breve. Fiquem atentos!
- Todos os interessados poderão fazer a sub. Assim que as notas da P2 forem liberadas vocês terão alguns dias para me avisar se querem que sub seja corrigida ou não. Na dúvida, portanto, faça a sub.
- Link incorreto para a P2 de 2018 foi corrigido.
- P1 disponíveis. Notas da
- 4 e 5 disponíveis. Listas
prof.emilio.ufabc@gmail.com
Excepcionalmente o atendimento hoje será feito
online. Você poderá me encontrar no Google Hangouts no seguinte
endereço: - adiado para 21/04. Projeto 1
- Projeto 2 online. Enunciado do
- Código Fractal paralelo que divida as tarefas por faixas de linhas e não por linhas até o início da aula de 11/04. Conforme anunciado na aula de 04/04, os alunos que não leram as instruções da prova para ganhar meio ponto poderão fazê-lo ao entregar por e-mail uma implementação alternativa do
- Atenção: A data da prova 1 foi adiada para dia 01/04/2019.
- sistema de issues do projeto de programação adicionado. Ache sua equipe! Link para o
- Projeto 1 disponível Enunciado do
- listas de exercício 1, 2, e 3. Também foram colocadas as provas do oferecimento anterior da disciplina. Adicionadas
- Atenção: Devido aos transtornos causados pelas chuvas a aula de hoje foi cancelada. Retomamos as atividades dia 14/03/2019.
- Página online
Informações Gerais
Aulas Teóricas
- Segundas das 19:00 às 21:00, Sala S-311-2
- Quintas das 21:00 às 23:00, Sala S-006-0
Atendimento
- Presencial
- Horários de atendimento
- Nos horários listados abaixo não é preciso confirmar ou marcar, apenas apareça! :-)
- Terça-feira, das 18:00 às 20:00, Sala 531-2.
- Sexta-feira, das 16:00 às 18: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.
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/03/2019→ 01/04/2019 - Prova 2 - 07/05/2019
- Prova Substitutiva - 10/05/2019
- Prova de Recuperação - A definir (Q2 2019)
- Projeto 1 -
14/04/2019→ 21/04/2019 - Projeto 2 - 05/05/2019
Lista de Exercícios
Projetos de Programação
- Projeto 1 - Crivo de Eratóstenes
- Prazo:
14/04/2019→ 21/04/2019 - Utilize o sistema de issues em https://github.com/ufabc-bcc/2019.Q1.PP.Projeto1.MPI/issues/ para tirar dúvidas, discutir o enunciado, encontrar colegas para sua equipe, … Não esqueça de assinar as notificações!
- Prazo:
- Projeto 2 - Sokoban
- Prazo 05/05/2019
- Utilize o sistema de issues em https://github.com/ufabc-bcc/2019.Q1.PP.Projeto2.Sokoban/issues para tirar dúvidas, discutir o enunciado, encontrar colegas para sua equipe, … Não esqueça de assinar as notificações!
Aulas
Sem | Data | Assunto | Referências | Material | |
---|---|---|---|---|---|
1ª | 11/02 - Aula 1 | Apresentação do curso; Programação paralela: introdução e motivação | [PP] Cp. 1; [GGKK] Cp. 1 | Apresentação do curso; Introdução | |
14/02 - Aula 2 | Arquitetura de Computadores Paralelos Pt. 1 | [PP] Cp. 2; [RR] Cp. 2; [GGKK] Cp. 2 | Introdução Arquitetura | ||
2ª | 18/02 - Aula 3 | Arquitetura de Computadores Paralelos Pt. 2 | [PP] Cp. 2; [RR] Cp. 2; [GGKK] Cp. 2 | Introdução Arquitetura | |
21/02 - Aula 4 | Arquitetura de Computadores Paralelos Pt. 3 | Fontes comuns de perda de desempenho - Código Aula | |||
3ª | 25/02 - Aula 5 | Modelos de Programação Paralela | [PP] Cp. 2; [RR] Cp. 3, 4; [GGKK] Cp. 3, 4, 5 | Software Paralelo; Código completo do livro | |
28/02 - Aula 6 | Análise de Desempenho | [PP] Cp. 2; [RR] Cp. 3, 4; [GGKK] Cp. 3, 4, 5 | Software Paralelo; Código medição de tempo | ||
4ª | 04/03 - Carnaval | Não haverá aula. Reposição 7/5. | |||
07/03 - Aula 7 | MPI Pt. 1 | [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 | Prog. para Memória Distribuída | ||
5ª | 11/03 - Aula 8 | Não haverá aula devido aos transtornos ocasionados pelas chuvas | |||
14/03 - Aula 9 | MPI Pt. 2 | [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 | Prog. para Memória Distribuída; Código completo do livro | ||
6ª | 18/03 - Aula 10 | MPI Pt. 3 | [PP] Cp. 3; [RR] Cp. 5; [GGKK] Cp. 6 | Prog. para Memória Distribuída; Código completo do livro | |
21/03 - Aula 11 | Modelo de Atores | Modelo de Atores; Código | |||
7ª | 25/03 - Aula 12 | Pthreads Pt. 1 | [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 | Pthreads | |
28/03 - Aula 13 | Pthreads Pt. 2 | [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 | Pthreads | ||
8ª | 01/04 - Aula 14 | Prova 1 | |||
04/04 - Aula 15 | Pthreads Pt. 3 | [PP] Cp. 4; [RR] Cp. 6; [GGKK] Cp. 7 | Pthreads; Código Fractal | ||
9ª | 08/04 - Feriado Municipal SA | Não haverá aula. Reposição 10/5. | |||
11/04 - Aula 16 | Pthreads Prática | Código - Eternity II | |||
10ª | 15/04 - Aula 17 | OpenMP Pt. 1 | [PP] Cp. 5; [RR] Cp. 6 | OpenMP (Uma versão incompleta dos slides traduzida pelo Prof. Guido Araújo da Unicamp está disponível aqui) | |
18/04 - Aula 18 | OpenMP Pt. 2 | [PP] Cp. 5; [RR] Cp. 6 | OpenMP (Uma versão incompleta dos slides traduzida pelo Prof. Guido Araújo da Unicamp está disponível aqui) | ||
11ª | 22/04 - Aula 19 | Memória Transacional | Memória transacional | ||
25/04 - Aula 20 | Intel Thread Building Blocks | Intel TBB | |||
12ª | 29/04 - Aula 21 | MapReduce | MapReduce | ||
02/05 - Aula 22 | Revisão Para Prova 2 | [PP] Cp. 6 | O problema dos N-corpos | ||
13ª | 07/05 - Aula 23 - Reposição da aula de Seg. 04/03 Terça 19h00 Sala S-311-2 | Prova 2 | |||
10/05 - Aula 24 - Reposição da aula de Seg. 08/04 Sexta 19h00 Sala S-311-2 | Prova Sub |
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 principais, uma referente à teoria e outra a projetos práticos. Considere:
- \(N_F\) é a nota final;
- \(N_{\text{Pr}}\) é a nota das provas;
- \(N_{\text{Pj}}\) é a nota dos projetos.
A nota final (\(N_F\)) será determinada pela média harmônica ponderada de \(N_{\text{Pr}}\) e \(N_{\text{Pj}}\) com pesos 3 e 2 respectivamente:
\begin{equation*} N_F = \frac{5}{\frac{3}{\max\{0.1, N_{\text{Pr}}\}} + \frac{2}{\max\{0.1, N_{\text{Pj}}\}}} \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*}O gráfico abaixo mostra a relação entre \(N_{\text{Pr}}\) e \(N_{\text{Pj}}\) e os conceitos:
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*}Notas
Recursos Online
- Oferecimento anterior de MCZA020-13 - Programação Paralela (2018.Q3)
- 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
Bibliografia
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
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: 2019-06-30 14:48
Emacs 26.2 (Org-mode 9.2.4)