Page 1

Benchmark de Sistemas de Alto Desempenho Henrique Lucas França Ciência da Computação - 2/B, Universidade Cruzeiro do Sul 23 de agosto de 2012

1

Introdução

Para se efetuar a comparação entre dois sistemas computacionais, é utilizado o benchmark. Vejamos a denição encontrada na Wikipédia :

Em computação, benchmark é o ato de executar um programa de computador, um conjunto de programas ou outras operações, a m de avaliar a performance relativa de um objeto, normalmente executando uma série de testes padrões e ensaios nele. Portanto, para realizar os referidos testes, é necessário que se utilize um modelo ocial de comparação. Antes de vermos esses padrões vejamos primeiro as unidades de medida empregadas.

2

Unidades de Medida

Como unidade de medida temos, mais comumente, o 2.1

MIPS

eo

.

FLOPS

MIPS

(acrônimo de Millions of Instructions Per Second, milhões de instruções por segundo, em inglês) é uma unidade de desempenho que mede, como o nome indica, a quantidade de instruções que um processador realiza por segundo. MIPS é dependente do conjunto de instruções da CPU, tornando difícil a comparação entre duas arquiteturas diferentes. Tomemos como exemplo: MIPS

Dados dois processadores com conjuntos de instruções distintas, A e B ; sendo que A possui uma taxa de MIPS superior a B . Não podemos dizer, necessariamente, que A realize uma determinada operação de forma mais rápida que B se, por exemplo, A utilizar mais instruções para realizar a mesma tarefa que B . 2.2

FLOPS

(acrônimo de Floating-point Operations Per Second, operações de ponto utuante por segundo, em inglês) é outra unidade de desempenho que indica a quantidade de operações de ponto utuante realizadas por um processador. Trata-se de uma unidade de medida que mede apenas a velocidade do processador, não reetindo a desempenho do computador, visto que não contabiliza a performance de entrada/saída nem o desempenho da memória. No caso de testes que utilizem como unidade o FLOPS não são contabilizadas as instruções de ponto utuante e sim operações, justamente para evitar-se comparações injustas entre máquinas com instruções diversas. Por exemplo: FLOPS

1


• Operações de soma; • Operações de subtração; • Operações de multiplicação; • Operações de divisão; • Operações de precisão simples; • Operações de precisão dupla, etc. 2.2.1

Múltiplos

FLOPS Denominação

3

103

106

109

1012

1015

1018

1021

1024

kiloFLOPS

megaFLOPS

gigaFLOPS

teraFLOPS

petaFLOPS

exaFLOPS

zettaFLOPS

yottaFLOPS

Benchmarks

3.1

Computadores convencionais

Para avaliação de desempenho em computadores convencionais, há uma innidade de aplicativos que realizam esta tarefa, entre os quais podemos citar: • Cinebench; • PassMark - CPU Mark; • PCMark; • SiSoftware Sandra; • Whetstone; • Dhrystone; • Fhourstone; • SPEC CPU 2006, entre outros. 3.2

Supercomputadores

Os supercomputadores diferem dos computadores pessoais de diversas formas. Eles normalmente possuem centenas, milhares ou até mesmo milhões de processadores e diferentes arquiteturas de memória. Sua construção também permite que todas as operações sejam realizadas de forma paralela , fazendo assim com que vários processadores trabalhem em cima de uma mesma tarefa. Uma aplicação típica para supercomputadores envolve a multiplicação de longos vetores ou matrizes, sendo algo paralelizável. Assim, não é nenhuma surpresa que a maioria dos benchmarks aplicados a essa categoria de computadores executem este tipo de computação. Vejamos uma lista com os mais comuns e, em seguida, uma descrição do benchmark utilizado para determinar o ranking dos supercomputadores mais rápidos do mundo: • LINPACK;

2


• LAPACK; • Lawrence Livermore Loops; • NAS Parallel Benchmarks; • HPL. 3.2.1

TOP500 e o HPL

O Top500(http://top500.org) é um projeto criado em Junho de 1993 que visa listar os 500 supercomputadores com maior desempenho do mundo. A lista com o ranking é publicada duas vezes ao ano. Atualmente é utilizado o benchmark LINPACK, mais especicamente o HPL (HighPerformance Linpack Benchmark for Distributed-Memory Computers ), para realização de medidas. O HPL é uma implementação portável do benchmark Linpack amplamente utilizada para sistemas paralelos. O benchmark resolve um sistema linear aleatório em precisão dupla (64 bits) em sistemas de memória distribuída. Inicialmente, o Linpack era um pacote de sub-rotinas com o objetivo de resolver sistemas de equações algébricas lineares, encaixando-se na categoria de benchmark do tipo algoritmo. Ele contém dois conjuntos de rotinas: • Decomposição de matrizes; • Resolução do sistema de equações lineares resultantes da decomposição.

De todas as sub-rotinas do pacote, a mais utilizada é a saxpy, que consome a maior parte do tempo de execução do programa. Ela contém somente 15 linhas de código, de baixo nível lidando com vetores unidimensionais. As rotinas de alto-nível utilizam-na diversas vezes, sendo que estas lidam com vetores bidimensionais. Visto que as operações mais utilizadas em supercomputadores são do tipo ponto-utuante, nada mais natural que o benchmark utilizar esse tipo de dado. Os resultados fornecidos pelo HPL usam como unidade-base o Gigaops .

4

Referências • http://www.cse.wustl.edu/~jain/cse567-06/ftp/processor_workloads/index.html • http://www.clubedohardware.com.br/ • http://top500.org/ • http://www.netlib.org/benchmark/hpl/ • http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_de_alto_desempenho • http://es.wikipedia.org/wiki/Linpack • http://pt.wikipedia.org/wiki/FLOPS

3


Henrique Lucas França - Benchmark de Sistemas de Alto Desempenho  

Breve descrição do Benchmark de Sistemas de Alto Desempenho

Advertisement
Read more
Read more
Similar to
Popular now
Just for you