Treinamento em Análise Quantitativa &
Planejamento de Capacidade
Virgilio A. F. Almeida
DATAPREV – Rio de Janeiro 08 Dezembro de 2009 Módulo #6b Módulo #6b Projetos de ExperimentosDepartamento de Ciência da Computação Universidade Federal de Minas Gerais - UFMG
P j t d E
i
t
Projeto de Experimentos
• Introdução: cap. 16 do texto (Jain)
2k f l d ( )
• Projetos 2k fatorial: cap. 17 do texto (Jain)
• Experimentos de um-fator: cap 20 do texto • Experimentos de um fator: cap. 20 do texto
P j t E
i
t l
Projeto Experimental
The fundamental principle of science, the definition almost, is this: the sole test of the validity of any idea is experiment.
– Richard P. Feynman
No amount of experimentation can ever prove me right; a single experiment can prove me wrong.
P j t E
i
t l
Projeto Experimental
• Projeto experimental refere-se a estrutura da organização de seu experimento!
organização de seu experimento!
• Necessidade de metodologicamente cobrir fatores e níveis para obter um intervalo p
completo para os resultados experimentais desejados.
• Existem enfoques clássicos para o projeto experimental.
Avaliando Sistemas e Algoritmos
Avaliando Sistemas e Algoritmos
• Geralmente, necessita-se de projetar
e e ec ta m e pe imento com o
e executar um experimento com o
intuito de: :
demonstrar que uma nova técnica ou – demonstrar que uma nova técnica ou
conceito é viável.
– Demonstrar que um novo método é Demonstrar que um novo método é melhor que os existentes.
– Entender o impacto de vários fatores e â t d h l b l d parâmetros no desempenho global do sistema ou algoritmo.
Refrescando a memória
Existem tres métodos principais usados noprojeto de estudos de desempenho de l
sistemas e algoritmos: • Enfoque experimental
Medir e usar um sistema real ou simplificado – Medir e usar um sistema real ou simplificado
• Enfoque Analítico
– Uso de matemática, probabilidades, redes de Uso de a e á ca, p obab dades, edes de Petri, teoria das filas, modelos abstratos para representar o sistema em estudo.
• Enfoque de Simulação • Enfoque de Simulação
– Projeto e uso de simulações por computador e modelos simplificados para avaliar o desempenho do sistema ou técnica
Terminologia do Projeto de Experimentos
Terminologia do Projeto de Experimentos
• Variável resposta: representa o valor obtido, que é
medido de acordo com as variações dos dados de entrada. – Exemplo: tempo de resposta, índice de precisão,índice Exemplo: tempo de resposta, índice de precisão,índice
de revocação, utilização, complexidade do algoritmo, outros exemplos???
• Fatores: as variáveis de entrada de um experimento que podem ser controladas pelo “experimentador”.
– Exemplo: tamanho do cache tamanho dos arquivos Exemplo: tamanho do cache, tamanho dos arquivos, tempo de seek, latência da rede, outros exemplos??? • Níveis: os níveis de um fator são os valores específicos • Níveis: os níveis de um fator são os valores específicos que podem ser atribuídos ao fator. Podem ser contínuos (ex.: tempo de seek) ou podem ser categóricos, como o tipo de um processador ou a classe de um certo algoritmo. tipo de um processador ou a classe de um certo algoritmo.
T
i
l
i d P j t d E
i
t
Terminologia do Projeto de Experimentos
• Replicação: replicar um experimento significa re-executá-lo completamente com todos os mesmos niveis de entrada completamente com todos os mesmos niveis de entrada. Desde que as medidas da variável resposta são sujeitas à variações randômicas, as replicações de um experimento são usadas para determinar o impacto do erro na variável são usadas para determinar o impacto do erro na variável resposta.
• Interação: uma interação entre fatores ocorre quando o efeito de um fator depende do nível de outro fator.
– Efeito da memória na atividade de paginação. – Outros exemplos???
I
d ã P j
d E
i
Introdução ao Projeto de Experimentos:
perguntas básicas
Voce conhece as métricas? • Voce conhece as métricas? • Voce conhece os fatores? • Voce conhece os níveis? • Voce conhece os níveis?
• Voce tem conhecimento de como instrumentar o sistema e elaborar as cargas de teste?g
• Voce sabe descrever o que fazer para realizar experimentos que comprovem ou refutem as
hi ót d i ?
Objetivos no Projeto de Experimentos
Obter a maior quantidade de informação • Obter a maior quantidade de informação
• Reduzir o trabalho/esforço de experimentação – Tipicamente significa o menor número de – Tipicamente significa o menor número de
experimentos
• Realizar mais experimentos não é bom (gasta-se p (g tempo e recursos), principalmente se voce for aquele responsável pela execução dos mesmos. E i t b j t d ã i fá i d • Experimentos bem projetados são mais fáceis de
R
li
õ E
i
t i
Replicações Experimentais
• O sistema em estudo executará com vários níveis de diferentes fatores, potencialmente com , p
diferentes cargas.
• Uma execução com um conjunto particular de
í d d d d é l ã
níveis e dados de entrada é uma replicação. • Em geral, é necessário realizar múltiplas
replicações com um único conjunto de níveis e replicações com um único conjunto de níveis e dados de entrada, por razões de verificação e validação estatística.
A I t
ã d f t
A Interação dos fatores
• Alguns fatores tem efeitos completamenteindependentes um do outro.
– Exemplo: Duplique o nível de um fator e obterá metade da resposta, independente dos outros fatores.
– Exemplos???
• Mas os efeitos de alguns fatores dependem dos valores de outros fatores
– Fatores interatuantes – Exemplos???
• Efeitos de cache podem depender do tamanho dos programas em execução. Só o tamanho insuficiente.... • A presença de fatores interatuantes complica o projeto
Problema Básico ao Projetar
Problema Básico ao Projetar
Experimentos
• Um determinado número de fatores foi • Um determinado número de fatores foi
escolhido
• Os fatores podem ou não interagir • Os fatores podem ou não interagir
• Como se pode projetar um experimento que captura os intervalos completos de variação captura os intervalos completos de variação dos níveis?
– Com a menor quantidade trabalho possível
• Qual a combinação ou combinações de níveis de fatores deseja-se medir?
E
C
E
i
t ã
Erros Comuns na Experimentação
I i t l
• Ignorar o erro experimental
• Existência de parâmetros não controlados Nã i l d f i d dif f
• Não isolamento dos efeitos de diferentes fatores • Projetos de experimentos com um
fator-de-cada-vez quando há fatores inter atuantes vez, quando há fatores inter-atuantes. • Ignorar as interações entre os fatores
P j t ú i d
• Projetos que requerem um número excessivo de experimentos
Ti
d P j t d E
i
t
Tipos de Projetos de Experimentos
• Um fator de cada vez
– Varie somente um fator atraves de seus niveis para Varie somente um fator atraves de seus niveis para ver o impacto nos resultados
• Dois fatores de cada vez
– Varie dois fatores para ver não somente seus efeitos individuais, mas a interação entre eles se existir.
F t i l C l t • Fatorial Completo
– Tente todas combinações possíveis de fatores e níveis para ver o espectro de resultados.
Exemplo: Web Proxy Caching
Exemplo: Web Proxy Caching
Filtered stream (misses) Filtro
E
l F t
Ní i
Exemplo: Fatores e Níveis
• Cache size
C h R l t P li
Níveis discretos • Cache Replacement Policy
– Recency-based LRU – Frequency-based LFU-Aging – Frequency-based LFU-Aging – Size-based GD-Size – RAND Niveis categóricos o res – FIFO • Workload Characteristics fat o
– One-timers, Zipf slope, tail index, correlation,
temporal locality model
Niveis categóricos Niveis categóricos
E
l Mét i
d P f
Exemplo: Métricas de Performance
• Document Hit Ratio (DHR)
– Qual porcentagem de documentos requisitados Qual porcentagem de documentos requisitados pelos clientes é satisfeita diretamente pelo proxy, sem necessidade de obter do servidor Web?
• Byte Hit Ratio (BHR)
– Qual porcentagem de bytes requisitados pelos clientes é satisfeita diretamente pelo proxy sem clientes é satisfeita diretamente pelo proxy, sem necessidade de obter do servidor Web?
Exemplo: Resultados de Performance
Exemplo: Resultados de Performance
Workload: Weak temporal locality Workload: Strong temporal locality
P j t E
i
t l
Projeto Experimental
(l
1,0, l
1,1, … , l
1,n1-1) x (l
2,0, l
2,1, … , l
2,n2-1) x …
x (l
(
k,0k,0, l
,
k,1k,1Fator 1
, … , l
,
,
k,nk-1k,nk 1)
)
Fator 2
Fator k
k diferentes fatores, onde cada fator tem ni níveis
P j t Si
l
Projetos Simples
• Varie um fator de cada vez
• Para k fatores com o iesimo fator tendo n níveis
• Para k fatores com o iesimo fator tendo n
i níveis
(
)
k(
)
n
n
i i k= +
−
=∑
1
1
1• Assuma que os fatores não interagem
U l t i f
• Usualmente requer mais esforço que se pensa • Tente evitar esse enfoque de experimentação
Projetos Simples
fixe
Projetos Simples
fixe
(l
1,0, l
1,1, … , l
1,n-1) x (l
2,0, l
2,1, … , l
2,n-)
1) x …
Fator 1
Fator 2
x (l
k,0, l
k,1, … , l
k,n-1)
Fator k
varie
P j t Si
l
Projetos Simples
(l
1,0, l
1,1, … , l
1,n-1) x (l
2,0, l
2,1, … , l
2,n-)
1) x …
Fator 1
Fator 2
x (l
k,0, l
k,1, … , l
k,n-1)
Fator k
P j t
F t i l
C
l t
Projetos com Fatorial Completo
• Para k fatores com o iesimo fator tendo n
i níveis
-n
n
i i k=
∏
1 i=1• Teste cada combinação possível dos níveis dos fatores.
• Capture a informação completa sobre a • Capture a informação completa sobre a
interação de fatores
P j t
F t i l
C
l t
Projetos com Fatorial Completo
(l
1,0, l
1,1, … , l
1,n-1) x (l
2,0, l
2,1, … , l
2,n-1) x …
x (l
k 0, l
k 1, … , l
k n 1)
Fator 1
Fator 2
x (l
k,0, l
k,1, … , l
k,n-1)
F t
k
Fator k
Reduzindo o trabalho em Projetos com
Reduzindo o trabalho em Projetos com
Fatorial Completo
• Reduza o número de níveis por fator
Ge almente ma boa op ão – Geralmente uma boa opção
– Especialmente quando se sabe quais fatores são mais importantes
– Para os fatores mais relevantes, use mais níveis
20% of the jobs account for 80% j of the resource consumption.
– Pareto’s Law
• Reduza o número de fatores
– Simplifique o modelo experimental Mas não eti e fato es “ ele antes” – Mas não retire fatores “relevantes”
P j t
F t i l
F
i
d
Projetos com Fatorial Fracionado
• Faça a medição somente de uma combinação • Faça a medição somente de uma combinação
de niveis de fatores.
• O projeto deve ser cuidadosamente projetado • O projeto deve ser cuidadosamente projetado
para capturar melhor qualquer interação que possivelmente exista.
p
• Menos trabalho, porém com mais chance de imprecisões nos resultados.
• Pode ser útil quando se sabe a priori que alguns fatores não interagem.
P j t
F t i l
F
i
d
Projetos com Fatorial Fracionado
(l
1,0, l
1,1, … , l
1,n-1) x (l
2,0, l
2,1, … , l
2,n-1) x …
x (l
(
k,0k,0, l
,
Fator 1
k,1k,1, … , l
,
,
k,n-1k,n 1)
)
Fator 2
P j t F t i i 2
kProjetos Fatoriais 2
k• Usados para determinar os efeitos de k • Usados para determinar os efeitos de k
fatores
– Cada um com duas alternativas ou níveisCada um com duas alternativas ou níveis
• Em geral, são usados de maneira preliminar, antes de estudos mais detalhados
– Cada fator medido é representado por seu nível máximo e no mínimo.
Pode oferecer algum “insight” sobre as interações – Pode oferecer algum “insight” sobre as interações
Ef it U idi
i
i
Efeitos Unidirecionais
• Efeitos que somente aumentam à medida que o • Efeitos que somente aumentam à medida que o
nível de um fator também aumenta – Ou vice-versa
• Se essa característica é conhecida a priori, um projeto fatorial 2k nos niveis máximo e mínimo pode se útil
pode ser útil.
• Demonstra-se quando um fator tem efeito significativo no resultado.
P j t F t i i 2
2Projetos Fatoriais 2
2• Dois fatores com dois niveis cada • Dois fatores, com dois niveis cada
• Tipo mais simples de um projeto fatorial de experimentos
experimentos
• Os conceitos desenvolvidos podem ajudar o entendimento dos problemas de 2k
entendimento dos problemas de 2
• Pode-se ilustrar com exemplo de regressão • Exemplo simples, com finalidade pedagógicaExemplo simples, com finalidade pedagógica
Exemplo de um Projeto Fatorial 2
2Exemplo de um Projeto Fatorial 2
• Uma arquitetura de máquina de busca, composta por Nservidores; servidores;
• Pode-se usar vários esquemas de distribuição ou
l d i id
escalonamento de queries para os servidores, por exemplo, round-robim, gang, random, priority, etc • O objetivo é completar os queries no menor tempo
possível.
• No exemplo, a métrica usada é o tempo de execução da
query em microsegundos.
F t
Ní i d E
l
Fatores e Níveis do Exemplo
• Primeiro fator – número de servidores usados namáquina de busca experimental: – Varia entre 8 e 64
• Segundo fator – baseado em outros estudos, usa-se dois extremos de políticas de escalonamento:
dois extremos de políticas de escalonamento: randômico e “round-robin”.
– Sistema de arquivos local e global na arquitetura, que permite a distribuição de query para qualquer servidor.
• Outros fatores existem mas neste exemplo vamos • Outros fatores existem, mas neste exemplo, vamos
Definindo as Variáveis para um
p
Exemplo de Projeto 2
2Factorial
⎧ 1
8
id
⎪
⎪
⎨
⎧−
=
1
Ax
se 8 servidores
⎪⎩ 1
se 64 servidores
⎪
⎨
⎧− 1
se escalonamento randomico⎪⎩
⎪
⎨
=
1
Bx
se escalonamento round robin (RR)
Dados Amostrais para o Exemplo
Dados Amostrais para o Exemplo
ã ú ã
• Execução única de uma execução de uma carga benchmark de queries nas duas
configurações: configurações: 8 Serv. (-1) 64 Serv. (+1) Rand. (-1)
820
217
(-1) RR (+1)776
197
M d l d R
ã
E
l
Modelo de Regressão para o Exemplo
• y = q
0+ q
Ax
A+ q
Bx
B+ q
ABx
Ax
B820 = q
0-q
A- q
B+ q
AB217 = q
0+q
A- q
B- q
AB776 = q
0-q
A+ q
B- q
AB776 = q
0q
A+ q
Bq
AB197 = q
0+q
A+ q
B+ q
ABM d l d R
ã
Modelo de Regressão
• 4 equações e 4 variáveis• Outra representação – tabelap ç
Experimento
p
A
B
y
y
1
-1
-1
y
12
1
-1
y
22
1
1
y
23
-1
1
y
34
1
1
y
4
1
1
y
4S l ã d E
õ
Solução das Equações
q = 1/4(820 + 217 + 776 + 197) = 502 5 q0 = 1/4(820 + 217 + 776 + 197) = 502.5 qA = 1/4(-820 + 217 - 776 + 197) = -295.5 q = 1/4( 820 217 + 776 + 197) = 16 qB = 1/4(-820 - 217 + 776 + 197) = -16 qAB = 1/4(820 - 217 - 776 + 197) = 6 Assim: y = 502.5 - 295.5xA - 16xB + 6xAxB
Al
ã d V i ã
M d l 2
2Alocação de Variação para o Modelo 2
2• Calcule a variância amostral de y
(
)
2 22(
)
s
y2 iy
iy
2 1 2 2 22
1
=
∑
=−
• Numerador é o SST (variação total)
2
−
1
SST = 22q
A2 + 22qB2 + 22qAB2
• Podemos usar isso para entender as causas da variação de y
T
SST
Termos no SST
• 22q
A2 é parte da variação explicada pelo efeito
de A (SSA) de A (SSA) • 22q
B2 é parte da variação explicada pelo efeito
de B (SSB) de B (SSB) • 22qA
B2 é parte da variação explicada pelo
efeito da interação de A e B (SSAB)ç ( )
SST SSA + SSB + SSAB
SST = SSA + SSB + SSAB
V i õ E
l
Variações no Exemplo
• SST = 350449 • SSA = 349281 • SSA = 349281 • SSB = 1024 SSAB 144 • SSAB = 144• Pode-se agora calcular e entender a fração da variação total causada por cada efeito
F
õ d V i ã
E
l
Frações de Variação no Exemplo
• Fração explicada por A: 99.67%• Fração explicada por B: 0.29%
• Fração explicada pela interação de A e B: 0.04%
A i t d i ã d ú d
• Assim, quase toda variação vem do número de servidores da arquitetura e o esquema de
escalonamento tem um efeito desprezível na performance da máquina de busca em estudo. • Se o objetivo é diminuir o tempo de resposta de
queries deve-se então concentrar no número de queries, deve se então concentrar no número de
servidores e não no esquema de distribuição-escalonamento (exemplo hipotético!)
P j t
F t i l
2
kProjetos com Fatorial 2
k• Usado para analisar os efeitos de k fatores, cada um com niveis de duas alternativas
Projetos 22 fatorial são um caso especial • Projetos 22 fatorial são um caso especial
• Métodos apresentados aqui se estendem a outros casos.
casos.