Plano de Estudos

Programação para Cluster e Multicore PCMul

Contextos

Groupo: 2_MI 2012/13 > 2º Ciclo > Parte Escolar > - > Optativas > 892_1º Sem do Mestrado em Informática

Groupo: 2_MI 2012/13 > 2º Ciclo > Parte Escolar > - > Optativas > 787_Mestrado em Informática - CTP

Groupo: 2_MI 2012/13 > 2º Ciclo > Parte Escolar > - > Optativas > 892_1º Sem do Mestrado em Informática

Groupo: 2_MI 2012/13 > 2º Ciclo > Parte Escolar > - > Optativas > 787_Mestrado em Informática - CTP

ECTS

6.0 (para cálculo da média)

Objectivos

Estudar programação concorrente com ênfase na correção e na produtividade. Aprender novas abstrações de programação para a concorrência que serão úteis para a programação de clusters de computadores multi-core. Introduzir técnicas de raciocínio sobre o comportamento e o desempenho de programas paralelos. Compreender e ser proficiente no uso de diferentes linguagens de programação e nos seus ambientes de desenvolvimento.

Programa

- O modelo de atores. - Programação com streams. - Barreiras. - A abstração Map-Reduce. - Memória transacional por software. - Os alunos irão estudar programas paralelos retirados de diferentes domínios aplicacionais. - Os alunos irão trabalhar com diversas linguagens de programação modernas, incluindo, possivelmente, as linguagens Chapel, Erlang, Go, Haskell, Scala, e Rust.

Método de Avaliação

Métodos de ensino: exposição da matéria em aulas teóricas e acompanhamento aos alunos. Avaliação: - Trabalhos escritos; - Projetos de programação; - Exame final.

Carga Horária

Carga Horária de Contacto -

Trabalho Autónomo - 119.0

Carga Total -

Bibliografia

Principal

  • Programming Rust: Fast, Safe Systems Development, Jim Blandy and Jason Orendorff, 2017.:
  •  The Go Programming Language, Alan Donovan and Brian W. Kernighan, 2016:
  • The Pragmatic Programmers, 2013. Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming, Simon Marlow. O'Reilly Media, 2013:
  • - Scientific articles. - Programming language reference manuals. - Books on the various programming languages addressed in the course, including: Programming Erlang: Software for a Concurrent World, Joe Armstrong, 2nd edition:

Secundária

Disciplinas de Execução

2019/2020 - 1 Semestre

2018/2019 - 1 Semestre