Análise de Desempenho - Benchmarks

O desempenho de um sistema computacional pode ser medido através de uma série de parâmetros quantitativos e, eventualmente qualitativos, em um processo ao qual se dá o nome de análise de desempenho. Os benchmarks são, possivelmente, a principal ferramenta para isso.

Através da análise de desempenho é possível comparar sistemas computacionais entre si, avaliar o custo benefício de aquisição ou expansão de um sistema, avaliar, ou prever, o impacto de alterações na configuração do sistema para seu desempenho final. Também é possível aplicar as técnicas de análise em máquinas virtuais, comparando o desempenho do sistema virtualizado com o desempenho do sistema hospedeiro, ou de um sistema físico correspondente, bem como avaliar o ganho de desempenho de um cluster (aglomerado) computacional, em relação à um sistema componente do cluster individualmente.


Sobre o tema de Análise de Desempenho, orientei o seguinte projeto de Iniciação Científica na UNINOVE entre 2015 e 2016:

Análise de desempenho em máquinas virtuais
Objetiva estudar e aplicar a avaliação de desempenho em diversos sistemas computacionais, partindo dos sistemas pessoais, passando pelos sistemas virtualizados e culminando com a avaliação de um sistema de alto desempenho de modo a obter parâmetros concretos para o dimensionamento do sistema e configuração da virtualização.

Os resultados do trabalho foram apresentados na 7ª Escola Regional de Alto Desempenho de São Paulo (ERAD-SP), promovida pela SBC e no 1º Seminário em Tecnologia da Informação Inteligente (SeTII), promovido pelo Programa de Pós-graduação em Informática e Gestão do Conhecimento (PPGI) da UNINOVE. O artigo do ERAD pode ser lido neste site em Publicações disponíveis, enquanto o do SeTII pode ser lido em http://www.setii.net/2016/anais-setii-2016-v01.pdf.


Nas bibliografias de Arquitetura de Computadores e Sistemas Operacionais há livros excelentes que abordam o tema de análise de Desempenho:
  • Arquitetura de Computadores - Uma Abordagem Quantitativa - 5a edição - John L. Hennessy e David A. Patterson - Elsevier - 2013.
  • Organização e Projeto de Computadores – A Interface Hardware/Software - 4ª edição - David A. Patterson e John L. Hennessy - Elsevier - 2013.
  • Sistemas Operacionais - 3ª edição - H.M Deitel, P.J. Deitel, D.R. Choffnes - Pearson Education - 2005
Além desses, o assunto também é abordado nos livros de Baer; Carter; Delgado e Ribeiro; Parhami.


E links para softwares de Benchmark é o que não faltam:
  • CPUID - PC Wizard: meu preferido como "usuário Windows". Confira também os demais utilitários da CPUID. Windows.
  • Maxon Cinebench: benchmark produzido por um empresa que fabrica software para cinema (produção de filmes em 3D). Windows e Mac OS X.
  • Phoronix Test Suite:  suite de benchmarks open source. Linux, Solaris, Mac OS X, Windows & BSD.

Há também alguns sites especializados como o Opensourcetesting.org e o tradicionalíssimo Standard Performance Evaluation Corporation (SPEC), cujos benchmarks infelizmente não possuem versão gratuita.

O artigo da Wikipedia traz uma boa relação de benchmarks também.


Work In Progress :P
Netlib Repository (LAPACK, linpack, etc.) e TPC.org citado no livro do Baer.
LAPACK é o mais atual e possui suporte a diversos computadores em http://www.netlib.org/lapack/index.html e versão Windows em http://icl.cs.utk.edu/lapack-for-windows/lapack/.
Versão java (web) do Linpack em http://www.netlib.org/benchmark/linpackjava/.
Os benchmarks da Netlib são usados no TOP 500!

Caffeine Mark 3.0 em Java: http://www.benchmarkhq.ru/cm30/.