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)
2004/05
João
Luís Sobral (Prof. Auxiliar) - Docente responsável pela leccionação teórico e
teórico-prática
Telefone: extensão 4439 (253 604439) ou 4459 (Laboratório de Investigação de
Arq. de Computadores)
Horário de atendimento: segunda-feira 14:00-16:00; quarta-feira 14:00-16:00;
quinta-feira 14:00-16:00
As recentes evoluções nos sistemas
de computação possibilitaram, por um lado a larga difusão de sistemas com
vários processadores, 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 cada vez mais uma aptidão indispensável. Recorde-se que a
recente versão do ambiente de desenvolvimento da Microsoft inclui uma nova linguagem
(C#) que possibilita o desenvolvimento de aplicações com múltiplas
actividades concorrentes e que já inclui suporte para comunicação entre
entidades remotas (.net Remoting) sem recurso a bibliotecas externas.
Os
conceitos básicos do paralelismo na organização e estrutura dos computadores
foram já adquiridos, 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.
I.
Arquitectura dos sistemas de computação: sistemas de memória
partilhada 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 Hammer e
Intel Xeon). Análise de redes de comunicação de elevado desempenho. Clusters
de máquinas.
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).
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
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
acetados.
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:
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.