time (perl -e 'for($i=0;$i<1e8;$i++) { }' & perl -e 'for($i=0;$i<1e8;$i++) { }' & wait)
Adicione mais comandos perl para mais de 2 CPUs.
Alguns anos atrás, um amigo criou um 'benchmark' (Nota: Não é um benchmark) pelo qual mediríamos um aspecto bruto do poder de computação. Ou seja, quão rápido (ou mesmo devagar) o computador poderia contar para um grande número. Nós o chamamos de "Referência Aleatória de Hugo".
Ele consiste na seguinte linha simples que pode ser colada em um shell para medir o poder computacional.
time perl -e 'for($i=0;$i<1e8;$i++) { }'
É muito bobo, em grande parte inútil, mas foi popular em nosso LUG por algum tempo. Uma coisa que nunca descobrimos foi uma maneira simples de fazer o mesmo para testar processadores multi-core / multi-thread. Como isso pode ser alcançado?
Gostaria de um script simples que copie / cole facilmente, que não dependa da instalação de muitas dependências adicionais. Nós tendemos a executar isso em sistemas Linux / Unix, portanto, podemos supor que alguma versão do Perl (ou Python) esteja disponível, não necessariamente módulos / bibliotecas perl adicionais.
Existe uma maneira simples de dividir esse trabalho em um número arbitrário de núcleos e ainda obter um tempo total de execução confiável no final?
time (perl -e 'for($i=0;$i<1e8;$i++) { }' & perl -e 'for($i=0;$i<1e8;$i++) { }' & wait)
Adicione mais comandos perl para mais de 2 CPUs.
Tags performance perl linux benchmarking