Resultados Benchmark » History » Version 22

Raphael Cóbe, 29 Apr 2013 11:08

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 1 Raphael Cóbe
15 20 Thiago Paiva
h3. LINPACK Benchmark
16 1 Raphael Cóbe
17 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''.
18 20 Thiago Paiva
19 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.
20 1 Raphael Cóbe
21 1 Raphael Cóbe
Os seguintes resultados são mostrados para cada teste:
22 1 Raphael Cóbe
23 21 Thiago Paiva
*R_max:*   a performance em Gflops/s para o maior problema executado
24 21 Thiago Paiva
*N_max:*   o tamanho do maior problema executado
25 21 Thiago Paiva
*N_{1/2}:* o tamanho do problema para quando metade da *R_max* foi atingida.
26 21 Thiago Paiva
*R_peak:*  o pico teórico de performance.
27 20 Thiago Paiva
28 20 Thiago Paiva
29 20 Thiago Paiva
h3. Parâmetros utilizados
30 20 Thiago Paiva
31 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:
32 20 Thiago Paiva
* Número de nós equivale ao número de máquinas a serem utilizadas: 1 ou 4.
33 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).
34 20 Thiago Paiva
* Velocidade por core: 2.67.
35 20 Thiago Paiva
* Quantidade de memória por nó: 6GB.
36 20 Thiago Paiva
* Operações por ciclo: 4.
37 20 Thiago Paiva
38 20 Thiago Paiva
Das indicações feitas pelo hpl-calculator, escolhemos:
39 20 Thiago Paiva
* P x Q aproximadamente iguais
40 20 Thiago Paiva
* NBs entre 96 e 256.
41 20 Thiago Paiva
* N entre 80 e 94%
42 20 Thiago Paiva
43 20 Thiago Paiva
44 20 Thiago Paiva
h3. Dos resultados:
45 20 Thiago Paiva
46 20 Thiago Paiva
Após realizar os testes com os valores escolhidos anteriormente, obtém-se:
47 20 Thiago Paiva
48 20 Thiago Paiva
* valor ótimo de N e NB a partir do pico real de performance.
49 20 Thiago Paiva
* comparação direta entre os desempenhos das máquinas em condições correlacionadas:
50 20 Thiago Paiva
** influência do recurso de Hyper-Threading
51 20 Thiago Paiva
** influência da escolha da Matriz P x Q (quadrada e linear)
52 20 Thiago Paiva
** máquina virtual x máquina real
53 20 Thiago Paiva
54 20 Thiago Paiva
55 20 Thiago Paiva
56 1 Raphael Cóbe
h2. Nomenclatura
57 1 Raphael Cóbe
58 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:
59 20 Thiago Paiva
60 20 Thiago Paiva
* hw: número de máquinas reais
61 20 Thiago Paiva
* vm: número de máquinas virtuais
62 20 Thiago Paiva
* ht: hyper-thread ativo ou não.
63 20 Thiago Paiva
64 20 Thiago Paiva
h3. Exemplos
65 20 Thiago Paiva
66 20 Thiago Paiva
* hw4ht0: teste com quatro máquinas reais sem hyper-threading
67 20 Thiago Paiva
* hw1ht1: teste com uma máquina real com hyper-threading
68 20 Thiago Paiva
* mv1ht0: teste com uma máquina virtual sem hyper-threading
69 12 Thiago Paiva
70 12 Thiago Paiva
71 11 Thiago Paiva
h2. Instruções para teste de "single"
72 1 Raphael Cóbe
73 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.
74 11 Thiago Paiva
<pre>
75 1 Raphael Cóbe
~$ mkdir <nome>
76 12 Thiago Paiva
~$ cd <nome>
77 11 Thiago Paiva
</pre>
78 11 Thiago Paiva
79 1 Raphael Cóbe
* copiar os arquivos necessários para o diretório recém criado
80 11 Thiago Paiva
<pre>
81 13 Thiago Paiva
~$ cp -r /opt/hpl/* .
82 11 Thiago Paiva
</pre>
83 1 Raphael Cóbe
84 11 Thiago Paiva
* modificar o arquivo "HPL.template" nos quesitos P e Q
85 11 Thiago Paiva
<pre>
86 12 Thiago Paiva
~$ vim hpl-files/HPL.template
87 1 Raphael Cóbe
</pre>
88 11 Thiago Paiva
89 11 Thiago Paiva
* editar o script "generateFile.pl" e alterar os parâmetros Ns e NBs
90 11 Thiago Paiva
<pre>
91 12 Thiago Paiva
~$ vim hpl-files/generateFile.pl
92 11 Thiago Paiva
</pre>
93 11 Thiago Paiva
94 11 Thiago Paiva
* executar script "generateFile.pl" para gerar arquivos de entrada
95 11 Thiago Paiva
<pre>
96 12 Thiago Paiva
$ perl hpl-files/genereteFile.pl
97 11 Thiago Paiva
</pre>
98 11 Thiago Paiva
99 11 Thiago Paiva
* modificar "runme-single.sh" no quesito número de cores (NUMBER_CORES)
100 11 Thiago Paiva
<pre>
101 11 Thiago Paiva
~$ vim hpl/runme-single.sh
102 11 Thiago Paiva
</pre>
103 11 Thiago Paiva
104 11 Thiago Paiva
* executar runme-single.sh
105 11 Thiago Paiva
<pre>
106 11 Thiago Paiva
~$ hpl/runme-single.sh
107 11 Thiago Paiva
</pre>
108 11 Thiago Paiva
109 11 Thiago Paiva
110 14 Raphael Cóbe
Testes:
111 2 Raphael Cóbe
112 14 Raphael Cóbe
[[Máquina Real com HT Vs Máquina Real sem HT]]
113 9 Raphael Cóbe
114 9 Raphael Cóbe
115 14 Raphael Cóbe
[[Matriz QxP quadrada vs Matriz QxP Linear]] 
116 16 Raphael Cóbe
117 16 Raphael Cóbe
118 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]]
119 16 Raphael Cóbe
120 22 Raphael Cóbe
[[Busca pelo maior número de operações por segundo em uma unica máquina virtual - Variação do uso de memória]]
121 16 Raphael Cóbe
122 22 Raphael Cóbe
123 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]]
124 22 Raphael Cóbe
125 22 Raphael Cóbe
[[Busca pelo maior número de operações por segundo em 4 máquinas virtuais - Variação do uso de memória]]