Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DO ESPÍRITO SANTO BACHARELADO EM SISTEMA DE INFORMAÇÃO JEAN CARLOS PENAS DANIELLY VICTOR AVALIAÇÃO DE DESEMPENHO COMPUTACIONAL SERRA 2013 P a g i n a 2 JEAN CARLOS PENAS DANIELLY VICTOR AVALIAÇÃO DE DESEMPENHO COMPUTACIONAL Trabalho apresentado no curso de Bacharelado em Sistemas De Informação, Na disciplina Organização e Arquitetura de Computadores no Instituto Federal do Espírito Santo Professor: Flavio Giraldeli SERRA 2013 P a g i n a 3 Resumo Neste projeto utilizamos dois computadores, um computador móvel chamado Core i3 e um de mesa chamado Celeron 430, o primeiro é portador de múltiplos núcleos e além disso possui uma tecnologia chamada de HiperThread, esta tecnologia permite que cada núcleo físico de processamento simule 2 núcleos lógicos que serão vistos pelo sistema operacional como unidades de processamento independentes, e o outro computador é um monocore, ou seja possui uma só unidade de processamento. Segundo o sítio Clube Do Hardware, as cobaias eletrônicas foram desenvolvidas em épocas diferentes, a família Celeron por exemplo foi desenvolvida em abril de 1998, esta linha de processadores é a versão econômica da Intel e possuem basicamente três aspectos que se diferem do Pentium II, III, IV e até mesmo do Core 2 Duo que são o tamanho do cache L2, clock interno e do barramento externo, estas diferenças fazem do Celeron um processador mais barato e acessível aos usuários domésticos. Já em 2006 foi criada a linha Core Intel, isto foi necessário pois os consumidores exigiam da empresa computadores com maior poder de processamento e então criaram o modelo Core 2 duos Intel que se mostra superior até mesmo em relação ao Pentium Dual Core segundo a comunidade TecMundo. As variáveis que foram mencionadas de forma ativa anteriormente foram submetidas a uma bateria de testes com programas chamados de benchmarks, eles são usados para medir o desempenho de processadores em diferentes de níveis de organização e arquitetura. Com os dados extraídos dos benchmarks, discutimos sobre as transformações necessárias para manter toda a organização do computador balanceada, mencionando técnicas de melhoramento no processador e na memória para que o máximo de rendimento seja mantido. Discutimos sobre os fatores limitantes na organização do chip do processador e também das memórias e toda a organização e a arquitetura que envolve esses componentes, esses conceitos somados com o termo “balanceamento” ocupam a maior parte do tempo dos projetistas, fabricantes de hardware e engenheiros. A evolução do processador está ficando serializada, em consequência disto, a implementação de processadores de múltiplos núcleos está crescendo cada vez mais, em relação a isto, discutimos o quanto o software terá que evoluir para que os recursos dessas implementações sejam bem aproveitadas e o quanto ele perde caso não acompanhe essa evolução. Este relatório também mostra a importância das memórias secundárias no sistema computacional, mais precisamente o HD e outros dispositivos tecnologicamente mais avançando que ele. Toda a dinâmica de funcionamento e alguns aspectos físicos de forma P a g i n a 4 abstraída a respeito do disco rígido foram mencionados e algumas comparações foram feitas para medir o quanto a sociedade ganhou com as tecnologias que temos hoje, que atualmente são os SSD’s. Estes dispositivos são memórias secundárias totalmente eletrônicas e possuem um custo razoavelmente viável, mas mesmo assim, mostramos que as tecnologias anteriores ao SSD não foram descartadas no mercado comercial e descobrimos a real importância dessas memórias que se encaixarão em pelo menos uma das modalidades relacionadas a custo, velocidade e capacidade. No projeto, enfatizamos um pouco a respeito dos conjuntos de instruções que cada computador possui e as suas respectivas especificações (Arquitetura) e conseguimos informações bem interessantes a respeito do uso dessa coleção de instruções em operações envolvendo decodificação de vídeos (SSE3), inteiros (SSE2), ponto flutuantes e criptografia (SSE4). Infelizmente as amostras que levantamos dos computadores para os testes pecaram quanto a implementação do conjunto de instruções AES ou Hardware de aceleração AES, pois o computador core i3 não possui a implementação desse conjunto e por isto mantivemos algumas amostras antigas de um computador mais avançado que ele, trata-se do core i5. Abstract In this project we used two computers, a mobile computer named Core i3 and Celeron 430 desktops called, is the first holder of multiple cores and moreover has a technology called HiperThread, this technology allows each physical core processing simulates 2 logical cores it will be seen by the operating system as units independent processing, and the other is a computer monocore, or has one processing unit. According to the site Hardware, electronic guinea pigs were developed at different times, for example the Celeron family was developed in April 1998, this line of processors is the economical version of Intel and have basically three aspects that differ from the Pentium II, III, IV and even the Core 2 Duo are the L2 cache size, core clock and the FSB, these differences make the Celeron cheaper and accessible to home users processor. P a g i n a 5 In 2006 Intel Core line was created, this was necessary because consumers demanded the company computers with more processing power and then created the Intel Core 2 Duo model that shows superior even compared to Pentium Dual Core according to community TecMundo . The variables that were mentioned earlier were actively undergoing a battery of tests with programs called benchmarks, they are used to measure the performance of processors at different levels of organization and architecture.With data drawn from benchmarks, we discussed the need to keep the whole organization of computer balanced, citing technical improvement in processor and memory for maximum performance is maintained transformations. We discuss the limiting factors in the organization of the processor chip and also the memories and the entire organization and architecture that involves these components, these concepts together with the term "balancing" occupy the most part of the designer, hardware manufacturers and engineers. The evolution of processor is being serialized in consequence, the implementation of multi-core processors are growing more and more, in this regard, we discuss how the software must evolve so that the resources of these implementations are well used and how much he lose if they do not follow this trend. This report also shows the importance of secondary memories in the computational system, precisely the HD devices and other more technologically advancing it. The whole dynamics of the operation and some physical aspects abstracted about the hard way were mentioned and some comparisons have been made to measure the extent to which society gained with the technology we have today, which currently are the SSD's. These devices are fully electronic secondary memory and have a reasonably affordable cost, but nonetheless, we show that previous to the SSD technologies were not discarded in the commercial market and discover the real importance of those memories that will fit in at least one of the modalities related to cost , speed and capacity. In the project, we emphasize a bit about the sets of instructionsthat each computer has and their respective specifications (Architecture) and got some interesting information regarding the use of this collection of statements in transactions involving video decoding (SSE3), integers (SSE2), floating point and encryption (SSE4). Unfortunately the samples we raised computers for testing sinned as the implementation instruction set AES or AES hardware acceleration, because the core i3 computer does not have the implementation of this set and we kept some old samples of a more advanced computer he , this is the core i5. P a g i n a 6 LISTA DE ILUSTRAÇÕES Gráfico 1 - Resultados do Super Pi. ......................................................................................... 14 Gráfico 2 - Resultados do Wprime ........................................................................................... 15 Gráfico 3 - Resultados Do CINEBENCH ................................................................................ 17 Gráfico 4 - Projeção Dos Teste De Performance do Winrrar. ................................................... 19 Gráfico 5 - Taxa de leitura, escrita e cópia das memórias ram, l1, l2 e l3 do Core i3. ............. 20 Gráfico 6 - Taxa de Leitura, Escrita e Cópia Do Sistema De Memória do Celeron 430. ......... 21 Gráfico 7 - Representação Da Latência Das Memórias Entre o Core i3 e o Celeron 430. ...... 22 Gráfico 8 - Comparações Com AIDA64. ................................................................................. 23 Gráfico 9 - Comparações Com AIDA64. ................................................................................ 25 Gráfico 10 - Decodificação De Formatos De Áudio Para 1 e 4 Núcleos, Core i3. .................. 26 Gráfico 11 - Tempo de Decodificação do Core i3, SingleCore e Multicore. ........................... 27 Gráfico 12 - Representação Do Tempo De Conversão. ............................................................ 28 Gráfico 13 - Taxa de Leitura Do Celeron 430. ......................................................................... 36 Gráfico 14 - Taxa de Leitura Do Core i3. ................................................................................. 36 Gráfico 15 - Taxa de leitura do SSD. ........................................................................................ 37 Gráfico 16 - SSD e o HD core i3. ............................................................................................. 37 Gráfico 17 - HD Celeron 430. .................................................................................................. 38 Figura 1 - Serie De Gauss Para Estimar o Valor De PI Com Precisão. .................................... 13 Figura 2 - Lei De Amdahl ......................................................................................................... 15 Figura 3 - Processamento de cada campo por cada núcleo. ..................................................... 16 Figura 5 - Resultados Core i3. .................................................................................................. 32 Figura 6 - Resultados Celeron 430. .......................................................................................... 32 Figura 7 - Perforamnce e Energia, core i3. ............................................................................... 33 Figura 8 - Performance e velocidade, Core i3. ......................................................................... 33 Figura 9 - Características Básicas De um HD. ......................................................................... 35 Tabela 1- Propriedades dos Computadores .............................................................................. 10 Tabela 2 - Resultado Fritz Chess .............................................................................................. 18 Tabela 4 - Configuração do Processador Core i5 ..................................................................... 29 Tabela 5 - Teste Core i5 Para Quatro Núcleos. ......................................................................... 30 Tabela 6 - Teste No Core i5 Para Quatro Núcleos. ................................................................... 30 Tabela 7 - Teste No Notebook Para Um Núcleo ....................................................................... 30 Tabela 8 - Teste No Desktop Para Um Núcleo ......................................................................... 31 Tabela 11 - Propriedades Básicas dos Processadores, Celeron 430 e o Notebook. .................. 34 P a g i n a 7 SUMÁRIO INTRODUÇÃO .......................................................................................................................... 8 SUPER PI ................................................................................................................................. 13 WPR IM E ............................................................................................................................... 14 C IN E BE N C H ....................................................................................................................... 16 FR IT Z C H ES S .................................................................................................................... 18 W IN R R AR ............................................................................................................................ 19 A ID A 6 4 ................................................................................................................................. 20 FO O BA R ............................................................................................................................... 25 FR E EM AK E V ID E O C O N VERT ER .......................................................................... 28 T R UEC RYPT ....................................................................................................................... 29 S A NDR A ............................................................................................................................... 31 PROCESSAMENTO ARITMÉTICO .................................................................................................. 32 P R O C E S S A M E N T O B R U T O V E R S U S P O T Ê N C I A ........................................................... 34 H D TAC H ............................................................................................................................... 35 C ONCL U SÃ O ...................................................................................................................... 38 REFERÊNCIA BIBLIOGRÁFICAS ........................................................................................ 42 P a g i n a 8 INTRODUÇÃO Em 1939, o mundo se polarizou em duas vertentes formadas por grandes potências econômicas que centralizavam toda a economia do planeta, a primeira vertente se chamava Aliados e a segunda, Potência dos eixos. Esta polarização aqueceu o mercado armamentista que por sua vez investiu em novas tecnologias que pudessem melhorar as estratégias militares dos países envolvidos. Nesta época, os EUA desenvolveram uma agência que atendia as suas necessidades durante o percurso da guerra que se chamava Ballistics Research Laboratory (BRL), ou seja laboratório de pesquisa balística e foi usada para desenvolver tabelas de faixa e trajetórias para novas armas, esta agência empregou 200 pessoas que usando calculadoras solucionavam equações balísticas. Por isto, em 1946 um computador de 1500 pés quadrados de superfície, com mais de 18.000 válvulas foi criado e chamava-se ENIAC. (Fonte: Willian Stalling – Arquiteturae Organização De Computadores). Em 1946, um novo projeto desenvolvido pelo projetista John Von Neuman vinha à tona, tratava-se de um novo modelo de computador baseado no Conceito Do Programa Armazenado, esta ideia expressa a possibilidade do programa ser representado por uma forma adequada de armazenamento na memória junto com os dados e então um computador poderia obter suas instruções lendo-as da memória e um programa poderia ser criado ou alterado. Em 1947 surgiu a ideia de substituir as válvulas por transistores e 3 anos depois computadores transistorizados passaram a ser comercializados e desde então o número de transistores vem aumentando proporcionalmente com a densidade lógica da unidade de processamento numa proporção prevista pela lei de Moore que dizia que a cada 18 meses o número de transistores dobraria. (Fonte: Willian Stalling – Arquitetura e Organização De Computadores). Baseado neste contexto histórico vamos mostrar o quanto a sociedade ganhou com o aumento da lógica de processamento utilizando como ferramentas, programas chamados de benchmarks. No relatório temos duas unidades de processamento ao qual iremos trabalhar todos os conceitos apresentados em sala de aula, estes por sua vez serão explorados com os testes, utilizando programas que mesclam diferentes características de cada uma das cobaias eletrônicas utilizadas. Operações com diferentes tipos de dados (compressão de dados, P a g i n a 9 gráficos, criptografia, inteiros e ponto flutuante) serão estudadas com a finalidade de identificar o nível de desempenho dos computadores e, além disso, iremos medir as velocidades de todos os tipos de memórias que fazem parte do sistema de memória implementado no projeto, este sistema é categorizado por três fatores: custo, velocidade e capacidade. As técnicas para otimizar o desempenho do computador consistiam em duas, a primeira é o uso de Pipelines que funcionam como uma linha de montagem em uma fábrica, permitindo que diferentes estágios de execução de diferentes instruções ocorram de forma paralela. A segunda é a Superescalar que permite implantação de múltiplos pipelines em um único processador de modo que as instruções possam ser executadas de forma paralela. A consequência da implementação dessas duas técnicas era o aumento na taxa de clock, mas isto caia em outro problema que é a consequência de um fator físico que é o atrito ou seja a dissipação de potência. Então os projetistas resolveram melhorar o desempenho do computador com a implementação de processadores com tecnologia multicore que fazia o uso de múltiplos processadores em único chip com uma grande cache compartilhada. Baseado na tecnologia Multicore, o novo modelo core Intel traz consigo a implementação de processadores com múltiplos núcleos e este projeto está ganhando dimensões eminentes e isto gera impactos consideráveis na organização e principalmente na arquitetura do computador como por exemplo a migração dos componentes para dentro do chip do processador e a paralelização em códigos, respectivamente. Veremos que a otimização de códigos trará ganhos excepcionais e que até um determinado número de núcleos de processamento será benéfico, por exemplo, em operações como decodificação e renderização de vídeos e processamento de imagens e como consequência teremos um aumento na eficiência do processamento em jogos e por este motivo um dos ambientes computacionais é portador de múltiplos núcleos, trata-se do core i3 (Em alguma parte do relatório será tratado como notebook) e esta diferença vai trazer à tona os conceitos da lei de Amdahl que serão abordados mais adiante. Frisaremos situações em que alguns periféricos se tornam gargalos no sistema computacional, como por exemplo o HD e discutiremos toda a dinâmica no funcionamento físico que existe nesta memória secundária que se tornou um empecilho por causa de um fator físico que mencionaremos mais adiante. A Tabela 1 mostra as propriedades dos computadores utilizados nos testes. P a g i n a 10 Tabela 1- Propriedades dos Computadores COMPUTADOR I COMPUTADOR II Tipo de Computador ACPI x64-based PC (Mobile) ACPI x64-based PC Sistema operacional Microsoft Windows 7 Ultimate Microsoft Windows 7 Ultimate Service Pack do Sistema Operacional Service Pack 1 Service Pack 1 Internet Explorer 10.0.9200.16618 9.0.8112.16421 (IE 9.0) Computador DirectX DirectX 11.0 DirectX 11.0 Nome do Computador DANIELLY-PC FAMÍLIA-PC Nome do usuário DANIELLY Família Nome do domínio RICARDO-NOTE Família-PC Data / Hora 2013-12-01 /10:15 2013-07-10 / 15:54 Tipo de processador Mobile DualCore Intel Core i3- 2370M, 2400 MHz (24 x 100) Intel Celeron 430, 1800 MHz (9 x 200) Nome da Placa Mãe Sony VPC-EH40EB Pegatron IPM31 Chipset da Placa Mãe Intel Cougar Point HM65, Intel Sandy Bridge Intel Bearlake G31 Placa Mãe Memória do Sistema 4043 MB (DDR3-1333 DDR3 SDRAM) 2038 MB (DDR2-800 DDR2 SDRAM) 4 GB DDR3-1333 DDR3 SDRAM 1 GB DDR2-800 DDR2 SDRAM (9-9-9-24 @ 666 MHz) (6-5-5-18 @ 400 MHz) DIMM3: Smart Modular (8-8-8-22 @ 609 MHz) (5-5-5-18 @ 400 MHz) SH564128FH8NZPHSCG (7-7-7-20 @ 533 MHz) (4-4-4-12 @ 266 MHz) (5-5-5-14 @ 380 MHz) (7-7-7-20 @ 533 MHz) P a g i n a 11 (6-6-6-17 @ 457 MHz) (5-5-5-14 @ 380 MHz) Tipo de BIOS Insyde (11/17/2011) AMI (05/04/09) Intel(R) Mobile Express Chipset SATA AHCI Controller Intel(R) 82801GB/GR/GH (ICH7 Family) Controladora IDE Serial ATA Storage Controller - 27C0 Disco rígido Hitachi HTS547550A9E384 (500 GB, 5400 RPM, SATA- II) SAMSUNG HD502HI ATA Device Armazenamento Device (DVD+R9:8x DVD- R9:4x, DVD+RW PLDS DVD+-RW DS-8A8SH (DVD+R9:6x, DVD-R9:6x, DVD+RW:8x/8x, DVD- RW:8x/6x, DVD-RAM:5x, DVD-ROM:8x, CD:24x/24x/24x DVD+RW/DVD-RW/DVD- RAM) Drive óptico :16x/8x, DVD-RW:16x/6x, DVD-ROM:16x, CD:48x/24x/48x DVD+RW/DVD-RW) Status dos discos rígidos SMART OK OK P a g i n a 12 Tipo de processador Mobile DualCore Intel Intel Celeron 430, Core i5-2450M, 2600 MHz (26 x 100) 1800 MHz (9 x 200) Alias da CPU Sandy Bridge-MB Conroe-L CPU Stepping D2 A1 Conjunto de instruções X86, x86-64, MMX, SSE, SSE2, SSE3, X86, x86-64, MMX, SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX SSE3, SSSE3 Velocidade de clock original 2500 MHz 1800 MHz Propriedades Multiplicador Mín / Máx da CPU 8x / 24x 6x / 9x DA CPU Engineering Sample Não Não Código de cache L1 32 KB per core 32 KB Dados de cache L1 32 KB per core 32 KB Cache L2 256 KB per core (On-Die, ECC, Full-Speed) 512 KB (On-Die, ECC, ASC, Full-Speed) Cache L3 3 MB (On-Die, ECC, Full- Speed) Não informado Tipo de Bus DDR3 SDRAM Dual DDR2 SDRAM Largura de bus 64 bits 128 bits P a g i n a 13 Propriedades Da DRAM:Proporção FSB 20:03 12:06 Memória Clock real 667 MHz (DDR) 400 MHz (DDR) Bus Clock efetivo 1333 MHz 800 MHz Banda 10667 Mb/s 12800 Mb/s SUPER PI Este software utilizao algoritmo de Gauss – Legendre para calcular os dígitos do valor de pi que segundo a E n c i c l op éd i a , o método foi baseado no trabalho individual de Carl Friedrich Gauss (1779 - 1815) e Adriane Marie Legendre (1799 - 1855) combinados com algoritmos modernos de multiplicação e raízes quadradas e segundo as especificações do super pi, o algoritmo usado para calcular as casas depois da virgula é definido na figura 1. O objetivo do seu uso é basicamente testar a velocidade dos processadores de ambas CPU’S em função do tempo. Os testes são feitos para 4, 8 e 16 milhões de casas decimais depois da vírgula, neste cenário quanto menor for o tempo do cálculo do valor de pi maior será a velocidade do processador. A organização e a tecnologia empregada nos processadores que participam deste teste interfere no rendimento deste software e como os computadores são de épocas diferentes já era esperado que o computador mais recente se sobressaísse em relação ao mais antigo. Os cálculos a seguir foram obtidos calculando-se o tempo de execução do processador com 1 núcleo sobre o tempo do mesmo com 4 núcleos, esta técnica de se calcular o ganho foi baseada no livro Arquitetura e Organização de computadores, capítulo 2, página 44. Usando os dados numéricos do Gráfico 1, em média o core i3 teve um rendimento de aproximadamente 201,42% no teste deste programa em relação ao Celeron 430, esta média teve um desvio padrão de 85,81% utilizando 4, 8, 16 ( Milhões de casas ) como peso e então a conclusão disto é que o desvio padrão foi bastante dispersivo devido as altas diferenças em torno média, como por exemplo, a maior amplitude no gráfico em torno da média é de 35,97% ( 201,42 - 165,45) e a menor foi de 9,28% ( 210,70 – 201,42) isto quer dizer que ao longo dos testes o rendimento do core i3 foi muito alto em algumas situações ( 228,11% no Figura 1 - Serie De Gauss Para Estimar o Valor De PI Com Precisão. P a g i n a 14 cálculo de 16 milhões de casas em relação ao Celeron 430) e alto, mas porém baixo em outras (165, 45% no cálculo de 8 milhões de casas em relação ao Celeron 430) em relação à média obtida no ganho. Gráfico 1 - Resultados do Super Pi. Segundo o sítio S u p erP i . Ne t , o SUPER PI é um programa serial ( Singlecore) , ou seja, a execução do seu código não é feita de forma paralela e portanto a sua aplicação em processadores com mais de um núcleo é inerente. Quando calculamos o valor de pi para 4, 8 e 16 milhões de casas percebemos que ele calculava sequencialmente o valor de pi e se o super pi fosse otimizado ele calcularia esses valores paralelamente e o tempo de execução seria menor. O comportamento da serialização em programas como o super pi em relação ao número de processadores em um único chip é explicado pelo famoso projetista de computadores Gene Amdahl que em um dos seus conceitos diz que quando o código atinge a serialização, o uso de múltiplos núcleos físicos de processamento possui pouco ou nada de ganho em performance. WPRIME O programa Wprime também trabalha com processamentos aritméticos, a sua função é demonstrar o poder de processamento de um computador através de operações de calculo de raíz quadrada com operações envolvendo chamadas recursivas pelo método newtoniano. O objetivo principal aqui é analisar o ganho do computador que possui a implementação de mais de 1 núcleo de processamento, mas antes de proseguir com a análise do gráfico 2 que mostra os resultados dos testes, vamos explicar o fenómeno que está na figura 2. 207,453 491,921 1043,016 66,768 185,315 317,883 0 200 400 600 800 1000 1200 4 MILHÕES 8 MILHÕES 16 MILHÕES se gu nd os DESKTOP NOTEBOOK P a g i n a 15 Figura 2 - Lei De Amdahl A Figura 2 representa a lei de Amdahl, ela foi proposta em 1967 pelo famoso cientista Gene Amdahl que expressa o speedup (Alto Desempenho ) como a relação entre o máximo de desempenho que um programa pode atingir (100%) sobre a porcentagem do que falta para ser paralelizado ( 1 – f) mais a relação entre o número de processadores ativados ( F ) e a otimização em porcentagem feita no código ( S ), além disto ele diz que o rendimento do programa paralelizável sem overhead (custoso, mas necessário) de escalonamento passa a ser decrescente para um número maior de processadores em um único chip, devido a serialização do código, que é o instante em que custo passa a ser inviável para otimiza-lo. Mas segundo John Gustafson, matemático e cientista da computação norte americano, declarou a lei de Amdahl como sendo pessimista em relação ao aumento do número de núcleos de processamento em único chip e criou uma lei que possui o seu nome dizendo que os calculos que envolvem arbitrariamente grandes conjuntos de dados podem ser feitos com eficiência em paralelo. Mas supondo que a lei de Amdahl esteja correta iremos proseguir a explicação do Gráfico 2. O Gráfico 2 possui uma barra azul que representa o tempo que a máquina perdeu em operações aritméticas com 1 núcleo e a barra cinza representa a mesma análise da barra azul só que para 4 núcleos de processamento. Segundo o Gráfico 2, o core i3 é mais rápido que o Celeron 430, isto é fato, pois o primeiro computador é mais moderno que o segundo, mas mesmo assim resolvemos medir o tempo em que o core calculou o valor de pi que neste caso é 4 vezes menor que a do Celeron (203,684/49,171=~4). Mas o interessante mesmo foi o teste no notebook com 1 e 4 núcleos, ele obteve em média 164% em 203,684 49,171 0 18,565 0 50 100 150 200 250 Desktop Notebook Se gu nd os 1 Núcleo 4 Núcleos Gráfico 2 - Resultados do Wprime P a g i n a 16 performance com o programa configurado para 4 em relação a 1 núcleo físico. Portanto o Wprime é um programa paralelizável e por isto ganhou 164,85% com a implementação de mais 3 núcleos. A conclusão disto é que o aumento do número de processadores, desde que a serialização do programa não seja atingida, é benéfico em aplicativos científicos que trabalham com processamentos aritméticos. CINEBENCH O CINEBENCH é um software que testa toda a capacidade da CPU no processamento de imagens de terceira dimensão. O programa excita ao máximo todos os núcleos disponíveis com a utilização de vários algoritmos, o objetivo principal é medir o desempenho do processador. Na Figura 3, temos uma imagem dividida em quatro partes, cada parte possui a forma de um quadrado, em cada quadrado uma imagem ganhando forma. O número de quadrados que aparecem na imagem é proporcional ao número de processadores em uso e o preenchimento de cada campo representa o tempo de processamento de cada núcleo. Notamos, também, que há momentos em que alguns campos das imagens são processados mais rapidamente, apresentando variações no tempo, isto acontece porque há imagens que apresentam mais cores e tonalidades e modelos diferentes e portanto carregam mais dados e obviamente demorarão mais tempo para serem processadas do que imagens mais simples. Se reduzirmos o nível de abstração é possível que o processador tenha implementado técnicas de projeto como Previsão de desvio, Análise de fluxo de dados e Execução especulativa. A primeira propriedade faz uma previsão e uma busca antecipada de instruções ou grupos de desvio, armazena-os em um buffer para que logo adiante sejam processados, a segunda analisa que instruções estão associadas ás instruções que estão sendo processadas e a partir delas é criada uma sequência otimizadaque será escalonada para ser executada quando estiver pronta, a terceira, como o próprio nome sugere, implementa as duas propriedades citadas anteriormente para especular o processamento de uma instrução antes mesmo do seu Figura 3 - Processamento de cada campo por cada núcleo. P a g i n a 17 surgimento real. O Figura 3 mostra os resultados dos testes feitos com CINEBENCH, como um dos computadores é muito antigo não foi possível fazer o teste em um sistema de 64 bits, isto acontece porque os sistemas operacionais contemporâneos fazem uso de um grande conjunto de instruções otimizados que em família de computadores mais antigas são ausentes e portanto a sua instalação não é aplicável. Gráfico 3 - Resultados Do CINEBENCH No gráfico ao lado, o rendimento do core i3 se deve a menor complexidade do tempo de processamento feito pelo processador portador de múltiplos núcleos, em consequência disto o cinebench obteve um rendimento de 117% com a adição 3 núcleos de processamento na versão de 32 bits do Windows 7 no corei3, já na versão 64 bits do programa e do sistema operacional foi obtido um rendimento de 122% utilizando as mesmas condições de processamento na versão de 32 do cinebench, isto quer dizer que houve um empate técnico no rendimento com uma diferença de 5%. Essa pequena diferença que o cinebench deixou de ganhar na versão de 32 bits no sistema operacional de 64 bits possui uma justificativa, quando a arquitetura do computador é de 64 bits e executamos um programa de 32, deixamos de ganhar em performance, mas perda é relativamente muito baixa a ponto de ser declarada como um empate técnico. Além disso, concluímos que o CINEBENCH é um programa de código paralelizado, pois obteve 117% (1,11/2,41, versão de 32 bits) de rendimento utilizando quatro núcleos em relação ao uso de um, segundo a sua pontuação. 0,39 0 0 0 1,11 2,41 1,19 2,65 0 0,5 1 1,5 2 2,5 3 1 núcleo 4 núcleos 1 núcleo 4 núcleos 32 bits 64 bits Po nt os Desktop Notebook P a g i n a 18 FRITZ CHESS Este programa processa jogadas de xadrez, se tratando de um jogo de xadrez, os movimentos desse jogo são armazenados em uma estrutura representada por grafo e os caminhos são armazenados em nós. Com este software vamos explorar novamente a propriedade multithread que o processador do computador mais recente possui através dos resultados dos testes que estão na Tabela 2. A Lei de Amdahl diz que só aumentando o número de núcleos físicos não garante um bom rendimento, a performance pode ser maior com a utilização de 2 núcleos, isto vai depender de como o processador e os componentes da placa mãe estão organizados e também da arquitetura e principalmente do nível de paralelização do software que estará rodando no hardware, neste caso se o Fritz Chess tivesse um nível de paralelização por volta de 20% operando a 2 núcleos teríamos um ganho de 11% (1/0,80+0,20/2), com 4 núcleos teríamos um outro ganho de 17%, com 8 núcleos, 21%, com 9 21,95% e assim por diante, perceberam que a diferença vai diminuindo nesta proporção 6%, 4%, 0,95% ou seja o ganho é decrescente. Então chegaria um momento que o software não teria praticamente nenhum ganho, a não ser que paralelização seja infinita, o que não é o caso, em algum momento no futuro esses programas não poderão ser mais divididos e então o ganho passaria a ser decrescente caso os projetista e fabricantes insistissem no aumento dos núcleos. Tabela 2 - Resultado Fritz Chess 1 Núcleo 4 Núcleos Velocidade Relativa Kilo nodes Por segundo Velocidade Relativa Kilo nodes Por segundo Celeron 430 2,34 1125 - - Notebook 4,64 2225 11,44 5490 Pois bem, de posse dos resultados, observe que a velocidade relativa do notebook é quase o dobro ( ~1,98 ) tomando como referência o Celeron 430, ambos utilizando um núcleo, e com quatro núcleos em relação ao uso de 1 a sua taxa aumentou por um fator de aproximadamente 2,5x, além disso, suponha que a quantidade de nós processadas seja 10.000 nós então teríamos o tempo de processamento do notebook com 1 núcleo de 4,49 segundos ( 10.000/2225~4,49s ), na mesma condições da suposição anterior, temos um tempo para 4 núcleos de 10.000/5490~1,82 segundos e então o ganho do core i3 seria de 4,49/1,82~2,46 = P a g i n a 19 1,46 = 146% e a conclusão desses dados é que de fato, o software teve um ganho significativo com a elevação do seu nível de paralelização com uma porcentagem de ganho de 146% e portanto a implementação de processadores de múltiplos núcleos traz ganhos altos para jogos como este, se forem paralelizados. O Celeron foi criado em 1998, mas o modelo 430 foi lançado em 2007 e o core i3 foi lançado por volta de 2010, então podemos concluir que o rendimento do benchmark neste teste aumentou 387% em 3 anos, este ganho se deve ao aumento da densidade lógica do processador e da implementação das técnicas de fabricação (Pipeline, Superescalar e Multicores). Então imagine o quanto de benefícios que temos hoje se considerarmos desde o instante em que o primeiro processador 4004 da Intel foi lançado, isto seria espantoso, mas já era previsto pela lei de Moore que dizia que o custo da lógica do computador cairia em uma taxa considerável. WINRRAR Trata-se de um aplicativo de compressão e descompressão de dados, muito utilizado mundialmente e por isto possui algoritmos bastante eficientes. O winrrar possui em uma de suas propriedades um algoritmo que mede o desempenho do computador representado por uma taxa de processamento de dados expressos em quilo bytes por segundo. O Gráfico 4 mostra os resultados dos testes: Gráfico 4 - Projeção Dos Teste De Performance do Winrrar. 564 0 577 0 1150 3074 1154 3125 0 500 1000 1500 2000 2500 3000 3500 4000 1 Núcleo(Kb/s) 4 Núcleos(Kb/s) 1 Núcleo(Kb/s) 4 Núcleos(Kb/s) 32 bi ts 64 bi ts Notebook ( Core i3 ) Desktop ( Celeron 430 ) P a g i n a 20 Se mentíssemos a mesma quantidade de dados processados em todos os casos descrito pelo Gráfico 4, como por exemplo 659456 kb (Lê-se Kilobytes), com as suas respectivas taxas de processamento, então o winrrar 32 bits com o uso de múltiplos núcleos obteria um ganho de aproximadamente de 183% proporcionalizado pela paralelização do seu código, isto mostra que o programa se torna eficiente com o uso de múltiplos núcleos, mas este cenário muda um pouco com a versão de 64 bits do winrrar que obteria 188% de ganho, ou seja houve um empate técnico nas duas versão do winrrar com uma diferença de 5% na sua performance (este caso é semelhante ao do cinebench, no parágrafo 3, da página 17) e então a conclusão disto é que a execução do winrrar de 64 bits é mais apropriado em um sistema de 64 bits, mas a diferença de performance é insignificante e em algumas situações é declarada como um empate técnico. A conclusão deste teste é que a implementação de múltiplos núcleos também beneficia operações de compressão e descompressão de dados, afinal um ganho de 188% de performance é extremamente alto. AIDA64 O Aida64 é um software que realiza diagnósticos e identifica propriedades do computador, além disso é equipado com um módulo responsável por fazer testes que medem a performance do computador que é a consequência da interação entre o ambiente virtual (Arquitetura) e o físico (Organização) que estamos analisando. Os primeiros componentes a serem analisados são as memórias, para isto, apresentaremos informações a respeito do sistema pelo qual elas fazem parte. O sistema dasmemórias apresenta uma hierarquia e é representada por uma pirâmide, onde os dispositivos mais rápidos estão no topo e à medida que descemos nessa pirâmide, a velocidade e o custo diminuem e a capacidade aumenta, seguindo esta lógica, os dispositivos mais lentos seriam as unidades de fita magnética, que analogamente são maiores em termos de capacidade e estão na base dessa pirâmide. Podemos observar que a pirâmide ainda se mantém para as memórias ram e as caches, que são os componentes que estamos analisando, a forma como são organizadas em função do custo e velocidade é dada pela seguinte expressão: RAM<L3<L2<L1, e a forma como elas estão organizadas em função da capacidade é expressa na forma Ram>L3>L2>L1, para forçar esses conceitos observe o Gráfico 5 e o Gráfico 6. P a g i n a 21 Gráfico 5 - Taxa de leitura, escrita e cópia das memórias ram, l1, l2 e l3 do Core i3. 10321 160320391741,44 79768 5853310434 76546 46477 4562910167 160363341414,40 71786 49878 0 2E+10 4E+10 6E+10 8E+10 1E+11 1,2E+11 1,4E+11 1,6E+11 1,8E+11 RAM CACHE L1 CACHE L2 CACHE L3 Leitura (MB/s) Escrita(MB/s) Cópia(MB/s) O Gráfico 6 compara a vazão das operações de leitura, escrita e cópia entre a memória principal, cache L1, L2 e L3. A barra azul, cinza e laranja representa, respectivamente leitura, cópia e escrita, neste caso a velocidade dessas operações na memória cache L1 é extremamente alta (149,31 e 149,35 GB/s respectivamente), porém a taxa de escrita da L1 é muito baixa se comparado com a leitura e a cópia da mesma. O processo de escrita na memória é mais demorado, por se tratar de ser uma operação um pouco mais complexa existem duas técnicas conhecidas, a Write – Back Cache, este processo escreve os dados diretamente na cache e posteriormente o sistema escreve o dado na memória principal, a vantagem dessa técnica é que o processador fica disponível para fazer outras operações. Mas o controlador pode sofrer problemas relacionados a consistência de dados na memória principal em sistemas multprocessados com memória compartilhada, esses problemas podem ser corrigidos por protocolos de consistências do cache. A outra técnica se chama Write – Through Cache, acontece quando o sistema escreve para uma zona da memória principal que está contida em uma linha da cache ao mesmo tempo (Fonte: Enciclopédia). Gráfico 6 - Taxa de Leitura, Escrita e Cópia Do Sistema De Memória do Celeron 430. 0 10000 20000 30000 40000 50000 60000 70000 Leitura (MB/s) Escrita(MB/s) Cópia(MB/s) MB /s RAM CACHE L1 CACHE L2 P a g i n a 22 No Gráfico 5, a hierarquia de memória está bem representada, mas há uma grande discrepância entre as velocidades das memórias que estão sendo representadas no gráfico, mas no Gráfico 6 é possível visualiza bem a hierarquia pois a amplitude das taxas entre as classes de memória é menor, note que a taxa do L1>L2>RAM e isto se mantem para as operações de leitura, escrita e cópia. Gráfico 7 - Representação Da Latência Das Memórias Entre o Core i3 e o Celeron 430. Segundo a Tabela 1, o core i3 possui uma taxa de clock elevada, cache L3 e uma tecnologia de memória mais avançada, que neste caso é a DDR3 que, segundo o Enciclopédia tem dupla taxa de transferência o que justifica o ganho de performance em relação ao Celeron. Mas faltou um fator a ser analisado, trata-se da latência, o que é latência? E o que a causa? Trata-se do tempo de resposta entre o pedido que o processador faz a memória pelo dado e a entrega do dado a ele, este tempo de resposta só existe devido a grande diferença de performance entre o sistema de memória e o processador, pois este tem uma velocidade superior às memórias e então durante esse tempo de espera, o ciclo de busca pelo dado entre o processador e as memórias funciona da seguinte forma: O processador pergunta primeiramente para cache L1, se o dado está presente ou não, caso sim, o dado é entregue ao processador, caso não, o controlador da cache L1 pergunta para o controlador da memória, caso encontre, um bloco da memória principal é copiado para uma linha da memória cache e depois a palavra (organização natural da memória) que está na linha da cache é entregue ao processador. Durante toda esta dinâmica o processador permaneceu ocioso pela espera do dado e o tempo desta espera é chamado de latência. Analisando o Gráfico 7 percebemos que o tempo de resposta do sistema de memória do core i3 é menor que a do Celeron 430, isto significa que o processador do notebook fica menos tempo parado em relação ao Celeron 430, se montássemos uma relação entre essas memórias em função da latência, l3>l2>l1 teríamos algo parecido com a relação em função da capacidade, isto acontece porque a capacidade de cada memória influencia também na latência, a ponto da latência e a capacidade serem proporcionais, ou seja quanto maior capacidade, maior o tempo de espera isto conclui que o P a g i n a 23 controlador de cada memória demoraria mais tempo para entregar ao controlador da memória que antecede a atual, na hierarquia de sistema. Em média o processador do core i3 ficou com uma ociosidade em torno 24,15 nano segundos e o desktop ficou com 75,8 nano segundos, ou seja isto significa que a cada 1 nano segundo que o processador core i3 fica ocioso, o Celeron 430 fica esperando 3 nano segundos, essa variação parece ser pequena, mas não se engane ela faz muita diferença. As médias anteriormente calculadas não estão bem representadas pois possuem um desvio padrão de 61,29% devido uma grande discrepância de tempo que existe entre a memória RAM e as cache, ou seja o tempo que os processadores esperam pelo dado pode ser maior, dependendo da tecnologia empregada na memória RAM que é a mais lenta neste sistema de memória. O processador utiliza dois princípios para manter os dados nessas memórias cache, trata-se do princípio de localidade temporal e espacial. No primeiro princípio, ao acessar uma palavra na memória principal é muito provável que o processador volte a acessar essa mesma palavra novamente durante a execução dos programas. O segundo princípio diz que ao acessar uma palavra na memória principal é provável que em seguida o processador tente acessar uma palavra vizinha à que está sendo acessada previamente, em outras palavras, se uma nuvem chuvosa recai sobre uma região é bem provável que as regiões adjacentes àquela também sejam atingidas. PE R FO R MAN CE D O PRO CESS A DOR Agora vamos discutir sobre a performance do processador como um todo. Além desses testes inserido nos gráficos acima foram feitos mais uma série de outros testes para medir a performance do processador em diferentes cenários como jogos, imagens, vídeo, compressão de dados, criptografia e dados envolvendo números de ponto flutuante. Para tal, o teste envolve 9 módulos que testam a performance do processador em diferentes casos. O Gráfico 8 apresenta os testes que exploram o processamento no processamento criptográfico, processamento de imagens, processamento envolvendo números de ponto flutuante (precisão simples, dupla e estendida). O primeiro é o CPU Quen, ele calcula a capacidade do processador 16778 5616 99,7 315 839 3867 1819 21,9 93 276 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 QUEEN (Scores) PhotoWorxx (Mpixel/s) ZLIB (Mb/s) AES (Mb/s) HASH(Mb/s) CPU Celeron 430 Core i3 Gráfico 8 - Comparações Com AIDA64. P a g i n a 24 de prever desvios em um teste cujo objetivo é resolver o problema da rainha, esse problemaconsiste em calcular quantas peças de rainha são necessárias em um tabuleiro de xadrez quadrático de modo que nenhuma rainha consiga capturar a outra. O processador que conseguir fazer o mínimo de operações possíveis com menor número de erros terá melhor performance, neste caso o processador core i3 é mais rápido que o Celeron por um fator de 4,3x. O segundo fator a ser analisado é o PhotoWorxx, este mede a capacidade do processador com imagens utilizando o sistema de cores RGB que oferece 256^3 combinações de cores possíveis, com diferentes tonalidades e neste cenário o processador executará tarefas envolvendo rotações de imagens, coloração de pixels aleatórios, preenchimento e conversão de cores e então essas operações excitarão uma operação chamada SIMD (Single Instruction Multiple Data-Computação paralela) na CPU, segundo a Instituição UNESP em um dos seus artigos diz que, computadores que apresentam esta arquitetura são utilizados para resolução de problemas intensivos na área científica e na engenharia, onde os dados são matriciais ou vetorizados. De acordo com o Professor Fernando Santos Osório, em um dos seus artigos fala que a arquitetura SIMD é bastante utilizada em processamentos Superescalares e principalmente em processamentos vetoriais, esta arquitetura é responsável também pelo processamento paralelo de instruções, o que justifica a taxinomia do nome SIMD. Então o processador core i3 foi eficiente se comparado com o Celeron, cujo processamento é mais veloz por um fator de 3, 38x. O terceiro é o Zlib, é responsável por medir o desempenho do processador combinado com o da memória, através de uma biblioteca de compressão envolvendo instruções básicas da arquitetura x86 (SSE), neste teste o processador mais recente obteve uma taxa 4,55 vezes maior que a do mais antigo. Um dos testes tem como objetivo testar a capacidade do processador no processamento criptográfico utilizando um conjunto de algoritmos padrão chamado AES (Advanced Encription Standard), nos referimos ao CPU AES, neste quesito o core i3 é mais rápido por um fator de 3,38x, mas não se engane este recurso não está implementado no core i3, caso estivesse o ganho seria extremamente grande. Em quesito segurança temos o CPU Hash, é uma sequência de bits que tem a capacidade de identificar e embaralhar um dado de uma única forma, um exemplo de uso deste algoritmo é aplicação dele em transmissões de dados entre bancos de dados e aplicações, nesta propriedade o core i3 obteve uma relação com Celeron 430 de 3,03 para 1. P a g i n a 25 Gráfico 9 - Comparações Com AIDA64. Temos também os testes de desempenho do processador envolvendo números de ponto flutuantes FPU, o primeiro deles é o VP8, é um programa que testa a desempenho do processador por meio da compressão de vídeos, utilizando o codec de vídeo Google VP8. Os restantes dos testes são semelhantes, a única diferença que há entre eles é a extensão dos vetores para calcular os números de ponto flutuantes com os quais cada um trabalha. Julia é um teste para números de ponto flutuante de precisão simples (32 bits), Mandel para precisão dupla (64 bits) e o Sinjulia para precisão estendida (80 bits), as comparações entre os processadores estão no Gráfico 9. A conclusão dos testes representado pelo Gráfico 9, é que o processador core é eficiente para cálculos de números de ponto flutuante e provavelmente a sua taxa MFLOPS e a CPI será superior em relação a taxa do Celeron, isto quer dizer que o projeto do conjunto de instruções, a tecnologia do compilador, a implantação do processador e a hierarquia da cache e da memória somam uma melhor eficiência do que esses mesmo atributos no Celeron, o que de fato é verdade, basta olhar a Tabela 1. FOOBAR O Foobar é um reprodutor de áudio desenvolvido para a plataforma Windows e o objetivo deste teste é medir o tempo de decodificação para cada um dos formatos suportados por este player para 1 e 4 núcleos (sendo 2 núcleos lógicos) no Core i3, e a partir disto vamos descobrir se houve ganho ou não com a mudança do número de núcleos de processamento. Mas antes de prosseguir com a avaliação, especificamos cada formato de áudio usado nos P a g i n a 26 testes a seguir: AAC ou codificação avançada de áudio, trata-se de um mecanismo de decodificação para compressão sem perda de áudio, segundo a E n c i c l op éd i a , a qualidade do som decodificado por ele é superior ao formato MP3. MP3 ou MPEG 1 Layer - 3 Foi um dos primeiros tipos de compressão de áudio com perdas quase que imperceptíveis ao ouvido humano. O número 3 que prossegue o nome do formato mp3 significa que para esse formato foram projetadas 3 tipos de camadas ou formatos. A camada 1 foi desenvolvida para dar menor compressão e a sua utilização é destinada a ambientes de áudio profissional, já a camada 3 é destinada ao cliente final. Segundo o artigo do Professor Doutor Cavaco Silva, cujo documento foi elaborado na Universidade Taguspark, em Portugal o codificador do mp3 passa por 4 processos, Análise de filtro de bancos, quantização e decodificação e finalmente a fase de decodificação. O interessante desse artigo é que ele fala que os valores usados na fase de quantização e decodificação do mp3 são codificados pelo algoritmo de Huffman. APE é uma compactação não destrutiva do formato de áudio Wav original, por isto é caracterizado como “lossless” e são popularmente usados para comprimir imagens de CD acompanhadas de arquivos C U E . FLAC ou Free Lossless Áudio Codec, no português isto significa Compressor de áudio sem perda de qualidade, ao contrário do MP3, o FLAC não remove nenhuma informação do fluxo de áudio e desta forma ele mantém a qualidade do som. Gráfico 10 - Decodificação De Formatos De Áudio Para 1 e 4 Núcleos, Core i3. O objetivo do Gráfico 10 é mostrar quantas vezes o arquivo de áudio pode ser codificado mais rápido que o tempo real, por exemplo, o formato de áudio AAC 2314,385 156,676 1235,128 1330,187 833,434 76,263 495,789 520,72 0 500 1000 1500 2000 2500 AAC APE FLAC MP3 X v ez es o te m po re al Notebook ( 4 Núcleos ) Notebook (1 Núcleo ) P a g i n a 27 possui 2314,385x, isto quer dizer que o sistema operacional é capaz de decodificar esse formato de áudio 2314,385 vezes mais rápido que o tempo real, se analisarmos cada formato representado na figura 10 chegaríamos na conclusão de que o formato de áudio AAC possui o maior tempo de decodificação em relação aos outros formatos. Todos os formatos são compactadores de áudio, ou seja eles têm a propriedade de alterar o tamanho do áudio, deixando-o menor sem que a qualidade seja afetada. Esses compactadores apresentam várias peculiaridades, uma delas, já mencionada é a redução do tamanho do arquivo de áudio, parece ser uma propriedade irrelevante mas a maioria dos aparelhos móveis de pequeno porte como celulares, smartphones e Ipods apresentam intolerância com relação a arquivos muito grandes, além disto esses gastam mais energia para serem processados e sabemos que o quesito energia é um fator bastante frisado na fabricação desses aparelhos. Mas o que nos deixou espantando foi o tempo de decodificação desses formatos relacionando-os com o processador configurado para singlecore e multicore, abaixo tem um gráfico projetando esses resultados. Gráfico 11 - Tempo de Decodificação do Core i3, SingleCore e Multicore. Que curioso, o Gráfico 11 diz que quando aumentamos o número de núcleos de processamento na decodificação do áudio,o tempo de decodificação aumenta isto quer dizer que a decodificação do áudio sendo executado de forma paralela é inapropriada, além de trazer ganhos decrescentes, o gráfico também configura uma situação chamada de Overhead que é um termo que representa o gasto de recursos computacionais para executar uma determinada tarefa que piora o desempenho do dispositivo. Portanto o aumento do número de núcleos na decodificação de áudio causa Hoverhead no processamento. P a g i n a 28 FREEMAKE VIDEO CONVERTER O FREEMAKE é um conversor de vídeo, áudio, imagens e além disso ele faz Download de dados que possuem as propriedades mencionadas anteriormente diretamente de servidores externos, no entanto ele possui dois recursos adicionais que melhoram a performance das operações envolvidas nas conversões de dados em diferentes formatos. O primeiro é o CUDA, trata-se de uma tecnologia inventada pela NVIDIA para placas gráficas, ela possui um codec chamado H.264 que é bastante utilizado nas operações de codificação, o CUDA terceiriza tarefas entre CPU e a GPU, acelerando a conversão. O segundo é o DIRECTX ou DXVA é uma tecnologia desenvolvida pela Microsoft e utiliza recursos da placa de vídeo para auxiliar na decodificação de vídeo utilizando codecs H.264 e MPEG2. Segundo a documentação deste programa o DIRECTX melhora a conversão em 50%. O objetivo deste teste é medir a performance da cpu na conversão de vídeo, o gráfico abaixo representa 2 cenários em que pelo menos um dos recursos mencionados acima estão ativados, e outro cenário configura o estado normal da cpu na conversão. Gráfico 12 - Representação Do Tempo De Conversão. No Gráfico 12 quanto menor for o tempo de conversão melhor é o rendimento do processador em relação a operação, o gráfico mostra que o core i3 no seu estado normal concluiu a operação de conversão do vídeo em 165 segundos, em relação ao Celeron 430 ele obteve um rendimento de proximamente 248% (575/165*100-100) agora em relação a conversão normal ele obteve um ganho de (165/92*100-100) 79%. Esses dados concluem que além do processador core i3 ter uma performance extremamente mais alta que a do Celeron, conclui-se também que o processador utilizando todos os recursos disponíveis inclusive os 4 núcleos de processamentos resultam em uma performance de 79% sobre a conversão no seu estado normal (Singlercore e sem os recursos adicionais sobre a placa de vídeo). Este rendimento poderia ser mais alto ainda se todos os recursos adicionais disponíveis no core i3 estivessem habilitados. 575 0 165 92 0 100 200 300 400 500 600 700 Normal Recurso ativado Segundos Core i3 Celeron 430 P a g i n a 29 TRUECRYPT Trata-se de um software de código aberto que trabalha com grandes volumes de dados, com operações de criptografia e uma de suas aplicações é a criptografia de dispositivos de armazenamento em massa. Ele suporta três tipos de algoritmos que são o AES, SERPENT e o Twofish e as suas respectivas combinações, além disso, foi criado um conjunto de instruções avançadas de encriptação chamados de conjuntos da INTEL AES-NI ou hardware de aceleração, computadores que apresentam esses conjuntos de instruções podem aumentar a sua velocidade de encriptação e decriptação. Neste teste utilizamos um outro computador portátil que tivesse o conjunto AES para que nós pudéssemos avaliar esta propriedade, abaixo estamos apresentando a configuração de um notebook core i5. Tabela 3 - Configuração do Processador Core i5 Core i5 Tipo de processador Mobile DualCore Intel Core i5-2450M, 2600 MHz (26 x 100) Alias da CPU Sandy Bridge-MB CPU Stepping D2 Conjunto de instruções x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AES, AVX Velocidade de clock original 2500 MHz Multiplicador Mín / Máx da CPU 8x / 25x Engineering Sample Não Código de cache L1 32 KB per core Dados de cache L1 32 KB per core Cache L2 256 KB per core (On-Die, ECC, Full- Speed) Cache L3 3 MB (On-Die, ECC, Full-Speed) Abaixo estão apresentadas as tabelas com as taxas de encriptação e decriptação com e sem hardware de aceleração para ambos computadores. Infelizmente não foi possível explorar alguma propriedade relacionada com o conjunto instruções AES no core i3, pois este modelo core não tem suporte para este conjunto, mas para não perder a oportunidade de estudar essa propriedade mantemos as tabelas do core i5 com e sem o hardware de aceleração AES. P a g i n a 30 Tabela 4 – Teste Core i5 Para Quatro Núcleos. Aceleração de Hardware ativado Algorítmo Encriptação(MB/s) Decriptação(MB/s) Média(MB/s) AES 1433,6 1433,6 1433,6 Twofish 231 243 237 AES-Twofish 199 208 204 Serpent 134 134 134 Serpent-AES 123 122 122 Twofish-Serpent 83,9 86.2 85,1 AES-Twofish-Serpent 80,4 81.5 81,0 Serpent-Twofish-AES 80,3 79.0 79,7 Tabela 5 - Teste No Core i5 Para Quatro Núcleos. Aceleração de Hardware Desativada Encriptação(MB/s) Decriptação(MB/s) Média(MB/s) AES 270 267 268 Twofish 231 243 237 Serpent 134 133 134 AES-Twofish 122 126 124 Serpent-AES 88,9 88,8 88,9 Twofish-Serpent 85,1 86,4 85,7 Serpent-Twofish-AES 84,7 85,2 65 AES-Twofish-Serpent 64,8 65 64,8 Com a aceleração de hardware ativada e com o TrueCript configurado para quatro núcleos, a velocidade média de processamento criptográfico do algoritmo AES no Core i5 é multiplicado por um fator de cinco, comparando-o com o hardware de aceleração desativado. Com a aceleração de hardware ativada o Truecrypt obteve um rendimento monstruoso de 429% (mantendo o buffer de 50 Mb com a taxa de 1433 Mb/s, o seu tempo de operação seria aproximadamente 0,034 segundos) em relação ao uso de 4 núcleos sem o hardware de aceleração AES. A implementação de um conjunto de instruções otimizados para criptografia somados com a paralelização do código do Truecrypt refletiram nesse monstruoso ganho de performance de 429%, isto mostra que mexendo na arquitetura do computador e também otimizando o software, o ganho de performance é muito alto. Tabela 6- Teste No Notebook Para Um Núcleo Aceleração de Hardware Desativada Encriptação(MB/s) Decriptação(MB/s) Média(MB/s) AES 119 119 119 Twofish 89,6 96,7 93,1 Serpent 51,3 54,3 52,8 AES-Twofish 51 53,8 52,4 Serpent-AES 35,7 37,7 36,7 P a g i n a 31 Twofish-Serpent 32,4 34,6 33,6 Serpent-Twofish-AES 25,7 27 26,4 AES-Twofish-Serpent 25,7 26,8 26,3 Tabela 7 - Teste No Desktop Para Um Núcleo Aceleração de Hardware Desativada Encriptação(MB/s) Decriptação(MB/s) Média(MB/s) AES 64,7 64,4 64,4 Twofish 55,7 59,6 57,5 Serpent 30 30,4 30,4 AES-Twofish 29,2 30 29,6 Serpent-AES 20,2 20,4 20,3 Twofish-Serpent 19,2 19,9 19,5 Serpent-Twofish-AES 14,8 15,2 15 AES-Twofish-Serpent 14,8 15,2 15 Com a aceleração de hardware desativada, no core i5, o rendimento do algoritmo AES é de 83% em relação ao algoritmo do Celeron 430, supondo que o buffer seja de 50 Mb. Sem aceleração, o notebook perde 345% de rendimento no total, ou seja, ele deixa de ganhar um rendimento extremamente alto e vai fazer falta quando o usuário estiver trabalhando com um volume de dados muito grande e portanto o uso de processadores com mais de um núcleo para programas de criptografia como TrueCrypt com alto nível de paralelismo traz ótimos ganhos em termos de performance e velocidade. SANDRA O Sisoftware Sandra realiza diagnósticos que exploram diversas propriedades do computador, o que difere ele do aida64 éque o nível de abstração dos dados oferecidos por ele é mais baixo, ele é dividido em seis propriedades, uma delas são os módulos benchmarks, este grupo é composto por 33 programas que testam todos os componentes do computador de forma distinta, um desses programas, que é o primeiro a ser analisado é o teste de processamento aritmético que consiste em fazer operações envolvendo números de ponto flutuante e inteiros, para tal existem dois módulos que são responsáveis por esse processamento, nos referimos ao Dhrystone que trabalha com os números inteiros e o whetstone com ponto flutuante. O whetstone foi desenvolvido na linguagem ALGOL 60 em 1976 no Laboratório Nacional De Física Da Inglaterra e explora as operações de ponto flutuantes e é composto por P a g i n a 32 vários módulos que são executados através de loops, ele conta com um conjunto de instruções SSE (Streaming SIMD Extensions) na versão 4.1 que implementa instruções que facilitam as operações com números de ponto flutuante. O Dhrystone foi desenvolvido em 1984, ele simula chamadas de sistemas e operações de leitura e escrita de dados e mede o desempenho do processador através de conjunto de instruções que consegue executar por ciclo. Como os computadores atuais são capazes de executar várias instruções por ciclo e dependem de muita velocidade e quantidade de cache, o desempenho pode variar de um aplicativo para outro. Processamento Aritmético Analisando as figuras 4 e 5 podemos inferir que os processadores processaram mais instruções do que números inteiros, ponto flutuantes de precisão simples, dupla e estendida. A conclusão disto, é que as operações que envolvem instruções são mais fáceis de serem processadas, o que justifica o aumento das vazões de giga instruções por segundos descritas nas figuras abaixo. Figura 4 - Resultados Core i3. Figura 5 - Resultados Celeron 430. Na Figura 6, observamos que as operações que envolve números de ponto flutuante de precisão dupla gastam mais energia do que as outras operações, e além disso o processador gasta menos energia processando instruções do que as outras operações envolvendo inteiros e ponto flutuantes, mas o interessante mesmo é que as operações com números de ponto flutuante de precisão dupla gastam mais energia do que as operações que envolvem números P a g i n a 33 de ponto flutuante de precisão estendida. Figura 6 - Perforamnce e Energia, core i3. A Figura 7 já é previsível pois se o processador core i3 gasta menos energia processando instruções e essas por sua vez são mais simples de serem processadas, logicamente em 1 ciclo o processador vai ter maior velocidade de processamento com operações envolvendo instruções do que o restante das operações, a negação da mesma análise pode ser falta para o ponto flutuante de precisão dupla, ou seja, se o processador gasta mais energia para processa-los e esses por sua vez são difíceis de serem processados, então em 1 ciclo a menor quantidade de operações que serão processadas são as que envolvem números de ponto flutuante de precisão dupla. Figura 7 - Performance e velocidade, Core i3. Uma outra observação são os conjuntos de instruções envolvidos nas operações descritas pelos gráficos acima, como por exemplo o conjunto de instruções SSE4.1. Segundo o Guia Do Hardware, esse conjunto é composto por 47 instruções que permitem utilizar todos os núcleos disponível no processador de forma eficiente. O conjunto SSE4.2 implementa é uma extensão do SSE4.1 foi introduzido no processador Pentium 4, lançado em novembro de 200, este conjunto apresentava 144 instruções destinadas a processamento de dados, entre estes haviam instruções para processamento de números de ponto flutuante. Outro conjunto importante é o SSE3 (Figura 5) que de acordo com o Suporte Da Intel este conjunto de instruções possui implementações que ajudam no “alargamento” das instruções do tipo únicas (Single Instruction) aplicadas a múltiplos dados que também são chamadas de instruções do tipo SIMD, na computação paralela, este conjunto permite, também que uma mesma instrução pode ser aplicada a diversos dados simultaneamente e portanto o SSE3 é o tipo de conjunto de P a g i n a 34 instruções que dá uma boa performance em processamento de vídeos e jogos. Pro ces sa men to B ru to Versus Po t ên c ia Vamos parar de discutir sobre os conjuntos de instruções e algumas curiosidades descritas pelos gráficos dos tópicos anteriores e entrar num tema bastante interessante que envolve processamento e potência. Nas técnicas de projeto de hardware, os termos processamento e potência são inimigos, por quê? Os projetistas travam uma batalha contra fatores limitantes no balanceamento de desempenho do processador quando as técnicas de melhorias são implementadas, com a migração das portas lógicas para dentro do chip do processador repercute no encurtamento dos caminhos onde passam os elétrons, isto faz com que as operações ficam mais rápidas e como consequência a taxa de clock aumenta, com a densidade lógica do processador aumentando cada vez mais, surgi a dificuldade de evitar o calor gerado pela alta densidade. Tabela 8 - Propriedades Básicas dos Processadores, Celeron 430 e o Notebook. Propriedades Celeron 430 Notebook Transistores 105 milhões 624 milhões Tamanho 37,5 X 37,5 mm 37,5 X 37,5 mm A lei de Moore faz uma previsão da memória e do processador em função da densidade lógica, que por sua vez está interligado com o número crescente de transistores de dentro do chip do processador e segundo Stallings, esse crescimento traz uma consequência que é exatamente um dos componentes que estamos analisando, que é a potência, e junto com ela, o atraso de RC e a latência da memória. O problema do atraso de RC está associado a resistência e a capacitância dos fios de metal e se refere aos números de elétrons que são transportados por esses fios que estão ficando cada vez mais finos e como consequência a resistência se eleva e, por último, a latência, esta é gerada pela diferença de performance entre o processador e a memória, essa diferença é a consequência do tempo em que o processador permanece ocioso para que o dado seja entregue a ele. P a g i n a 35 HDTACH O HD TACH é um programa que testa tanto dispositivos de acesso sequencial, quanto aleatório e o “burst speed” ou velocidade de transmissão que suporta tecnologias como SATA, USB, RAID, IDE, etc. Com este programa vamos explorar algumas propriedades do disco rígido, mas antes de mais nada precisamos de conhecer melhor o HD. O HD é um dispositivo de armazenamento permanente, também classificado como uma memória secundária, ele possui uma cabeça de leitura que plana sobre um prato circular de vidro coberto por um material magnetizável, o ponto em que ele plana sobre o prato só é atingido quando uma bobina sofre a ação da eletricidade que por sua vez irá gerar um campo eletromagnético que conduzirá o sentido de rotação do disco e transportará os pulsos elétricos para a cabeça de leitura. O disco é formado por vários anéis chamados de trilhas que são separadas por lacunas, as trilhas são formadas por setores que é a onde ficam armazenados os dados, este por sua vez possui um tamanho fixo que geralmente é 512 bytes, mas pode variar, além disso os setores são separados por intratrilhas, as características básicas do HD são mostradas na figura 8. O processo de leitura e escrita dos bits das trilhas mais externas são mais rápidos do que os bits das trilhas mais internas, como consequência avelocidade angular variava, então foi necessário compensar a variação para que a cabeça de leitura pudesse ler e escrever os bits em uma velocidade constante conhecida como velocidade angular, é por isto que a velocidade linear da cabeça de leitura no disco é mais alta nas bordas do que no centro, este fenômeno está configurado no Gráfico 13 e Gráfico 14. Figura 8 - Características Básicas De um HD. P a g i n a 36 Gráfico 13 - Taxa de Leitura Do Celeron 430. Gráfico 14 - Taxa de Leitura Do Core i3. Outra explicação lógica seria também o diâmetro de cada trilha desta estrutura que diminui das bordas para o centro e é conveniente que tenha mais setores nas trilhas mais externas para gravar mais dados e quem administra essa propriedade é o “zoned bit recording”, como as trilhas mais externas possuem mais setores e portanto mais dados a serem gravados ou lidos, a velocidade linear terá que aumentar para atender essa demanda e ela vai diminuindo a medida que as trilhas mais internas são atingidas, estas possuem menos setores e portanto um número menor de dados a serem gravados ou lidos. Então, o acesso a área mais externa do HD é aproximadamente de 2 a 3 vezes mais rápido que o acesso a área interna, já que a cada volta a cabeça de leitura lerá mais dados. Rodando os benchmarks, podemos notar isso facilmente, no começo as taxas de transferências do gráfico são absurdamente mais altas (cache de disco), pouco depois elas vão caindo lentamente a medida que os dados mais próximos do centro são lidos, isto pode ser bem visualizado nos gráficos 13 e 14. Uma outra observação bem interessante são os pequenos picos representados por quedas drásticas na taxa de leitura, no Gráfico 13 e no Gráfico 14, isto ocorre devido a série de fatores, os mais comuns e que acontecem com frequência é a leitura de dados fragmentados. P a g i n a 37 Gráfico 15 - Taxa de leitura do SSD. O disco rígido é um dispositivo de armazenamento mecânico e por isto é o primeiro da fila dos dispositivos que mantém o gargalo no sistema computacional pelo simples fato de ser mecânico, já que quase todos os componentes que fazem parte do ambiente computacional são eletrônicos, então com o objetivo de tentar eliminar isto, os projetistas de hardware desenvolveram uma nova tecnologia de armazenamento em massa totalmente eletrônico chamado de SSD. O SSD é feito de memórias flash, portanto é uma memória não volátil e é totalmente eletrônico o que justifica o cenário que está configurado no Gráfico 15. Outra observação são as taxas reais dos dispositivos mencionados acima em relação as taxas teóricas. Nas avaliações numéricas abaixo, algumas suposições foram feitas, a taxa máxima a ser atingida é dada como 100%, que neste cenário é 600 MB/s para que seja possível calcular porcentagem da taxa em relação a teórica e ao todo de cada componente. Gráfico 16 - SSD e o HD core i3. No Gráfico 16 mostra um SSD e um HD e as suas respectivas taxas de leitura representadas por barras vermelhas, além destes, esses gráficos possuem barras cinzas que simbolizam as taxas P a g i n a 38 teóricas, os cálculos abaixo serão feitos supondo que a taxa de 600 MB/s seja de 100%. Na parte do gráfico 16 que corresponde ao SSD está mostrando que a velocidade real do dispositivo em questão está acima da taxa teórica e corresponde 82,43% do esperado, superando a taxa teórica em proximamente 29,10% a mais (neste caso estamos supondo que a taxa teórica represente 53,33% do esperado (taxa/6)), já no hd a taxa real representa 30,45% do esperado sendo que falta 23% para ele atingir a taxa teórica. Gráfico 17 - HD Celeron 430. No Gráfico 17 configura um cenário em que a velocidade do hd Celeron 430 possui uma taxa que representa 37,21% do que se espera, mas em relação a taxa teórica ele precisa de 16,22% para atingi-la. Se montarmos uma relação entre os resultados desses testes teríamos da seguinte forma SSD>HD core i3> HD Celeron 430.A conclusão desses dados numéricos é que compensa usar um SSD em vez de um hd apesar do SSD ter algumas desvantagens, mas a principal é o custo por byte, ele é muito caro. Ele está se popularizando assim como HD se popularizou em 1957 quando foi lançado, além disso, para os pessimistas que acham que o hd vai sair do mercado devido a entrada do SSD estão enganados, o hd ainda se encaixa em duas modalidades baixo custo e alta capacidade e além disso possui uma performance razoável para ser aplicados em outros cenários como por exemplo backup. C O NCL USÃ O O objetivo do trabalho é dar base aos conceitos que foram dados em sala de aula para evitar aplicações superficiais. Em sala de aula estudamos a relação custo, velocidade e capacidade no sistema de memórias e no mercado de fornecedores, os preços dessas memórias também aumentam quando elas são analisadas hierarquicamente, com a velocidade e o custo na mesma proporção expresso pela relação l1>l2>l3>ram e a capacidade ram>l3>l2>l1, o primeiro acontece por que o custo é por bit, pois as cache são feitas de um material extremamente caro e constatamos o quão grande é a velocidade dessas memórias. P a g i n a 39 Na sala de aula estudamos os gargalos gerados pela diferença de performance entre o processador e a memória, partindo disso explicamos em uma interpretação gráfica, a dinâmica de busca pelo dado entre o processador e o sistema de memória, vimos que o processador calcula o endereço do byte que será lido e faz a requisição da palavra a cache, o controlador deste componente verifica se o dado está, caso esteja, ele entrega para o processador, caso contrário ele faz uma requisição ao controlador da memória, este copia o endereço de um bloco de bytes para linha da cache e ela entrega quase que simultaneamente ao processador. Além disso concluímos que o objetivo da dinâmica entre o processador e o sistema de memória é reduzir ao máximo a frequência de acessos a memória devido a sua lentidão e manter por mais tempo os dados mais acessados nas memórias cache. Vimos também que a medida que a densidade lógica do processador aumenta, aparecem fatores limitantes como a potência, que é a energia dissipada e sabemos que o calor é um desestabilizador do sistema de circuito eletrônicos. Além disso estudamos os efeitos do aumento da densidade lógica do processador e conseguimos identificar benefícios, como a redução do custo da lógica e da memória e notamos que a potência realmente reduziu quando analisamos tanto a capacidade, quanto o processamento em relação a potência, essas características foram estudadas através da lei de Moore. Analisamos os efeitos do uso de processadores de múltiplos núcleos somados com a paralelização do código e percebemos que isso trouxe uma grande performance para aplicações de conversão e renderização de vídeo, criptografia, jogos, compressão e descompressão de arquivos, processamento de imagens e processamento de áudio. Notamos o quão importante é a paralelização e o uso dos processadores de múltiplos núcleos quando analisamos os teste envolvendo o Foobar, segundo este teste haviam conversores que conseguiam reduzir drasticamente o tamanho do arquivo de áudio, sabemos que tamanho é um fator de grande influência quando o requisito analisado é o espaço, nem todos os dispositivos móveis, por exemplo, permite a execução de grandes arquivos de áudio, um outro fator a ser analisado é energia, pois quanto maior for arquivo maior será a potência gerada no processamento que está associada a quantidade de energia utilizada na operação dos dados do
Compartilhar