171 likes | 308 Views
0. Introdução. Docentes. Prof. Paulo Marques Dep. Eng. Informática, Univ. Coimbra pmarques@dei.uc.pt Prof. Luís Silva Dep. Eng. Informática, Univ. Coimbra luis@dei.uc.pt Página web da disciplina: http://pmarques.dei.uc.pt/index.php/ASPD. Introdução – Grandes Desafios Computacionais.
E N D
Docentes • Prof. Paulo Marques • Dep. Eng. Informática, Univ. Coimbra • pmarques@dei.uc.pt • Prof. Luís Silva • Dep. Eng. Informática, Univ. Coimbra • luis@dei.uc.pt • Página web da disciplina: • http://pmarques.dei.uc.pt/index.php/ASPD
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
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? • Trabalhando de forma mais inteligente(i.e. usando algoritmos melhores) • Trabalhando mais rapidamente(i.e. comprando um processador/memória mais rápido) • Dividindo o trabalho(i.e. colocando vários processadores/computadores a trabalhar)
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!
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.
BlueGene/L – O Computador Mais Rápido do Mundo • 360 TFLOPS • 65,536 Dual-ProcessorNodes • 32TB de RAM • Linux SLES
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
Avaliação • Duas frequências (70%) • Dois trabalhos práticos (20%) • (Agosto) Programação com OpenMP • (Fevereiro) Programação com MPI • Um trabalho de pesquisa (10%) • (Agosto) Relatório sobre um tema de computação concorrente/paralela • Frequências 1ª Frequência: Quinta-feira, 9 de Agosto 2ª Frequência: 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
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
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
Aviso • O conteúdo dos slides utilizados nas aulas provém de diversas fontes. Em particular: • Prof. Paulo Marques, Universidade de Coimbra • Prof. Luís Silva, Universidade de Coimbra • Prof. Filipe Araújo, Universidade de Coimbra • Prof. 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
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