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.
Parte 2: 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.
- 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
(Gente, às vezes me surpreendo com a minha paciência...)
Esse programa é bem velho, por volta de 2000, não existe outro mais recente que você conheça?