• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
10
0
0

Texto

(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

(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.

(3)

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 - Middleware para suporte a componentes

distribuídos

.Net Remoting (em C#) Java RMI 5 - Programação concorrente em linguagens

orientadas ao objecto Threads em C#/ Java 6 aplicações concorrentes/distribuídas/paralelas - Metodologias de desenvolvimento de Desenvolvimento de algoritmos em C# + Remoting / Java 7 - Medição e optimização de desempenho Análise de algoritmos em C# +

Remoting / Java 8-10 - Desenvolvimento de aplicações paralelas

baseadas em passagem de mensagens

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

(4)

Futuro da Arquitectura de Computadores

TOP 500 (os mais potentes computadores do mundo www.top500.org)

Rank Manufacturer

Computer/Procs RRpeakmax

Installation Site

Country/Year Computer Family Computer Type

1 NEC

Earth-Simulator/ 5120 35860.0040960.00 Earth Simulator Center

Japan/2002 NEC Vector SX6 2 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 7727.00

10240.00 Los Alamos National Laboratory

USA/2002 Compaq AlphaServer Al.Se.-Cluster 3 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 7727.00 10240.00

Los Alamos National Laboratory

USA/2002

Compaq AlphaServer

Al.Se.-Cluster

4 IBM

ASCI White, SP Power3 375 MHz/ 8192

7226.00

12288.00 Lawrence Livermore National Laboratory

USA/2000

IBM SP

SP Power3 375 MHz high node

5 Linux NetworX

MCR Linux Cluster Xeon 2.4 GHz - Quadrics/ 2304

5694.00

11060.00 Lawrence Livermore National Laboratory

USA/2002

NOW - Intel

NOW Cluster - Intel

... ... ... ... ...

7 Hewlett-Packard

AlphaServer SC ES45/1 GHz/ 2560

3980.00

5120.00 Commissariat a l'Energie Atomique

France/2001

Compaq AlphaServer

Al.Se.-Cluster

... ... ... ... ...

161 IBM

SP Power3 375 MHz/ 380 393.00 570.00 EDINFORPortugal/2002 IBM SP SP Power3 375 MHz

Evolução versus revolução

• Ênfase de API (programação deste tipo de arquitecturas

C a ches M e mór ia Vi rt ual RIS C SIMD Mic ro p ro g ra ma ção Ti m e shar ed CC-UMA CC-NUMA No t-CC-NUMA Passagem de M ensagens Evolução Revolução VLIW ( EPIC ) GRID/Inter n e t Pip e lin in g Super e scal a ridade

Uma revolução obriga à alteração da forma de pensar dos programadores

Os processadores actuais

exploram paralelismo ao nível da instrução de forma transparente

Multi-threading

Processos comunicantes ILP

(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:

• 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 Instrução 2 Instrução 1 Instrução 0

128 bits

Tem

-plat

e

Opcode PR REG REG REG

40 bits

(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:

Super-escalar Multi-processador (2 vias) Hyper-Threading Unidade

Funcional

• 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.)

1 2 3 1 2 3 1 2 3 1 2 3

Ciclos de reló

(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

(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

Cache Processor Cache Processor Cache Processor Single bus Memory 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

Network Cache Processor Cache Processor Cache Processor Memory Memory Memory

(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 - 2002)

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?

CPU Processador Relógio Freq. Memória Máxima Comunicação Nodos de nodosMáximo

8 Athlon MP 1800+ 1533 MHz 16 GB 250 MB/s, 5us (2,0 Gbit/s) 2-way 4

(10)

Arquitecturas Paralelas

GRID (continuação)

• Tecnologias para desenvolvimento de aplicações para a GRID

Referências

Documentos relacionados

• Standard para a passagem de mensagens que surgiu do esforço de várias entidades para tornar as aplicações paralelas mais portáveis. • Baseado num modelo SPMD (o mesmo

Diferente de outros sistemas para execução remota, RMI permite que qualquer objeto JAVA seja utilizado;... Arquitetura Java

Para cada plataforma em que se pretende executar um programa em Java é necessário um “motor de execução” designado por Java Virtual Machine

Java software for your computer, or the Java Runtime Environment, is also referred to as the Java Runtime, Runtime Environment, Runtime, JRE, Java Virtual Machine, Virtual Machine,

Para reduzir o consumo de energia eléctrica, água ou gás, não use o aparelho em vazio ou em condições que comprometam o rendimento máximo (por ex. portas ou tampas abertas, etc.);

ARRUELA DE PRESSÃO M16 PARAFUSO SEXT. M16X45 GRUPO CHAPA FIXAÇÃO PARAFUSO SEXT. M16X40 CHAPA LIMPADORA RODA ROLAMENTO 6206-2 RS RODA SUBSOLADOR TAMPA DE PROTEÇÃO DA RODA ARRUELA

NECESIDADES DE SALUD DEMANDA POR SERVICIOS DE ATENCION DE SALUD DETERMINANTES DE SALUD CARACTERISTICAS RELACIONADAS CON EL SISTEMA DE SALUD DETERMINANTES Y

Neste caso, embora possam existir nestes locais, forrageiras de alta qualidade, como o capim-de-capivara (Hymenachne amplexicaulis), a disponibilidade de recursos forrageiros vai