| Designação | Código | Curso | Regime | Regente |
|---|
Opção I - Computação Paralela | 16806 [ME95ME9500000097] | Mestrado em Inteligência Artificial [MIA] | S1 | João Luís Ferreira Sobral |
Objetivos | Os conteúdos programáticos abordam os aspetos mais relevantes da computação paralela, incluindo os modelos, metodologias e técnicas de otimização de desempenho mais relevantes. Estes conteúdos programáticos estão organizados por forma a que os alunos possam, progressivamente, obter as competências pretendias. Inicialmente são abordadas as questões relativas à computação “sequencial”, sendo posteriormente abordadas as questões relacionadas com exploração eficiente de paralelismo. Deste modo, os conteúdos programáticos permitem aos estudantes obterem as competências pretendidas.
|
Programa | 1. Análise da arquitetura de processadores genéricos, ao nível do ILP (Instruction Level Parallelism) e de outras formas de paralelismo (SIMD/vetorial) e na hierarquia de memória. 2. Análise e avaliação de sistemas de computação paralelos de memória partilhada 3. Programação baseada no paradigma de memória partilhada 4. Medição de otimização de desempenho em memória partilhada, análise do impacto da granularidade do paralelismo e estratégias de distribuição de cargas computacionais 5. Projeto de aplicações e análise crítica do desempenho de paralelas contendo algoritmos paralelos típicos
|
Bibliografia | Computer Organization and Design: The Hardware/Software Interface, David Patterson and John Hennessy, 5th Ed., Morgan Kaufmann, 2013. Structured Parallel Programming Patterns for Efficient Computation, Michael McCool, Arch D. Robison and James Reinders, Morgan Kaufmann, 2012. Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, McGraw-Hill Education, 2003. Designing and Programming Parallel Programs: Concepts and Tools for Parallel Software Engineering, Ian Foster, Addison-Wesley, 1995.
|
Resultados da aprendizagem | - Avaliar sistemas computacionais, e respetivas unidades de computação, com especial ênfase em arquiteturas paralelas com memória partilhada e processamento vetorial. - Caracterizar os principais paradigmas e linguagens de programação paralela com memória partilhada - Utilizar ferramentas para medição do traço/perfil de execução para identificar as principais limitações no desempenho de aplicações. - Analisar a eficiência da execução de aplicações paralelas em arquiteturas com memória partilhada
|
Método de avaliação | A avaliação é realizada através de um teste escrito (peso de 30% a 40%) e de um trabalho prático (peso 60% a 70%).
|
Funcionamento | Turno: T 1; Docente: João Luís Ferreira Sobral; Dep.: DI; Horas: DI. Turno: PL 1; Docente: Rui António Sabino Castiço Silva; Dep.: DI; Horas: DI. |