STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha
-
Upload
halla-guerrero -
Category
Documents
-
view
26 -
download
0
description
Transcript of STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha
![Page 1: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/1.jpg)
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
![Page 2: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/2.jpg)
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
![Page 3: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/3.jpg)
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
![Page 4: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/4.jpg)
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
![Page 5: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/5.jpg)
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
![Page 6: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/6.jpg)
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
![Page 7: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/7.jpg)
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
![Page 8: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/8.jpg)
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
![Page 9: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/9.jpg)
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
![Page 10: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/10.jpg)
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
![Page 11: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/11.jpg)
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
![Page 12: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/12.jpg)
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
![Page 13: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/13.jpg)
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
![Page 14: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/14.jpg)
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
![Page 15: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/15.jpg)
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
?
?
?
![Page 16: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/16.jpg)
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
?
?
?
?
?
![Page 17: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/17.jpg)
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.
![Page 18: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/18.jpg)
Ó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.
![Page 19: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/19.jpg)
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
![Page 20: STACKPAR: Um Simulador Paralelo de Sistemas de Memória baseado em Algoritmos de Pilha](https://reader036.fdocumentos.tips/reader036/viewer/2022072110/5681324d550346895d98c5e8/html5/thumbnails/20.jpg)
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