faculdade de informática - pucrs linux em máquinas paralelas prof. avelino francisco zorzo...

35
Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo [email protected]

Upload: lucas-gabriel-espirito-santo-vidal

Post on 07-Apr-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

Facu

ldad

e de

Info

rmát

ica

- PU

CR

S

Linux em Máquinas Paralelas

Prof. Avelino Francisco [email protected]

Page 2: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

2

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Conteúdo

Hardware - SMP e NUMALinux 2.6Escalonador O(1)Conclusão

Page 3: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

3

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

SMP e NUMA

Page 4: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

4

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Hardware

- Taxonomia de hardware (Flynn 1972)- SISD: single instruction single data

- computadores com um processador- SIMD: single instruction multiple data

- array de processadores (alguns supercomputadores)- MISD: multiple instruction single data

- não existe (?)- MIMD: multiple instruction multiple data

- um conjunto de processadores independentes, cada um com seu contador de programa, conjunto de instruções e dados

Page 5: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

5

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Classe SISD

- Single Instruction Single Data- Um único fluxo de instruções- Um único fluxo de dados- Arquiteturas tradicionais

Page 6: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

6

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Classe MISD

- Multiple Instruction SIngle Data- Múltiplos fluxos de instruções- Um único fluxo de dados- Ainda sem implementação

Page 7: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

7

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Classe SIMD

- Single Instruction Multiple Data- Um único fluxo de instruções- Múltiplos fluxos de dados- Execução síncrona- Arquiteturas Array

Page 8: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

8

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Classe MIMD

- Multiple Instruction Multiple Data- Múltiplos fluxos de instruções- Múltiplos fluxos de dados- Vários programas sobre vários dados- Arquiteturas Paralelas Modernas

Page 9: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

9

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

MIMD

ComputadoresParalelos e Distribuídos

Multicomputadores(memória privada)

Multiprocessadores(memória compartilhada

SwitchedBarramentoSwitchedBarramento

MIMD

Sequent, Encore Ultracomputer, RP3 Estações deTrabalho

Transputer, hypercube

Fortemente acoplado Fracamente acoplado

Page 10: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

10

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

MIMD

- Multiprocessadores baseado em barramento

cache

CPU

cache

CPU

cache

CPU Memória

Page 11: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

11

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

MIMD

- Multiprocessadores baseado em switch

C

C

C

C

M MMM

Memórias

CPUs

crossbar switch

M

M

M

M

C

C

C

C

omega switching network

Page 12: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

12

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

MIMD

- Multicomputadores em barramento

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

Page 13: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

13

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

MIMD

- Multicomputadores com switch

gridhypercube

Page 14: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

14

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Tipo de Acesso à Memória

- Multiprocessadores- SMP- NUMA

Page 15: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

15

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

- SMP - Symetric Multi- Processing- Memória centralizada (mesma distância de todos os processadores)- Custo único de acesso- Preciso tratar coerência das caches

Tipo de Acesso à Memória

Page 16: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

16

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

- NUMA- Non Uniform Memory Access- Único espaço de endereçamento- Memória distribuída (distâncias diferentes)- Custo não uniforme de acesso à memória

Tipo de Acesso à Memória

Page 17: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

17

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

- NORMA- non-remote memory access- Apenas acesso local à memória- Clusters/Grids

Tipo de Acesso à Memória

Page 18: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

18

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux 2.6

Page 19: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

19

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux 2.6

- História - 1.0 em 1994 suporte para máquinas com um só processador- 1.2 1995 com suporte para diferentes arquiteturas (Alpha, Sparc, ...)- 2.0 1996 com suporte para máquinas SMP- 2.5 escalonador O(1) e suporte para máquinas NUMA- 2.6 2003 melhorias no suporte para máquinas NUMA

- Direções- Em sistemas embarcados- Hyperthreading- Em máquinas SMP/NUMA

Page 20: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

20

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux para sistemas embarcados

- Linux para equipamentos de redes- Linux para micro-controladores- Diversas limitações de hardware

- Exemplo, sem MMU (memory management unit)- Pode ser um problema para sistemas multi-usuários, mas não para PDAs ou dispositivos dedicados

Page 21: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

21

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux com hyperthreading

- Hyperthreading- possibilidade de mascarar um processador como sendo dois ou mais processadores (Pentium IV)

- Melhora performance- Complica o escalonamento de processos- Linux passa a ter a noção de processador virtual

Page 22: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

22

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux para máquinas SMP ou NUMA

- Linux para máquinas SMP tem um conjunto de processadores acessando um único banco de memória

- Aumento no número de processadores causa contenção no acesso à memória

- Em máquinas NUMA este problema é resolvido, pois para alguns processadores a memória está mais perto do que para outros

- Linux foi modificado para suportar este tipo de arquitetura

Page 23: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

23

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux com NUMA

- Uma API foi desenvolvida para indicar a topologia da máquina que está sendo utilizada

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Page 24: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

24

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux com NUMA

- Espaços entre os blocos de memórias- Kernel tem que ser capaz de lidar com memória não-contígua

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

CPU

Memória Local

0-100 500-1000 3000-1000...

Page 25: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

25

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Linux para SMP ou NUMA

- Com diversos processadores, o escalonador do Linux pode escolher diversos processos para executar ao mesmo tempo

- Até a versão 2.4 o escalonador colocava todos os processos em uma única fila de processos

- A partir da versão 2.5 foi incluído um novo escalonador no kernel do Linux: O(1)

Page 26: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

26

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

Page 27: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

27

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- Escalonamento:- Um único processador: o escalonador é responsável por dar a impressão que diversos processos executam ao mesmo tempo- Processos executando ou esperando para executar- Escolher o próximo processo que irá executar é fundamental

- Linux possui escalonamento preemptivo (fatia de tempo)- Termos comuns:

- IO-bound vs. CPU-bound- Prioridade de processo (>IO-bound) (<CPU-bound)- Fatia de tempo (<IO-bound) (>CPU-bound)

Page 28: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

28

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- Algoritmo de escalonamento encontra-se em kernel/sched.c- Nova versão a partir da versão 2.5- Objetivos:

- implementar um algoritmo O(1): terminar em tempo constante independente do número de processos- escalabilidade em máquinas SMP: filas individuais- melhorar afinidade de CPU- migrar processos de uma fila para outra: balanceamento- escalonar tarefas interativas imediatamente- justo (todos rodam)

Page 29: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

29

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- Fila de processos (uma para cada processador - locking)

struct runqueue {spinlock_t lock;unsigned long nr_running;unsigned long nr_switches;unsigned long expired_timestamp;...struct task_struct *curr;...struct prio_array *active;struct prio_array *expired;...

}

Page 30: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

30

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- O(1) é atingido através dos arrays de prioridade- lista de processos aptos a serem executados por nível de prioridade- bitmap de prioridade- expired vs. active

- bitmap é utilizado para descobrir qual processo de mais alta prioridade deve ser executado

- bitmap é de tamanho fixo- busca de qual fila se encontra o processo é constante

Page 31: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

31

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- Balanceamento de carga- quando fila vazia - a cada milisegundo (sistema ocioso)- a cada 200 milisegundos

- Sistemas com um único processador, balanceamento não usado- Como funciona:

- encontra a fila mais carregada- de qual array retira um processo (expired array)- procura o processo de mais alta prioridade- verifica se processo não está executando, não tem afinidade de CPU (sched_setaffinity()), não está cache hot- repete até ficar com as filas balanceadas

Page 32: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

32

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1)

- Preempção de processos (TASK_RUNNING)- Fatia de tempo dinâmica (recalcular)- Recalcular prioridade dependendo do uso do processador ou de IO- Chamadas de sistema (exemplos):

- nice()- prioridade- sched_rr_get_interval()- sched_setaffinity()

Page 33: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

33

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Escalonador O(1) para NUMA

- Escalonador para SMP- executar processo no mesmo processador

- Escalonador para NUMA- executar no mesmo nó- exemplo, executar um programa em um processador longe do nó onde ele se encontra pode aumentar cerca de 30% no tempo de execução (NEC AzusA Itanium)

Page 34: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

34

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Conclusão

Page 35: Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf.pucrs.br

35

Facu

ldad

e de

Info

rmát

ica

- PU

CR

SA

velin

o F.

Zor

zo

5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004.

Conclusão

- Quantos processadores na máquina?- SMP ou NUMA?- Quais as vantagens de usar NUMA?- Alternativas a NUMA? Clusters?- Fabricantes de máquinas NUMA: HP, IBM, Compaq, SGI- Escalabilidade do Linux nestas máquinas?- Mais informações: www.gelato.org- Cooperação com HP Brasil

- Clusters: www.cpad.pucrs.br- Escalabilidade do sistema Linux: www.inf.pucrs.br/~peso