Arquitecturas Paralelas I Computação Paralela em Larga Escala. Introdução - PDF
Download "Arquitecturas Paralelas I Computação Paralela em Larga Escala. Introdução"
Luca Pacheco Pinho
1 Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Introdução João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Setembro 2003
2 Programa Introdução e objectivos 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. Componente Teórica I. Arquitectura dos sistemas de computação o sistemas de memória partilhada e sistemas de memória distribuída. o introdução à GRID (rede mundial de sistema de computação). II. Modelos de programação paralela e linguagens o processos comunicantes e objectos activos. o distribuição de componentes pelos recursos computacionais o mecanismos de especificação de concorrência/paralelismo III. Projecto de aplicações paralelas o gestão eficiente da distribuição de componentes através da medição, modelação, análise e optimização do desempenho o relação custo/benefício de concorrência/paralelismo e sua quantificação (métricas); o adaptação da granularidade da computação/comunicação; 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 mais recentes (AMD Hammer e Intel Xeon). Redes de comunicação de elevado desempenho. Clusters de máquinas. Análise de ambientes de programação com suporte a paralelismo: PVM (Parallel Virtual Machine), 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/PVM, C#/.Net ou Java RMI), análise de seu desempenho e optimização. Arquitecturas Paralelas I 2 João Luís Sobral 2003
3 Programa Planeamento Aula Matéria Teórica Matéria Prática 1 - Introdução às arquitecturas paralelas/grid Revisão de conceitos de programação Programação em Java 3 - Programação com componentes Componentes em Java Middleware para suporte a componentes distribuídos - Programação concorrente em linguagens orientadas ao objecto - Metodologias de desenvolvimento de aplicações concorrentes/distribuídas/paralelas 7 - Medição e optimização de desempenho Desenvolvimento de aplicações paralelas baseadas em passagem de mensagens.net Remoting (em C#) Java RMI Threads em C#/ Java Desenvolvimento de algoritmos em C# + Remoting / Java Análise de algoritmos em C# + Remoting / Java Programação em PVM (Parallel Virtual Machine) Projecto Projecto Avaliação Um trabalho prático (Projecto de uma aplicação paralela num Cluster de máquinas). Equipa Docente Luís Paulo Peixoto do Santos (Lecciona a parte de MPI) João Luís Ferreira Sobral (Docente responsável, lecciona os restantes assuntos) ext. 4439) Bibliografia G. Andrews. Multithreaded, Parallel and Distributed Programming, Addison- Wesley, I. Foster. Designing and Building Parallel Programs, Addison-Wesley, I. Rammer, Advanced.NET Remoting, A Press, Pré-requisitos Conhecimentos de C e Java Arquitecturas Paralelas I 3 João Luís Sobral 2003
4 Futuro da Arquitectura de Computadores TOP 500 (os mais potentes computadores do mundo Rank Manufacturer Computer/Procs 1 NEC Earth-Simulator/ Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ IBM ASCI White, SP Power3 375 MHz/ Linux NetworX MCR Linux Cluster Xeon 2.4 GHz - Quadrics/ 2304 R max R peak Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002 Los Alamos National Laboratory USA/2002 Lawrence Livermore National Laboratory USA/2000 Lawrence Livermore National Laboratory USA/ Hewlett-Packard AlphaServer SC ES45/1 GHz/ Commissariat a l'energie Atomique France/ IBM SP Power3 375 MHz/ EDINFOR Portugal/2002 Computer Family Computer Type NEC Vector SX6 Compaq AlphaServer Al.Se.-Cluster Compaq AlphaServer Al.Se.-Cluster IBM SP SP Power3 375 MHz high node NOW - Intel NOW Cluster - Intel Compaq AlphaServer Al.Se.-Cluster IBM SP SP Power3 375 MHz Evolução versus revolução Microprogramação Pipelining Superescalaridade Caches Timeshared Memória Virtual RISC VLIW (EPIC) CC-UMA CC-NUMA Not-CC-NUMA Passagem de Mensagens GRID/Internet SIMD Evolução ILP Multithreading Processos comunicantes Revolução Os processadores actuais exploram paralelismo ao nível da instrução de forma transparente Uma revolução obriga à alteração da forma de pensar dos programadores Ênfase de API (programação deste tipo de arquitecturas Arquitecturas Paralelas I 4 João Luís Sobral 2003
5 Futuro da Arquitectura de Computadores VLIW (Very Long Instruction Word) O escalonamento dinâmico incrementa de forma considerável a complexidade do Hardware. VLIW efectua um escalonamento estático, sendo o compilador responsável por indicar as instruções que podem ser realizadas em paralelo. => tem-se revelado um fracasso O formato de instrução indica as operações que são realizadas em paralelo por cada unidade funcional. Exemplo IA-64: 128 bits Instrução 2 Instrução 1 Instrução 0 Template Opcode PR REG REG REG bits Limitações de VLIW 1. O código gerado tende a ser de maior dimensão, porque é necessário inserir nop nos campos da instrução não preenchidos. 2. Compatibilidade de código entre gerações dos mesmo processador uma vez que tende a expor a arquitectura interna do processador 3. É mais penalizado com stalls que o escalonamento dinâmico EPIC IA-64 / Itanium 64 registos de inteiros + 64 registos FP, ambos com 64 bits 3 instruções em 128 bits (LIW?) - menos bits que VLIW clássico, produzindo código mais compacto - possibilidade de ligação entre os vários grupos de instruções Verificação de dependências em HW => compatibilidade de código Arquitecturas Paralelas I 5 João Luís Sobral 2003
6 Futuro da Arquitectura de Computadores Hyper-Threading (Intel) A adição de mais unidades funcionais nos processadores actuais não conduz a ganhos significativos de desempenho. O processador tem a capacidade de simular vários processadores (CC-NUMA) ou pode executar vários fios de execução em simultâneo. => baseia-se mais no paralelismo ao nível dos fios de execução ou dos processos e menos paralelismo ao nível da instrução. Implica um aumento de <5% de transistores por processador e pode conduzir a ganhos no desempenho até 35% (Xeon actuais, com grau 2). Os ganhos de desempenho são proporcionados por uma utilização mais eficiente dos recursos: Unidade Funcional Super-escalar Multi-processador (2 vias) Hyper-Threading Ciclos de relógio 1 processador = 2 processadores? Não porque parte dos recursos do processador não são duplicados (i.é., são divididos pelos vários fios de execução) (caches, registos internos, buffers internos, etc.) Arquitecturas Paralelas I 6 João Luís Sobral 2003
7 Futuro da Arquitectura de Computadores Hammer (AMD com 64 bits) Estende o IA-32 para 64 bits: A pipeline possui mais dois estágios (12 contra 10) que a arquitectura K7 (Athlon XP) Integra o controlador de memória do próprio chip e 2 ligações externas (Hyper Transport) para ligação a outros processadores. O Hyper Transport permite a ligação até 8 processadores sem recurso a componentes adicionais: 4 vias 8 vias A configuração multiprocessador assemelha-se mais ao tipo CC-NUMA, uma vez que cada processador possui o seu controlador de memória e a largura de banda disponível para a memória local é superior à disponibilizada pelo Hyper Transport, embora a velocidade do Hyper Transport escale com a velocidade do processador Arquitecturas Paralelas I 7 João Luís Sobral 2003
8 Arquitecturas Paralelas Memória partilhada centralizada (CC-UMA, CC-NUMA) Vários processadores partilham um barramento de acesso à memória As caches de cada processador contribuem para reduzir o tráfego no barramento e a latência dos acessos à memória um valor pode estar replicado em vários sítios => são necessários mecanismos para assegurar a coesão entre as caches dos vários processadores e a memória A largura de banda de acesso à memória é partilhada pelos vários processadores => limitação à escalabilidade deste tipo de arquitectura P ro c e s so r P r o c e s s or P r o ce ss o r C ach e Cach e C a c he S ing l e bus Mem or y I / O Conectados por uma rede de interligação (CC-NUMA, passagem de mensagens) Os sistemas interligados por um barramento tendem a limitar o número de processadores que efectivamente podem ser ligados A alternativa reside na utilização de uma rede dedicada à interligação dos vários processadores, possuindo cada processador a sua memória dedicada P ro c e s so r P r o c e s s or P r o ce ss o r C ach e Cach e C a c he M e m o ry Mem ory Me mo r y Net w o r k Arquitecturas Paralelas I 8 João Luís Sobral 2003
9 Arquitecturas Paralelas Clusters de máquinas Constituídos pode HW normal, interligados por uma rede de alta velocidade (Gbit/s com baixa latência) Cada nodo de processamento pode ser uma máquina de memória partilhada com vários processadores Cada nodo possui uma cópia do SO Alta disponibilidade: quando falha uma máquina basta substituí-la por outra Custos de administração na ordem do número de máquinas Exemplo (Cluster investigação da Universidade do Minho ) CPU 8 Processador Athlon MP Freq. Relógio 1533 MHz Memória Máxima 16 GB Comunicação 250 MB/s, 5us (2,0 Gbit/s) Nodos Máximo de nodos 2-way 4 GRID Pode ser a próxima geração da internet "A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.", Foster "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations., Foster and Al, A partilha de recursos é altamente controlada, com os fornecedores e os utilizadores dos recursos a definirem claramente o que é partilhado, que está autorizada a utilizar cada recurso e em que condições a partilha ocorre. a coordenação de recursos não deve ser centralizada (os vários recursos encontram-se em domínios diferentes) deve utilizar protocolos standard e abertos deve fornecer vários níveis, não triviais, de serviço requer novos paradigmas de programação? (os recursos dinâmicos, altamente heterogéneos e sujeitos a grandes variações de desempenho) pode tornar, a longo prazo, os supercomputadores dispensáveis? Arquitecturas Paralelas I 9 João Luís Sobral 2003
10 Arquitecturas Paralelas GRID (continuação) Tecnologias para desenvolvimento de aplicações para a GRID Exemplo de uma aplicação da GRID (Science Portal) Arquitecturas Paralelas I 10 João Luís Sobral 2003
Arquitecturas Paralelas I Computação Paralela João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://gec.di.uminho.pt/lesi/ap1 1 Computação paralela Resultados da Aprendizagem Desenvolver aplicações
Intel Pentium 4 vs Intel Itanium
Intel Pentium 4 vs Intel Itanium Tiago Manuel da Cruz Luís Instituto Superior Técnico Grupo 10 53871 tmcl@mega.ist.utl.pt João Miguel Coelho Rosado Instituto Superior Técnico Grupo 10 53929 jmcro@mega.ist.utl.pt