Resultados Benchmark » History » Version 20

Thiago Paiva, 25 Apr 2013 10:05

1 1 Raphael Cóbe
h1. Resultados Benchmark
2 1 Raphael Cóbe
3 11 Thiago Paiva
4 14 Raphael Cóbe
h2. Introdução
5 14 Raphael Cóbe
6 19 Thiago Paiva
Com a aplicação da virtualização de hardware, mostrou-se necessário haver alguma forma de comparação entre o desempenho dessas máquinas com aquelas que não utilizam esse recurso. Isso é importante pois dessa forma pode-se mensurar qual é a sobrecarga que o sistema de virtualização provoca em condições correlatas e também para mensurar o desempenho de máquinas que só se tornaram possíveis com a virtualização.
7 19 Thiago Paiva
8 19 Thiago Paiva
Existem tipos diferentes de benchmark como o usado no TOP500 (top500.org) e no Graph500 (graph500.org). Cada um mensura características diferentes do computador.
9 19 Thiago Paiva
10 19 Thiago Paiva
h3. Benchmark
11 19 Thiago Paiva
12 20 Thiago Paiva
Benchmark é a normalização de determinados procedimentos de forma a tornar possível a comparação entre eles. 
13 19 Thiago Paiva
14 20 Thiago Paiva
 são métodos de avaliação do desempenho de computadores, sejam eles máquinas reais ou virtuais, de forma que seja possível compará-los. 
15 1 Raphael Cóbe
16 20 Thiago Paiva
Para ta comparação de a padronização das operações executada bem determinadas de forma a se conseguir mensurar o desempenho delas e tornar possível compará-los.
17 1 Raphael Cóbe
18 20 Thiago Paiva
h3. LINPACK Benchmark
19 1 Raphael Cóbe
20 20 Thiago Paiva
LINPACK Benchmark é um sistema de avaliação do poder computacional de computadores, utilizando ponto flutuante. Para isso, mede-se a velocidade de resolução de um sistema linear de equações n x n do tipo ''Ax = b''.
21 20 Thiago Paiva
22 20 Thiago Paiva
Será utilzado o HPLinpack que possibilita o teste da paralelização de computadores, em que o tamanho do problema pode ser definido de acordo com a disponibilidade de recursos de forma a fazer uso da plena capacidade das máquinas.
23 20 Thiago Paiva
24 20 Thiago Paiva
Os seguintes resultados são mostrados para cada teste:
25 20 Thiago Paiva
26 20 Thiago Paiva
'''R_max:'''   a performance em Gflops/s para o maior problema executado
27 20 Thiago Paiva
'''N_max:'''   o tamanho do maior problema executado
28 20 Thiago Paiva
'''N_{1/2}:''' o tamanho do problema para quando metade da '''R_max''' foi atingida.
29 20 Thiago Paiva
'''R_peak:'''  o pico teórico de performance.
30 20 Thiago Paiva
31 20 Thiago Paiva
32 20 Thiago Paiva
h3. Parâmetros utilizados
33 20 Thiago Paiva
34 20 Thiago Paiva
Os parâmetros utilizados foram obtidos a partir do software [hpl-calculator | http://hpl-calculator.sourceforge.net/] e seguem as seguintes especificações:
35 20 Thiago Paiva
* Número de nós equivale ao número de máquinas a serem utilizadas: 1 ou 4.
36 20 Thiago Paiva
* Número de cores é o número de núcleos de processamento em cada um dos nós: 8 (sem hyper-thread) ou 16 (com hyper-thread).
37 20 Thiago Paiva
* Velocidade por core: 2.67.
38 20 Thiago Paiva
* Quantidade de memória por nó: 6GB.
39 20 Thiago Paiva
* Operações por ciclo: 4.
40 20 Thiago Paiva
41 20 Thiago Paiva
Das indicações feitas pelo hpl-calculator, escolhemos:
42 20 Thiago Paiva
* P x Q aproximadamente iguais
43 20 Thiago Paiva
* NBs entre 96 e 256.
44 20 Thiago Paiva
* N entre 80 e 94%
45 20 Thiago Paiva
46 20 Thiago Paiva
47 20 Thiago Paiva
h3. Dos resultados:
48 20 Thiago Paiva
49 20 Thiago Paiva
Após realizar os testes com os valores escolhidos anteriormente, obtém-se:
50 20 Thiago Paiva
51 20 Thiago Paiva
* valor ótimo de N e NB a partir do pico real de performance.
52 20 Thiago Paiva
* comparação direta entre os desempenhos das máquinas em condições correlacionadas:
53 20 Thiago Paiva
** influência do recurso de Hyper-Threading
54 20 Thiago Paiva
** influência da escolha da Matriz P x Q (quadrada e linear)
55 20 Thiago Paiva
** máquina virtual x máquina real
56 20 Thiago Paiva
57 20 Thiago Paiva
58 20 Thiago Paiva
59 1 Raphael Cóbe
h2. Nomenclatura
60 1 Raphael Cóbe
61 20 Thiago Paiva
Cada teste é armazenado na máquina 00 em /opt/hpl/ utilizando um diretório cujo nome indica a qual teste pertence. Esse nome é composto por abreviações seguidas por valores:
62 20 Thiago Paiva
63 20 Thiago Paiva
* hw: número de máquinas reais
64 20 Thiago Paiva
* vm: número de máquinas virtuais
65 20 Thiago Paiva
* ht: hyper-thread ativo ou não.
66 20 Thiago Paiva
67 20 Thiago Paiva
h3. Exemplos
68 20 Thiago Paiva
69 20 Thiago Paiva
* hw4ht0: teste com quatro máquinas reais sem hyper-threading
70 20 Thiago Paiva
* hw1ht1: teste com uma máquina real com hyper-threading
71 20 Thiago Paiva
* mv1ht0: teste com uma máquina virtual sem hyper-threading
72 12 Thiago Paiva
73 12 Thiago Paiva
74 11 Thiago Paiva
h2. Instruções para teste de "single"
75 1 Raphael Cóbe
76 12 Thiago Paiva
* criar diretório e acessá-lo para receber informações do teste. O nome do diretório deve obedecer a nomenclatura estabelecida.
77 11 Thiago Paiva
<pre>
78 1 Raphael Cóbe
~$ mkdir <nome>
79 12 Thiago Paiva
~$ cd <nome>
80 11 Thiago Paiva
</pre>
81 11 Thiago Paiva
82 1 Raphael Cóbe
* copiar os arquivos necessários para o diretório recém criado
83 11 Thiago Paiva
<pre>
84 13 Thiago Paiva
~$ cp -r /opt/hpl/* .
85 11 Thiago Paiva
</pre>
86 1 Raphael Cóbe
87 11 Thiago Paiva
* modificar o arquivo "HPL.template" nos quesitos P e Q
88 11 Thiago Paiva
<pre>
89 12 Thiago Paiva
~$ vim hpl-files/HPL.template
90 1 Raphael Cóbe
</pre>
91 11 Thiago Paiva
92 11 Thiago Paiva
* editar o script "generateFile.pl" e alterar os parâmetros Ns e NBs
93 11 Thiago Paiva
<pre>
94 12 Thiago Paiva
~$ vim hpl-files/generateFile.pl
95 11 Thiago Paiva
</pre>
96 11 Thiago Paiva
97 11 Thiago Paiva
* executar script "generateFile.pl" para gerar arquivos de entrada
98 11 Thiago Paiva
<pre>
99 12 Thiago Paiva
$ perl hpl-files/genereteFile.pl
100 11 Thiago Paiva
</pre>
101 11 Thiago Paiva
102 11 Thiago Paiva
* modificar "runme-single.sh" no quesito número de cores (NUMBER_CORES)
103 11 Thiago Paiva
<pre>
104 11 Thiago Paiva
~$ vim hpl/runme-single.sh
105 11 Thiago Paiva
</pre>
106 11 Thiago Paiva
107 11 Thiago Paiva
* executar runme-single.sh
108 11 Thiago Paiva
<pre>
109 11 Thiago Paiva
~$ hpl/runme-single.sh
110 11 Thiago Paiva
</pre>
111 11 Thiago Paiva
112 11 Thiago Paiva
113 14 Raphael Cóbe
Testes:
114 2 Raphael Cóbe
115 14 Raphael Cóbe
[[Máquina Real com HT Vs Máquina Real sem HT]]
116 9 Raphael Cóbe
117 9 Raphael Cóbe
118 14 Raphael Cóbe
[[Matriz QxP quadrada vs Matriz QxP Linear]] 
119 16 Raphael Cóbe
120 16 Raphael Cóbe
121 17 Raphael Cóbe
[[Busca pelo maior número de operações por segundo em uma unica máquina sem HT - Variação do uso de memória]]
122 16 Raphael Cóbe
123 16 Raphael Cóbe
124 18 Raphael Cóbe
[[Busca pelo maior número de operações por segundo em 4 máquinas sem HT - Variação do uso de memória]]