Benchmark de hardware e CFLAGS usando o ubench

Estudo de ganho de desempenho de alterações nos timings das memórias e CFLAGS na execução de programas otimizados.

[ Hits: 21.091 ]

Por: José Luiz Litvay em 30/10/2006


Variáveis e método



Como fã do método científico, para chegarmos a alguma conclusão lógica, deve-se alterar uma variável por vez e coletar os resultados.

Variáveis

  • HARDWARE: CPU, CLOCK, FSB, timings das memórias, etc... que podem ser alteradas com técnicas de overclock dentro da BIOS da maioria das máquinas. Máquina onde foi executado o benchmark: Pentium-mmx 233MHZ DUAL em uma Tyan Tomcat IVD com 144MB de RAM EDO.
  • SOFTWARE AMBIENTE: kernel do Linux, GCC, Glibc, carga do sistema no momento do benchmark; Slackware-10.2, kernel-2.6.13.dualpentium (otimizado bem sequinho para minha configuração), GCC-3.3.6-i586, Glibc-2.3.5-i586... Viva o SlackBuild, SEM NENHUM SERVIÇO RODANDO, apenas dois terminais do bash.
  • CFLAGS: utilizados na compilação do programa ubench que será executado. Pode-se alterar as CFLAGS no arquivo "configure" dentro da pasta. Procure a sua arquitetura e altere o que quiser.

Método


Benchmark de Hardware:
  • Fui alterando as configurações de timings das memórias (já que meu pentiumzinho não dá mais overclock que isso). Como isso depende muito da máquina, não vou entrar em detalhes;
  • Compilei um "ubench" usando apenas -O2;
  • Alterava os timings das memórias na bios, bootava e executava o ubench já compilado.

Benchmark de CFLAGS:
  • Mantive a configuração do melhor resultado do benchmark de hardware;
  • Na pasta do programa ubench, alterei o arquivos configure no campo de CFLAGS, deletando tudo e deixando apenas os CFLAGS que interessava;
  • Compilei uma série de "ubench", renomeava para "ubench-O2" ou "ubench-O2-march=pentium-mmx" e assim por diante...
  • Gerei um script para executar todos os "ubench" compilados, um de cada vez, direcionando a saída do programa para um arquivo de texto com o nome do gerador, assim:

    $ ./ubench-O2 > ubench-O2.txt

Para evitar flutuações nos resultados, cada valor postado a seguir é uma média de 3 testes nas exatas mesmas condições, realizados seguidamente.

(Gente, às vezes me surpreendo com a minha paciência...)

Página anterior     Próxima página

Páginas do artigo
   1. Explicando...
   2. Variáveis e método
   3. Resultados e conclusão
Outros artigos deste autor

Quebrando os mitos do software de código aberto

Otimizando o seu Slackware pra valer com o SlackBuild

Otimizando o KDE com o Slackbuild

Leitura recomendada

Instalação e configuração do Nagios

GAMBAS: A definitiva resposta open-source ao Microsoft Visual Basic

QTParted - Particionador gráfico, simples e fácil

Inkscape - Introdução (parte 2)

Instalando e configurando o VNC

  
Comentários
[1] Comentário enviado por rdaraujo em 31/10/2006 - 01:12h

Uma dúvida: qual o significado de -fast-math?

Esse programa é bem velho, por volta de 2000, não existe outro mais recente que você conheça?

[2] Comentário enviado por jllitvay em 31/10/2006 - 07:09h

Tem um monte: , http://lbs.sourceforge.net/ , mas nenhuma suite completinha pronta.
Um interessante, que já estou pensando em fazer um artigo é o BYTEBench que tem para Windows e Linux.
http://www.byte.com/bmark/bmark.htm
http://www.tux.org/~mayer/linux/bmark.html
Vou vazer uns testes aqui depois posto.

[3] Comentário enviado por grabber em 02/11/2006 - 00:46h

O programa acima não suporta sistemas dual-core, em algums casos ele simplesmente não contabiliza os SCORES. Estou a procura de uma solução que consiga fazer o bench corretamente, o nbench utiliza apenas um processador, mesmo usando MAKEOPTS="-j3". Vou modificar o código dele para permitir multiplos acessos aos canais de memória a as instruções das CPUs.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts