UFABC - MCZA020-13 - Programação Paralela
Segundo Quadrimestre de 2025
Índice
Turma: DA1MCZA020-13SA
Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br

1. Avisos
- Página colocada no ar.

2. Informações Gerais
- Turma DA1MCZA020-13SA Diurno
- Terça das 10:00 às 12:00, Sala S-214-0, Semanal
- Sexta das 08:00 às 10:00, Sala S-214-0, Semanal
2.1. Atendimento
Horário | Ter | Sex |
---|---|---|
08:00 - 09:00 | Atendimento (509-2) | Aula (S-214-0) |
09:00 - 10:00 | Atendimento (509-2) | Aula (S-214-0) |
10:00 - 11:00 | Aula (S-214-0) | Atendimento (509-2) |
11:00 - 12:00 | Aula (S-214-0) | Atendimento (509-2) |
Horários de atendimento
- Nos horários listados não é preciso confirmar ou marcar, apenas apareça! :-)
- Agendado por e-mail
- Verifique minha agenda e sugira pelo menos dois possíveis horários!
- Em sala de aula - Após as aulas

3. Sobre a Disciplina
MCZA020-13 - Programação Paralela
- TPEI: 4-0-0-4
- Recomendação:
Paradigmas de Programação\(\to\) Programação Funcional- E por transitividade: Algoritmos e Estrutura de Dados I; Programação Estruturada; Processamento da Informaçã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. Datas Importantes
- Início das aulas: 02/06/2025
- Fim das aulas: 23/08/2025
Provas:
- Prova 1: 15/07/2025
- Prova 2: 22/08/2025
- Prova Sub.: 29/08/2025
- Prova Rec.: A definir
Exercícios Programas:
- EP1:
06/07/2025\(\to\) 27/07/2025 - EP2: 03/08/2025
EP3: 31/08/2025
Documentos relevantes: Calendário Acadêmico 2025

5. Listas de Exercícios

6. Exercícios Programas
Os enunciados dos exercícios programas serão disponibilizados oportunamente.
- Os exercícios podem ser feitos em grupos de até 4 pessoas.
- Durante a avaliação o professor poderá escolher um dos integrantes para que este faça uma apresentação sobre a entrega.
- A nota de todos os integrantes do grupo será a mesma!. Ou seja, caso algum integrante não esteja colaborando, há a chance dele ser escolhido e comprometer a nota de todos. Escolha seu grupo cuidadosamente!
6.1. EP1 - MPI
Eternity II
- Enunciado (PDF)
- Link para entrega (via GitHub): https://classroom.github.com/a/5ycAWD2S
6.2. EP2 - OpenMP
Mais detalhes em breve.
6.3. EP3 - CUDA
Mais detalhes em breve.

7. Aulas
Aula | Data | Assunto | Referências | Material |
---|---|---|---|---|
S01A01 | 03/06 T | Apresentação do curso; Programação paralela: introdução e motivação | [SBC] 1; [PP] 1; [GGKK] 1 | Apresentação |
S01A02 | 06/06 S | Conceitos Básicos Pt. 1 | [SBC] 2; [PP] 2; [RR] 2; [GGKK] 2 | HPC Architecture |
S02A03 | 10/06 T | Conceitos Básicos Pt. 2 | [SBC] 2; [PP] 2; [RR] 2; [GGKK] 3 | Otimizações de Código na Prática |
S02A04 | 13/06 S | Conceitos Básicos Pt. 3 | [SBC] 2; [PP] 2; [RR] 2; [GGKK] 4 | HPC Architecture |
S03A05 | 17/06 T | Conceitos Básicos Pt. 4 | [SBC] 2; [PP] 2; [RR] 2; [GGKK] 5 | HPC Architecture |
S03A-- | 20/06 S | Corpus Christi | ||
S04A06 | 24/06 T | Análise de Desempenho | [SBC] 2; [PP] 2; [RR] 2; [GGKK] 7 | Medindo o tempo |
S04A07 | 27/06 S | MPI Pt. 1 | [SBC] 3 | |
S05A08 | 01/07 T | MPI Pt. 2 | [SBC] 4 | |
S05A09 | 04/07 S | MPI Pt. 3 | [SBC] 5 | |
S06A10 | 08/07 T | PThreads Pt. 1 | ||
S06A11 | 11/07 S | PThreads Pt. 2 | ||
S07A12 | 15/07 T | Prova 1 | ||
S07A13 | 18/07 S | OpenMP Pt. 1 | ||
S08A14 | 22/07 T | OpenMP Pt. 2 | ||
S08A15 | 25/07 S | OpenMP Pt. 3 | ||
S09A16 | 29/07 T | OpenMP Pt. 4 | ||
S09A17 | 01/08 S | CUDA Pt. 1 | ||
S10A18 | 05/08 T | CUDA Pt. 2 | ||
S10A19 | 08/08 S | CUDA Pt. 3 | ||
S10A20 | 12/08 T | CUDA Pt. 4 | ||
S11A21 | 15/08 S | CUDA Pt. 5 | ||
S12A22 | 19/08 T | Coringa | ||
S12A23 | 22/08 S | Prova 2 | ||
RepA24 | 29/08 S | Prova Substitutiva |
Confira os vídeos de um oferecimento anterior na modalidade online desta disciplina aqui: https://www.youtube.com/playlist?list=PLR2tpXhN7CHckZTqYxEfmZ4Z5Tha2Y41W Atenção,o conteúdo apresentado nestes vídeos já pode estar um pouco defasado.

8. 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.
Regulamentações relevantes:
- Código de Ética da UFABC
- Resolução ConsUni nº 63 - Regimento Geral da UFABC
8.1. Presença
A resolução CONSEPE nº 139 estabelece no seu Artigo 2º, § 4 que nas disciplinas presenciais, a frequência mínima obrigatória para aprovação é de 75% das aulas ministradas e/ou atividades realizadas. Alunos que não atingirem a frequência mínima receberão conceito O.
- Abonos de faltas: Conforme descrito no portal do MEC, na educação superior não há abono de faltas . Há, contudo, casos especiais para alunos reservistas , alunos com representação na CONAES, gestantes e em dias de guarda religiosa.
- Substituição de faltas por exercícios domiciliares: As situações em que a falta às aulas podem ser preenchidas por exercícios domiciliares são regulamentadas pelo Decreto-Lei nº 1.044, de 21 de outubro de 1969, e estendidos pela Lei nº 6.202, de 17 de abril de 1975. Nestes casos os alunos devem protocolar requerimento diretamente junto à Central de Atendimento ao Estudante da Pró-reitoria de Graduação da UFABC. A Resolução nº 25/2020 da CG dispõe o procedimento a ser seguido para o Regime de Exercícios Domiciliares na UFABC.
- Mecanismos de avaliação substitutivos:
- Atividades não presenciais: Não existe adiamento ou reposição de mecanismos de avaliação não presenciais (como, por exemplo, listas de exercícios) devido a faltas justificadas, afastamentos médicos, etc., uma vez que tais atividades tem um prazo de entrega extenso. Em particular, o Artigo 1º, da Resolução 227 do CONSEPE deixa claro que mecanismos de avaliação substitutivos só se aplicam a "avaliações presenciais".
- Atividades presenciais: No caso de ausência justificada em uma avaliação presencial (e.g., prova escrita) através de um dos comprovantes previstos na Resolução 227 do CONSEPE, o aluno terá direito a requerer uma avaliação substitutiva em uma data a ser combinada.
Regulamentações Relevantes:
- Resolução CONSEPE nº 139 - Estabelece frequência mínima de 75%
- Perguntas frequentes sobre educação superior - Secretaria de Educação Superior - MEC
- Decreto-Lei Nº 715, de 30 de julho de 1969 - Serviço militar
- Lei nº 6.202, de 17 de abril de 1975 - Atribui à estudante em estado de gestação o regime de exercícios domiciliares
- Lei Nº 13.796, de 3 de janeiro De 2019 - Define prestações alternativas à aplicação de provas e à frequência a aulas realizadas em dia de guarda religiosa
- Parecer CNE/CES 336/2000 e Parecer CNE/CES 224/2006 do Conselho Nacional De Educação sobre abono de faltas
- Decreto-Lei nº 1.044, de 21 de outubro de 1969 - Dispõe sobre tratamento excepcional para os alunos portadores das afecções que indica.
- Resolução nº 25/2020 da CG dispõe sobre procedimento a ser seguido para o Regime de Exercícios Domiciliares na UFABC.
- Resolução CONSEPE nº 227 - Estabelece os critérios para mecanismos de avaliação substitutivos
8.2. Mecanismos de Avaliação
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{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 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{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*}8.3. Provas
Serão aplicadas duas provas, de pesos 2 e 3 respectivamente. A nota \(N_{\text{Pr}}\) será dada pela sua média ponderada conforme a seguinte fórmula:
\begin{equation*} M_{\text{Pr}} = \frac{2 P_1 + 3 P_2}{5} \end{equation*}- A prova será efetuada em sala de aula, sem qualquer tipo de consulta.
8.4. 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 harmônica simples conforme a seguinte fórmula:
\begin{equation*} N_{E}= \frac{3}{\frac{1}{\max\{0.1, N_{\text{EP1}}\}} + \frac{1}{\max\{0.1, N_{\text{EP2}}\}} + \frac{1}{\max\{0.1, N_{\text{EP3}}\}} } \end{equation*}8.5. Prova Substitutiva
A prova substitutiva será aberta a todos os interessados. A sua nota, obrigatoriamente, será utilizada em substituição à menor nota dentre a P1 ou P2, ainda que isto diminua a nota final do aluno.
8.6. 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*}

9. 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
10. Bibliografia
10.1. Básica
Os principais textos utilizados neste curso serão o [SBC] e PP.
[SBC]
- Gabriel P. Silva, Calebe P. Bianchini, Evaldo B. Costa. Programação Paralela e Distribuída com MPI, OpenMP e OpenACC para computação de alto desempenho
- https://www.casadocodigo.com.br/products/livro-programacao-paralela
[PP]
- Peter Pacheco. An Introduction to Parallel Programming. Second Edition.
- Link Biblioteca: http://biblioteca.ufabc.edu.br/index.php?codigo_sophia=13315
10.2. Complementar
Para nos aprofundarmos em alguns dos assuntos dados em aula, ocasionalmente faremos referências aos seguintes livros:
[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.
- 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: 2025-07-01 09:31
Emacs 30.1 (Org-mode 9.7.11)