Como comparar experimentos executados em diferentes infraestruturas

8

Estou desenvolvendo um algoritmo distribuído e, para melhorar a eficiência, ele se baseia no número de discos (um por máquina) e em uma estratégia eficiente de equilíbrio de carga. Com mais discos, podemos reduzir o tempo gasto com E / S; e com uma política eficiente de equilíbrio de carga, podemos distribuir tarefas sem muita sobrecarga de replicação de dados.

Existem muitos estudos na literatura que lidam com o mesmo problema, e cada um deles realiza experimentos diferentes para avaliar sua proposta. Alguns experimentos são específicos da estratégia apresentada e outros, como escala fraca (escalabilidade) e escala forte (aceleração), são comuns a todos os trabalhos.

O problema é que os experimentos geralmente são executados em infraestruturas totalmente diferentes (discos, processadores, # máquinas, rede) e, dependendo do que está sendo avaliado, isso pode gerar comparações falsas / injustas . Por exemplo, posso obter 100% de aceleração no meu aplicativo em execução em 10 máquinas com conexão Infiniband, enquanto eu poderia obter os mesmos resultados ou até piores se minha conexão fosse Ethernet.

Então, como comparar honestamente diferentes experimentos para apontar ganhos de eficiência?

Rubens
fonte

Respostas:

3

Esta é uma pergunta muito boa e uma situação comum.

Na minha opinião, existem três fatores diferentes que devem ser controlados:

  • Dados: Já existem benchmarks diferentes para avaliar algoritmos e arquiteturas. Esses dados devem estar disponíveis ao público para que todos possam contrastar suas abordagens.
  • Arquitetura: minha sugestão é testar tudo na nuvem, para que todos possam contrastar seus resultados e também não há dúvida de que as mesmas máquinas e softwares são usados.
  • Algoritmos: Se você desenvolveu um algoritmo distribuído, seria ótimo comparar seu algoritmo com dados específicos. Nesse caso, os algoritmos não devem ser públicos.

Portanto, respondendo à sua pergunta, se você deseja comparar experimentos diferentes e declarar em que medida seu algoritmo distribuído supera outros, tente replicar o mais preciso possível o mesmo ambiente (dados e arquitetura) em que os experimentos foram realizados.

Se isso não for possível, minha sugestão é que você teste seu algoritmo com dados públicos e arquitetura em nuvem para se tornar um referente , facilitando a comparação de futuros algoritmos.

adesantos
fonte
2

A resposta geral a seguir é meu palpite inculto, então leve-o com grão de sal. Felizmente, isso faz sentido. Penso que a melhor maneira de descrever ou analisar experimentos (como qualquer outro sistema , em geral) é construir seus modelos estatísticos (multivariados) e avaliá-los. Dependendo de os ambientes do seu conjunto de experiências serem representados pelo mesmo modelo ou por diferentes , vejo as seguintes abordagens :

1) Abordagem de modelo único. Defina o modelo estatístico dos experimentos para todos os ambientes (variáveis ​​dependentes e independentes, tipos de dados, suposições, restrições). Analise -o (provavelmente, usando análise de regressão ). Compare os resultados entre variáveis , que determinam (influenciam) diferentes ambientes.

2) Abordagem de múltiplos modelos. As mesmas etapas do caso anterior, mas compare os resultados entre os modelos , correspondendo a diferentes ambientes.

Aleksandr Blekh
fonte