Arquitectura de Sistemas
Paralelos e Distribuídos
Ago/2007
0. Introdução
Paulo Marques
Dep. Eng. Informática – Universidade de Coimbra
[email protected]
Docentes

Prof. Paulo Marques



Prof. Luís Silva



Dep. Eng. Informática, Univ. Coimbra
[email protected]
Dep. Eng. Informática, Univ. Coimbra
[email protected]
Página web da disciplina:

http://pmarques.dei.uc.pt/index.php/ASPD
2
Introdução – Grandes Desafios Computacionais

Existem problemas que não se conseguem resolver com
computadores normais






Desenvolvimento de drogas para combater doenças
(e.g. HIV, Malária)
Simulação de modelos climatéricos
Simulação e previsão de tremores de terra
Física planetária e exploração espacial
Desenvolvimento de circuitos electrónicos
Estado de arsenais nucleares
3
Abordagens

Tenho um programa que demora 7 dias a executar. Este
tempo é demasiado longo para que o programa me seja
útil. Como é que o consigo fazer correr num dia?
1.
Trabalhando de forma mais inteligente
(i.e. usando algoritmos melhores)
2.
Trabalhando mais rapidamente
(i.e. comprando um processador/memória mais rápido)
3.
Dividindo o trabalho
(i.e. colocando vários processadores/computadores a trabalhar)
4
O que vamos fazer?

Nesta cadeira estamos interessados na 3ª abordagem:

Dividir o trabalho por vários processadores/computadores!


Não queremos perder demasiado tempo a pensar numa solução
mais rápida ou gastar demasiado $$$ numa máquina maior/mais
rápida.
Porquê?





Pode não ser possível encontrar algoritmos mais rápidos
Máquinas mais rápidas são tipicamente muito caras
Existem muitos computadores disponíveis nas instituições
(especialmente à noite)
Existem empresas que vendem tempo de processamento
Usar diversos processadores permite resolver problemas
maiores!
5
Motivação

“Usar diversos processadores permite resolver
problemas maiores”?!

“9 mulheres não conseguem ter um bebé num mês, mas
conseguem ter 9 bebés em 9 meses”
(Forma informal de exprimir a lei de Gustafson-Barsis)

O que isto quer dizer é que existe uma quantidade imensa de
paralelismo disponível quando se tentam resolver problemas
maiores.
Embora uma tarefa individual possa não correr mais rápido, é
possível resolver várias simultaneamente gastando o mesmo
tempo.

6
BlueGene/L – O Computador Mais Rápido do Mundo




360 TFLOPS
65,536 Dual-Processor
Nodes
32TB de RAM
Linux SLES
7
TOP 500 (www.top500.org)
8
Com custos mais baixos…
9
Um pequeno vídeo…
10
Plano

Agosto






Arquitecturas e hardware de sistemas de alto desempenho
Aspectos quantitativos do desenvolvimento de aplicações
paralelas (Lei de Amdal e Lei de Gustafson-Barsis)
Modelos de programação de sistemas de alto desempenho
Estratégias básicas para paralelização de aplicações
Programação em memória partilhada com OpenMP
Fevereiro




Programação paramétrica usando Condor
Programação de sistemas de memória distribuída: MPI
Sistemas de computação Grid
Sistemas de ficheiros distribuídos e paralelos
11
Avaliação


Duas frequências (70%)
Dois trabalhos práticos (20%)



Um trabalho de pesquisa (10%)


(Agosto) Programação com OpenMP
(Fevereiro) Programação com MPI
(Agosto) Relatório sobre um tema de computação concorrente/paralela
Frequências
1ª Frequência:
2ª Frequência:

Quinta-feira, 9 de Agosto
Fevereiro
Trabalhos Práticos
Trabalho de Pesquisa: Sábado, 10 de Agosto
(início imediato)
1º Trabalho: Sexta-feira, 31 de Agosto
(início do trabalho no final desta semana)
2º Trabalho: Fevereiro
12
Trabalho de Pesquisa

Possíveis Tópicos:

Grid Computing: O que é, como funciona?
Cluster Computing: O que é, como funciona?
Os mais poderosos computadores do mundo
Utilização de placas gráficas para computação paralela
Utilização de consolas de jogos para computação paralela

Poderão sugerir um tópico







Grupos de dois alunos
Relatório escrito, com cerca de 5-10 páginas
CUIDADO com o plágio


Não podem copiar-e-colar frases da internet, directamente
Atribuir sempre as referências aos autores
13
Bibliografia

Slides da Disciplina

“Parallel Programming: Techniques and
Applications Using Networked Workstations and
Parallel Computers”, Barry Wilkinson, Michael
Allen, C. Michael Allen, Prentice Hall, March 2004


“MPI, The Complete Reference, Vol. 1: The MPI
Core”, Marc Snir et. al., 2nd ed., September 1998
“OpenMP C/C++ Application Programming
Interface”, Version 2.0, March 2002
14
Aviso

O conteúdo dos slides utilizados nas aulas provém de
diversas fontes. Em particular:




Prof.
Prof.
Prof.
Prof.
Paulo Marques, Universidade de Coimbra
Luís Silva, Universidade de Coimbra
Filipe Araújo, Universidade de Coimbra
Patrício Domingues, Instituto Politécnico de Leiria

Outros conteúdos provêm dos recursos de seguida
indicados, assim como diversas fontes na web

Os respectivos direitos de cópia pertencem aos
respectivos autores
15
Recursos

Lawrence Livermore National Laboratory (LLNL):
(http://www.llnl.gov/computing/training/index.html)





Introduction to Parallel Computing
Message Passing Interface (MPI)
OpenMP
Edinburgh Parallel Computing Center (EPCC):
(http://www.epcc.ed.ac.uk/computing/training/document_archive/)
 Decomposing the Potentially Parallel Course
 Writing Message-Passing Parallel Programs with MPI
Intel Corporation & Purdue University:
(http://www.openmp.org/presentations/index.cgi?sc99_tutorial)

OpenMP: An API for Writing Portable SMP Application
Software, a tutorial presented at Super Computing’99
by Tim Mattson & Rudolf Eigenmann
16
Let’s Do It!
17
Download

0. Introdução - Universidade de Coimbra