Universidade do Minho

Departamento de Informática

Arquitecturas Paralelas I

Licenciatura em Engenharia de Sistemas e Informática - 4ºAno (Opção T I., I - LESI)

Licenciatura em Matemática e Ciências da Computação - 5ºAno (Opção III, IV, V - LMCC)

2006/07

Docentes

Objectivos

Programa

Bibliografia

Avaliação

Sumários

Material de apoio

2005/2006

Novidades

 


Equipa docente

João Luís Sobral (Prof. Auxiliar) - Docente responsável pela leccionação teórico e teórico-prática

Telefone: extensão 4459 (Laboratório de Investigação de Arquitectura de Computadores)
Horário de atendimento: segunda-feira 14:00-17:00; quarta-feira 14:00-17:00


Resultados da aprendizagem

Com esta disciplina pretende-se que os alunos sejam capazes de desenvolver aplicações informáticas que tirem partido de máquinas constituídas por vários processadores (incluindo multi-core) e de Clusters máquinas.

 

Os alunos deverão ser capazes de conceber e implementar aplicações com vários fios de execução (i.e., concorrentes) e distribuídas por várias máquinas.

 

 


 

Introdução

 

As recentes evoluções nos sistemas de computação possibilitaram, por um lado, uma crescente difusão de sistemas com vários processadores (e.g., cores), por outro lado, a interligação de um elevado número de recursos computacionais amplamente disponíveis, que quando utilizados em conjunto, podem ser vistos como um sistema de computação de elevado desempenho e baixo custo.

A capacidade de compreensão das características destes sistemas de computação bem como o domínio dos conceitos necessários ao desenvolvimento de aplicações para este tipo de sistemas de computação é hoje uma aptidão indispensável. Um sinal evidente desta importância é o facto das linguagens mais recentes (e.g., Java, C#) incluírem suporte embutido para aplicações concorrentes e distribuídas, sem necessidade de recurso a bibliotecas externas.

Os conceitos básicos do paralelismo na organização e estrutura dos computadores foram já adquiridos em disciplinas anteriores, sendo a componente de computação de alto nível, nessas plataformas, o objecto base desta disciplina. Com esta disciplina pretende-se que os alunos adquiram competências no domínio da computação paralela em larga escala, relacionadas com o desenvolvimento de aplicações cuja execução se pretende eficiente e eficaz num número elevado de recursos computacionais. Será dada especial ênfase às questões da gestão e distribuição de carga computacional / comunicações e modelação / avaliação / optimização do desempenho das aplicações.

No final da disciplina os alunos deverão ser capazes de projectar e implementar aplicações paralelas que utilizem de forma eficiente o conjunto de máquinas.


Programa proposto (resumo) (detalhado)

I.                    Arquitectura dos sistemas de computação: sistemas de memória partilhada (incluindo multi-core) e sistemas de memória distribuída. Introdução à GRID (rede mundial de sistema de computação).

II.                  Modelos de programação paralela e linguagens: processos comunicantes e objectos activos. Distribuição de componentes pelos recursos computacionais. Análise de mecanismos de especificação de concorrência e análise do middleware necessário à execução de aplicações distribuídas por várias máquinas.

III.                Projecto de aplicações paralelas. Gestão eficiente da distribuição de componentes através da medição, modelação, análise e optimização do desempenho: relação custo/benefício de concorrência/paralelismo e sua quantificação (métricas); adaptação da granularidade da computação/comunicação; estratégias de distribuição da carga de dados/computação/ comunicação.

Componente prática

Análise do suporte para multiprocessamento fornecido pelos processadores mas recentes (AMD Opteron e Intel Core). Clusters de máquinas e redes de comunicação de elevado desempenho.

Análise de ambientes de programação com suporte a paralelismo: MPI (Message Passing Interface), multithreading (Java/C#), invocação remota de métodos (Java RMI e .Net remoting) e OpenMP. Desenvolvimento de pequenas aplicações.

Projecto: desenvolvimento de uma aplicação paralela de média complexidade (em C/MPI, C#/.Net ou Java RMI), análise de seu desempenho e optimização

 


Bibliografia

Aulas teóricas: serão leccionadas à base de acetatos, os quais contêm essencialmente os tópicos de cada assunto a ser analisado. No final do ano lectivo será disponibilizada uma versão completa dos acetatos.

Sessões teórico-práticas: serão acompanhadas de aulas de exposição dos conceitos práticos relevantes ao desenvolvimento dos trabalhos e respectivo guião de execução dos mesmos.

Cópias dos acetatos e dos guiões das aulas práticas serão disponibilizados em Guiões.

Bibliografia recomendada para leitura:

 


Avaliação

A disciplina de Arquitecturas Paralelas I está organizada em aulas teóricas (2h/sem) e em sessões teórico-práticas (2h/sem).

A frequência às aulas teóricas e teórico-práticas não é obrigatória, mas é recomendada. As aulas teóricas são utilizadas para se transmitirem os conceitos necessários à compreensão da matéria. O material leccionado nestas aulas é encadeado, pelo que se torna indispensável o seu regular acompanhamento.

As sessões teórico-práticas têm por objectivo aplicar os conceitos adquiridos nas teóricas.

A avaliação da disciplina efectua-se exclusivamente através de um trabalho prático.


Página mantida por João Luís Sobral
Última Modificação: 26-09-2006