faculdade de informática - pucrs linux em máquinas paralelas prof. avelino francisco zorzo...
TRANSCRIPT
Facu
ldad
e de
Info
rmát
ica
- PU
CR
S
Linux em Máquinas Paralelas
Prof. Avelino Francisco [email protected]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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...
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)
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)
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)
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)
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;...
}
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
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
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()
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)
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
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