Arquitecturas Paralelas I Computação Paralela em Larga Escala. Introdução



Documentos relacionados
Arquitecturas Paralelas I. Computação Paralela. João Luís Ferreira Sobral

Paradigmas de Computação

Sistemas de Computação e Desempenho (UCE Computação Paralela Distribuída)

Computação Paralela. João Luís Ferreira Sobral

Paradigmas de Computação

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Arquitectura de Computadores II. Multiprocessadores

Microarquiteturas Avançadas

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

Arquitectura de Computadores II. Multiprocessadores

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Sistemas Operacionais

Organização e Arquitetura de Computadores I. de Computadores

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

Arquitectura de Sistemas Paralelos e Distribuídos

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

INFORMÁTICA BÁSICA AULA 02. Docente: Éberton da Silva Marinho

Ricardo Gonçalves 2013/2014. Arquitecturas Multicore

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Capítulo 8 Arquitetura de Computadores Paralelos

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

Supercomputadores dominavam o mercado

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Arquitetura de Von Neumann e os Computadores Modernos

Prof. Sandrina Correia

CPU Unidade Central de Processamento. História e progresso

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução ao Modelos de Duas Camadas Cliente Servidor

Capítulo 8. Software de Sistema

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

Arquitecturas Paralelas I. Computação Paralela. João Luís Ferreira Sobral

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Desenvolvimento Cliente-Servidor 1

Informática I. Aula 5. Aula 5-13/05/2006 1

Introdução aos Sistemas Operativos

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Organização de Computadores 2005/2006 Processamento Paralelo

7 Processamento Paralelo

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

SIS17-Arquitetura de Computadores

Programação de Sistemas

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Estrutura e funcionamento de um sistema informático

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas Computacionais II Professor Frederico Sauer

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

Edeyson Andrade Gomes

SISTEMAS DISTRIBUÍDOS

Programação de Sistemas

Programação de Sistemas

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUIDOS Ano Lectivo 2015/2016

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais

Curso de Instalação e Gestão de Redes Informáticas

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

RISC X CISC - Pipeline

Introdução à Arquitetura de Computadores

O que é Grid Computing

Introdução aos Computadores

Componente de Formação Técnica. Disciplina de

Arquitectura de Computadores II. Interface com Periféricos

Sistema de Computação

Introdução às arquiteturas paralelas e taxonomia de Flynn

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Máquinas Multiníveis

Sistemas Distribuídos. Introdução

Arquitetura de Sistemas Operativos

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Apresentação do programa e bibliografia; Regras de funcionamento e de avaliação; Organização interna de um computador

Visão do Usuário da DSM

COMPONENTES DE REDES. Fernando Albuquerque (061)

Tipos de Sistemas Distribuídos (Cluster e Grid)

Organização de Computadores 2005/2006 Processadores Intel

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Sistemas Operacionais 1/66

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

CURSO DE ENGENHARIA DE COMPUTAÇÃO Renovação de Reconhecimento pela Portaria n 123 de 09/07/12 DOU de 10/07/12 PLANO DE CURSO

Capítulo 1 Introdução

Sistemas Distribuídos

FACULDADE PITÁGORAS PRONATEC

Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware

Escola Secundária de Emídio Navarro

Arquitetura e Organização de Computadores

Transcrição:

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

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

Programa Planeamento Aula Matéria Teórica Matéria Prática 1 - Introdução às arquitecturas paralelas/grid - 2 - Revisão de conceitos de programação Programação em Java 3 - Programação com componentes Componentes em Java 4 5 6 - 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 8-10 - 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) 11-13 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) (jls@di.uminho.pt, ext. 4439) Bibliografia G. Andrews. Multithreaded, Parallel and Distributed Programming, Addison- Wesley, 2000. I. Foster. Designing and Building Parallel Programs, Addison-Wesley, 1995. I. Rammer, Advanced.NET Remoting, A Press, 2002. Pré-requisitos Conhecimentos de C e Java Arquitecturas Paralelas I 3 João Luís Sobral 2003

Futuro da Arquitectura de Computadores TOP 500 (os mais potentes computadores do mundo www.top500.org) Rank Manufacturer Computer/Procs 1 NEC Earth-Simulator/ 5120 2 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 3 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 4 IBM ASCI White, SP Power3 375 MHz/ 8192 5 Linux NetworX MCR Linux Cluster Xeon 2.4 GHz - Quadrics/ 2304 R max R peak 35860.00 40960.00 7727.00 10240.00 7727.00 10240.00 7226.00 12288.00 5694.00 11060.00 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/2002............... 7 Hewlett-Packard AlphaServer SC ES45/1 GHz/ 2560 3980.00 5120.00 Commissariat a l'energie Atomique France/2001............... 161 IBM SP Power3 375 MHz/ 380 393.00 570.00 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

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 13 6 7 7 7 40 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

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 1 2 3 1 2 3 1 2 3 1 2 3 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

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

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

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 - 2002) CPU 8 Processador Athlon MP 1800+ 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 1998. "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations., Foster and Al, 2000. 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

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