Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Á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
2024/2025
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 dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified 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-09-06