Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
03870
Acrónimo :
CompAv
Ciclo :
1.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Português

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
18.0h/sem
Aula Teórico-Prática (TP) :
18.0h/sem
Aula Prática e Laboratorial (PL) :
18.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
55.0h/sem
Trabalho Autónomo :
95.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


Arquitectura de Computadores e Sistemas Operativos

Departamento / Department


Departamento de Ciências e Tecnologias da Informação

Ano letivo / Execution Year


2020/2021

Pré-requisitos / Pre-Requisites


Conhecimentos de arquitectura de computadores, algebra básica, e programação em C.

Objetivos Gerais / Objectives


O objetivo desta UC é iniciar o aluno na área de computação avançada, nomeadamente na utilização das arquitecturas paralelas actuais, centrando-se especificamente nas diferentes técnicas de programação paralela geralmente utilizadas, e na análise da implementação prática de diversos algoritmos básicos de computação científica nestas arquitecturas.

Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes


OA1. Compreender o significado de medidas de desempenho em arquitecturas paralelas e saber quantificar o ganho trazido por modificações numa arquitectura. OA2 Compreender o funcionamento e desenho das arquitecuras paralelas actuais. OA3. Saber como escrever um programa paralelo em MPI, OpenMP e CUDA. OA4. Saber como aproveitar as arquitecturas paralelas para melhorar o desempenho das operações básicas de computação científica.

Conteúdos Programáticos / Syllabus


CP1: Introdução às arquitecturas paralelas - Tipos de arquitecturas paralelas - Modelos de comunicação, e custos de comunicação - Medidas de desempenho CP2: Arquitecturas de memória partilhada - Protocolos de coerência de cache - Programação em OpenMP CP3: Arquitecturas de memória distribuída - Operações básicas de comunicação - Modelização e análise de algoritmos paralelos: Paralelismo e custos de comunicação. - Programação em MPI CP4: Arquitecturas baseadas em GPU - Introdução a GPU - Programação em CUDA CP5: Computação científica paralela - Multiplicação matriz-vector - Multiplicação matriz-matriz - Resolução de sistemas de álgebra linear - Algoritmos para análise de grafos.

Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes


Conteúdos programáticos (CP) -> Objectivos de aprendizagem (AO) CP1->OA1,OA2 CP2->OA3 CP3?OA3 CP4->OA3 CP5->OA4

Avaliação / Assessment


Aulas teóricas, e teórico-práticas (3h por semana) e práticas/laboratoriais (1h30 por semana) num total de 12 semanas de aulas. | A avaliação é periódica e consiste num trabalho realizado em grupos de dois alunos, que representa 40% da nota final, e dois testes intercalares individuais representando os restantes 60%. Existe também a opção do exame final para aqueles alunos que não superem a avaliação periódica, ou simplesmente não desejem ser avaliados de maneira periódica.

Metodologias de Ensino / Teaching methodologies


Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes


O alinhamento entre cada instrumento de avaliação e os objectivos definidos para a UC são realizados da seguinte forma: Exame: OA1 a OA4 (todos os objetivos) Laboratórios: OA1 a OA4 (todos os objetivos)

Observações / Observations


-

Bibliografia Principal / Main Bibliography


- Introduction to Parallel Computing. W.P Petersen, and P. Arbenz. Oxford Press (2004) - CUDA by example: An introduction to General-Purpose GPU programming. J. Sanders, E. Kanbrot. Addison-Wesley (2011) - Introduction to Parallel Computing. A. Grama, A. Kupta, G. Karypis, V. Kumar. Addison Wesley (2003) - Computer Organization and Design: The Hardware/software interface. D.A. Patterson, J.L. Hennessy. Morgan Kaufmann Publ. 4ª Ed. (2012)

Bibliografia Secundária / Secondary Bibliography


Material disponível na plataforma de e-learning do ISCTE-IUL (Slides, caderno de exercícios, guias do Laboratório, simuladores, compiladores/debuggers)

Data da última atualização / Last Update Date


2024-02-16