Critérios de seleção e criação de perfil do processador do servidor

1

Estamos comprando um servidor para executar vários pacotes de software de Bioinformática. O pacote principal em nossa máquina de teste é multi-threaded e é totalmente ligado à CPU, o IO & A RAM não está limitando o desempenho - a CPU funciona a 100%, enquanto a RAM & O disco IO está em níveis mínimos.

Queremos garantir que tenhamos o melhor processador (s) para nossa carga de trabalho, mas, dada a grande lista de opções do Intel Xeon, como podemos selecionar o melhor para as nossas necessidades?

Eu aprecio que em um nível fundamental, "mais"="melhor", mas como posso saber se, por exemplo, uma velocidade de barramento mais rápida faz uma grande diferença em comparação a um grande cache ou se mais núcleos são melhores que a velocidade do clock.

Existe uma maneira de criar um perfil do nosso pacote de software para descobrir qual processador escolher. O software em questão é uma coleção de scripts Python, para que possamos fazer o perfil no Linux ou no Windows.

    
por Jon Rhoades 31.01.2012 / 02:44

1 resposta

1

Você deu uma olhada no cachegrind , que é parte do realmente excelente Valgrind pacote de perfis de memória?

Cachegrind, pelo menos, dá uma idéia de quanto de cache está ocorrendo. Você pode achar que seu aplicativo trava o cache tanto que não importa se você tem o cache L2 / L3 maior de um Xeon ou não, então, novamente, você pode estar preso ao pipeline da CPU e a thrashing pode não estar ocorrendo muito.

Cachegrind também permite que você defina tamanhos de cache arbitrários, assim você poderá testar seu código em vários cenários de tamanho de cache.

    
por 31.01.2012 / 02:56