Selecionando os parâmetros do HPL

Após terminar de compilar o HPL, é preciso editar o arquivo HPL.dat.
É nesse arquivo que estão os parâmetros de configuração do benchmark, que devem ser alterados para se extrair o máximo de desempenho do sistema de acordo com suas especificações (memória, número de processadores, topologia de rede). Esta seção contém uma breve descrição de alguns dos parâmetros do HPL.

O algoritmo do Linpack é explicado aqui: link

Descrição do HPL.dat

  • 1a e 2a linha: Não são utilizadas. Podem ser utilizada para descrever o superficialmente o conteúdo do arquivo. Por padrão contém:
HPL Linpack benchmark input file
Innovative Computing Laboratory, University of Tennessee

  • 3a linha: É usada para escolher o nome do arquivo da saída padrão (caso o redirecionamento da saída seja feito para um arquivo). Por padrão a linha contém:
HPL.out  output file name (if any)

Isso quer dizer que caso o redirecionamento da saída seja feito para um arquivo, ele se chamará "HPL.out". O conteúdo após o espaço em branco é ignorado e considerado comentário.
  • 4a linha: É utilizada para especificar a saída padrão. Ela deve começar com um número positivo inteiro, e o que vier depois é ignorado. É possível escolher 3 saídas de acordo com o número:
6 - a saída vai para a saída padrão
7 - a saída vai para a saída de erro padrão
Qualquer outro valor indica que a saída será redirecionada para um arquivo cujo nome foi especificado na linha acima. Por padrão a linha contém:
6        device out (6=stdout,7=stderr,file)

  • 5a linha: Indica a quantidade de problemas de tamanhos diferentes que serão executados. Este número deve ser menor ou igual a 20. O primeiro número inteiro é significativo, o restante é ignorado. Se a linha contiver, por exemplo:
3        # of problems sizes (N)

Isso significa que o usuário deseja executar 3 tamanhos de problemas diferentes que serão especificados na próxima linha.
  • 6a linha: Especifica o tamanho dos problemas que serão executados. Supondo que o número na linha anterior seja 3, os 3 primeiros números na 6a linha serão considerados e o restante será ignorado. Por exemplo:
3000 6000 10000    Ns

Isso indica que deseja-se executar 3 tamanhos de problemas (linha 5), que são 3000, 6000 e 10000.
  • 7a linha: Indica o número de tamanhos de blocos diferentes que serão utilizados. Este número deve ser menor ou igual a 20. O primeiro inteiro é significativo e o restante será ignorado. Por exemplo, se a linha contiver:
5        # of NBs

Isso significa que o usuário deseja usar 5 tamanhos de blocos diferentes, que serão especificados na linha seguinte.
  • 8a linha: Especifica os tamanhos dos blocos que se deseja executar. Assumindo que a linha anterior contenha o número 5, os 5 primeiros valores inteiros positivos serão significativos e o restante será ignorado. Por exemplo:
80 100 120 140 160 NBs

Significa que deseja-se executar 5 tamanhos de blocos(linha 7), respectivamente 80, 100, 120, 140 and 160.
  • 9a linha: Especifica como os processos MPI serão mapeados nos nós do cluster. Há dois tipos de mapeamento possíveis: row-major e column-major. Essa característica é particularmente útil quando os nós são computadores multi-processados. Um mapeamento row-major é recomendado.
  • 10a linha: Indica o número de tamanhos de grades de processos a serem executadas. As grades representam como a matriz será dividida entre os processos. Este número deve ser menor ou igual a 20. O primeiro número inteiro é significativo e o restante será ignorado. Se a linha contiver:
2        # of process grids (P x Q)

Isso significa que deseja-se executar 2 tamanhos de grades diferentes que serão especificados nas linhas seguintes.
  • 11a-12a linha: Essas duas linhas especificam o número de linhas e colunas dos processos em cada uma das grades que deseja-se utilizar. Assumindo que a linha anterior possua o valor 2, os 2 primeiros inteiros das duas linhas abaixo serão considerados e o restante ignorado. Por exemplo:
1 2          Ps
6 8          Qs

Significa que deseja-se executar o xhpl em duas grades de processos (linha 10), especificamente de 1x6 e 2x8.

IMPORTANTE: Neste exemplo será preciso iniciar o xhpl em pelo menos 16 nós. Se for utilizado um cluster com um número superior, por exemplo 30 nós, apenas 6 seriam utilizados para a primeira grade (1x6) e então 16 para a segunda (2x8). O fato de utilizar um cluster com um número maior de nós não fará o HPL utilizar todos eles. Neste exemplo apenas 16 seriam utilizados. Se fosse desejável executar o xhpl com 30 processos, seria preciso especificar uma grade com 30 processos. Por exemplo, as linhas abaixo fariam uso de todos os nós:
3  2         Ps
10 15         Qs

O arquivo ainda possui mais parâmetros que no momento não serão abordados, mais detalhes podem ser vistos na página do HPL, que está nas referências.

Referências

http://www.netlib.org/benchmark/hpl/tuning.html

Last edited Mar 7, 2008 at 6:36 PM by dfconrad, version 3

Comments

No comments yet.