Upload
halla-guerrero
View
26
Download
0
Embed Size (px)
DESCRIPTION
STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha. Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade de São Paulo PCS - Departamento de Engenharia de Computação e Sistemas Digitais. - PowerPoint PPT Presentation
Citation preview
STACKPAR: Um Simulador Paralelo de SistemasSTACKPAR: Um Simulador Paralelo de Sistemasde Memória baseado em Algoritmos de Pilhade Memória baseado em Algoritmos de Pilha
Hugo Henrique CassettariEdson Toshimi Midorikawa
EPUSP - Escola Politécnica da Universidade de São PauloPCS - Departamento de Engenharia de Computação e Sistemas Digitais
Objetivo
• Viabilizar a execução paralela de simulações de sistemas de memória, reduzindo assim o alto tempo despendido com essa tarefa
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Escopo
• Algoritmos de Substituição de Páginas
• Algoritmos de Pilha
• Programação Paralela– Multiprocessamento– Memória Compartilhada
– Gerenciamento de Memória– Paginação
– LRU Stack– ÓTIMO Stack
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Algoritmos de Substituição de Páginas
• Estratégia utilizada pelo Sistema Operacional para retirar uma página da memória, quando necessário;
• Procura estimar, com base em algum critério, que página levará mais tempo para ser novamente acessada;
• Exemplos: Ótimo, LRU, FIFO, NRU, MRU, WS, PFF, ...
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
A B C (memória)A D C (memória)
Algoritmo Ótimo
• Algoritmo teórico, impossível de ser implementado na prática;
• “Lê” o futuro e sabe que página deve ser retirada da memória principal em caso de necessidade (falta de página);
• Exemplo:
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
A B C (memória)
Algoritmo LRU
• Algoritmo geralmente bastante eficiente;
• Least Recently Used: retira, quando necessário, a página acessada há mais tempo;
• Exemplo: D B C (memória)
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulações
• Simulação e avaliação de sistemas de memória;
• Exemplo simplificado de arquivo de traces:
Programaexecutável
Geradorde traces
arquivo de traces
Simulador
desempenhodos algoritmos
resultados
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação Simples
• Cálculo do número de faltas de páginas (page faults):
• Cálculo do produto Espaço x Tempo:
- Lê um acesso- Se a memória está cheia e não contém a página acessada
npf = npf + 1
- Lê um acesso- ExT = ExT + tamanho_memória_utilizada
Memóriatamanho disponível
npf ExT
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Algoritmos de Pilha
• Há uma classe de algoritmos de substituição de páginas que possuem a seguinte propriedade:
Onde:
• Os algoritmos de pilha exploram essa propriedade
• A classe de algoritmos inclui o Ótimo e o LRU
M(m,r) M(m+1,r)
M - Conjunto de páginas na memória principalm - tamanho da memóriar - instante (medido em número de referências acessadas)
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação com Pilha
• Cálculo do número de faltas de páginas (page faults):
• Cálculo do produto Espaço x Tempo:
- Lê um acesso- p = posição da página lida na pilha- h[p].npf = h[p].npf + 1
- Lê um acesso- para m = 1 até tamanho_máximo_memória
h[m].ExT = h[m].ExT+(m<tam_mem_utilizada?m:tam_mem_utilizada)
npf ExT
tamanho máximo
Memória em forma de pilha
Histograma (h)
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
StackPar
• Versão paralela do simulador baseado em pilha;
• Necessidade de tratar dependência de dados;
• Desenvolvido em linguagem C, utilizando pthreads;
• Trabalha com os mesmos formatos de arquivos de trace que o simulador original.
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação Paralela
npf ExT
tamanho máximo
Memória em forma de pilha
Histograma (h)Por processador
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação Paralela
Entre dois processadores
Memória
Transição
Memória
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação Paralela
A cada trinca de processadores
Memória
Transição
Memória
Transição
Memória
Dupla transição
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Simulação Paralela
• Primeiro Estágio:
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Pilha 0
Transição 1
Pilha 1
Transição 2
Pilha 2
Transição 3
Pilha 3
Dupla-transição 1
Dupla-transição 2
?
?
?
Simulação Paralela
• Segundo e Terceiro Estágios:
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Pilha 0
Transição 1
Pilha 1
Transição 2
Pilha 2
Transição 3
Pilha 3
Segundo estágio: tratamento de dependências
Terceiro estágio: cálculo do produto
espaçoXtempo
Dupla-transição 1
Dupla-transição 2
?
?
?
?
?
LRU Stack Paralelo
• Calcula o número de faltas de página e o produto espaço X tempo paralelamente.
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
LRU, rodando GZIP
050
100150200250300350400
1 2 3 4
Número de Processadores
Te
mp
o d
e E
xe
cuçã
o
Stack
StackPar
0
50
100
150
200
250
300
350
400
GZIP SEQ LUTe
mp
o d
e E
xecu
ção
(s
eg
un
do
s)
LRU Stack
LRU StackPar (2 proc.)
LRU StackPar (3 proc.)
LRU StackPar (4 proc.)
1 Proc. 2 Proc. 3 Proc. 4 Proc.
GZIP 212 346 174 115 88SEQ 350 559 281 188 144LU 22 29 15 10 7
LRU Stack StackPar
Tempos de Execução Obtidos (em segundos) (*) Testes executados em uma máquina SMP com 4 processadores Pentium II Xeon de 400 MHz e 256 MB de memória principal, sistema operacional Linux.
ÓTIMO Stack Paralelo
• Calcula o número de faltas de página da forma tradicional;• Calcula o produto espaço X tempo paralelamente.
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
0100200300400500600700800900
1000
GZIP SEQ LU
Te
mp
o d
e E
xecu
ção
(s
eg
un
do
s)
Ótimo StackÓtimo StackPar (2 proc.)Ótimo StackPar (3 proc.)Ótimo StackPar (4 proc.)
ÓTIMO, rodando GZIP
050
100150200250300350400
1 2 3 4
Número de Processadores
Te
mp
o d
e E
xe
cuçã
o
Stack
StackPar
1 Proc. 2 Proc. 3 Proc. 4 Proc.
GZIP 247 353 188 147 118SEQ 884 1115 692 574 499LU 32 44 25 18 15
Ótimo Stack StackPar
Tempos de Execução Obtidos (em segundos) (*) Testes executados em uma máquina SMP com 4 processadores Pentium II Xeon de 400 MHz e 256 MB de memória principal, sistema operacional Linux.
Trabalhos Futuros
• Verificar a viabilidade de paralelização do WS Stack;
• Desenvolver uma versão do simulador para trabalhar com memória distribuída em clusters (MPI);
• Procurar meios mais eficientes de paralelizar o Ótimo Stack.
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP
Contato
• Hugo Henrique Cassettari: [email protected]• Edson Toshimi Midorikawa: [email protected]
• ESCOLA POLITÉCNICA DA USPDepartamento de Engenharia de Computação e Sistemas DigitaisLaboratório de Arquitetura e Software BásicoAv. Prof. Luciano Gualberto, travessa 3, 158, Cidade UniversitáriaCEP: 05508-900, São Paulo-SP
IV FITEM / 2002 - StackPar: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha - EPUSP