Análise de Desempenho da Arquitetura de Interface …. Virtual Interface Architecture...

Post on 08-May-2018

214 views 1 download

transcript

Análise de Desempenho da Arquitetura de Interface Virtual - VIA

Diego Luís Kreutz, Rodrigo da Rosa Righi Laboratório de Sistemas de Computação - LSC Universidade Federal de Santa Maria - UFSM

{kreutz,rodrigor }@inf.ufsm.br

Resumo

A arquitetura de inte1jace virtual (VIA) é uma padroniza­ção de uma série de implementações de protocolos de re­de eficientes que visa oferecer um incremento da largura de banda e redução da carga de processamento local e da latência de comunicaçtio em relação aos protocolos de re­des tradicionais. Esse documento apresenta a arquitetura VIA e compara seu desempenho com os protocolos tradici­onais usando duas aplicações desenvolvidas para essa fina­lidade.

1. Introdução

Com o rápido desenvolvimento de tecnologias para redes e o aumento da computação em agregados de computado­res, tem-se buscado maneiras para melhorar a comunica­ção entre nós de uma rede. Com o objetivo de melhorar o desempenho na transmissão de dados entre computadores, a arquitetura de interface virtual foi desenvolvida de for­ma a maximizar a largura de banda e reduzir a latência de comunicação [I]. Este documento descreve a arquitetura VIA e apresenta comparações de desempenho dessa arqui­tetura em relação às tradicionais.

2. Arquitetura de Interface Virtual - VIA

Na arquitetura de redes tradicionais, para toda a requisi­ção de transferência de dados entre computadores ocorre uma cópia de dados da memória do usuário para o espaço do núcleo (kernef). Há também, a troca de contexto do pro­cesso de usuário para o núcleo do sistema operacional [5].

Para fornecer um rápido caminho entre as aplicações e a rede foram propostos métodos para remover o núcleo do sistema operacional dos protocolos de comunicação entre computadores [2]. Assim, foi desenvolvido pelas empresas Intel, Compaq e Microsoft o projeto da arquitetura de inter­face virtual (Virtual Interface Architecture), ou VIA [I]. A arquitetura VIA provê para cada processo cliente um aces­so protegido e direto a interface de placa de rede, de onde

148

Marcelo Pasin Departamento de eletrônica e computação

Universidade Federal de Santa Maria- UFSM pasin@inf. ufsm. br

o nome interface virtual (VI). Durante o estabelecimaneto da conexão o sistema operacional é envolvido e realiza a verificação dos parâmetros. Depois de realizada a conexão, a transmissão dos dados ocorre diretamente entre a área de memória do usuário e a placa de rede.

3. Componentes da Arquitetura VIA

A arquitetura VIA é composta de quatro componentes: Interfaces Virtuais (VIs), fila de requisições completas, Pro­vedor VI e Cliente VI. O Provedor VI é composto por um adaptador de rede e uma parte de software, chamado de agente do núcleo. O Cliente VI é formado por um programa de aplicação e alguma biblioteca de comunicação.

Uma interface virtual consiste de um par de filas de tra­balho: uma fila para envio e outra para recepçã~. Os Cli­entes VI colocam suas requisições em fonna de descritores nas filas de envio e de recepção de dados. Um descritor é uma estrutura de dados que contém todas as infonnações que o Provedor VI necessita para processar a requisição e também ponteiros para a área onde estão os dados.

Uma placa de rede VIA implementa as interfaces virtuais e realiza diretamente as funções de transferência de dados [4]. O agente do núcleo é uma parte privilegiada do sistema operacional, usualmente um driver de dispositivo, que re­aliza as funções de gerenciamento necessárias para manter uma interface virtual entre o Cliente VI e um adaptador de rede VIA.

4. Aplicações e Resultados

Foram realizadas aplicações utilizando os protocolos tra­dicionais TCPIIP e UDPIIP, juntamente com testes utilizan­do a arquitetura VIA.

Foi utilizado o software Modular VIA (M-VIA) versão 1.0 [3]. Esse software possui a capacidade de realizar tes­tes com a arquitetura VIA tanto em adaptadores de rede próprios para essa arquitetura quanto para os demais, como interfaces Ethemet. Os programas envolvendo os protoco­los TCP e UDP foram produzidos utilizando-se Sockets.

Anais WSCAD (2002) 148-149

Os testes foram realizados em duas máquinas do agre­gado do Laboratório de Sistemas de Computação. Cada máquina contém dois processadores de I GHz Pentium Ill , com 768 Mbytes de memória principal e 512 Kbytes de mamória Cache L2 e sistema operacional Linux, versão 2.2.14-5.0smp. Foi utilizada a placa de rede Intel EtherEx­press 10/ IOOMbps em ambas as máquinas e a comunicação entre estas ocorre de modo direto e ponto-a-ponto, sem a utilização de um comutador.

4.1. Largura de Banda e Tempo de Comunicação

Essa aplicação tem a função de medir a qualidade da rede com diferentes protocolos, realizando uma transmissão de dados pingpong entre duas máquinas. Ambos os programas recebem como parâmetros de entrada o número de pacotes a serem enviados e o tamanho, em bytes, de cada pacote. O cliente envia uma mensagem, o servidor recebe e a re-envia para a máquina cliente. Esse processo é repetido segundo o número de pacotes.

r .

... . ..

.• ..41 ··· " ........ ,r···· -'t ' .... ; -··

> •• •• •. "' • ;~.~ ...... J.:

........

... hHWthOdli ...... """" ( ....... ~

Figura 1. Largura de Banda (100·1400 bytes)

Primeiramente, a aplicação foi executada com o tama­nho das mensagens variando de 100 a 1400 bytes (aproxi­madamente o tamanho do pacote Ethemet). A figura I de­mostra uma superioridade do protocolo VIA em relação aos demais. Constata-se também que a aplicação que possui os piores resultados é aquela que utiliza o protocolo TCP. Também foi realizado uma comparação entre os protocolos de melhor desempenho: VIA e UDP. Neste teste o tamanho das mensagens foi variado de 100 a 100000 bytes. A largu­ra de banda em ambas os programas tendem a estabilização, onde o protocolo UDP atinge proximadamente 79% da lar­gura de banda máxima provida pelo adaptador de rede e a programa utilizando VIA alcança 92% deste máximo.

4.2. Geração de Fractal e Certificação dos Resulta­dos

Essa aplicação foi realizada utilizando os protocolos TCP e VIA. Na aplicação em questão é utilizado o fractal de Mandelbrot, com o tamanho da janela variando de 200x200

149

a 800x800 pixels, com incrementos de I 00. É utilizada uma matriz quadrada para especificar a região do fractal.

A máquina cliente calcula o valor de cor para todos os pontos de uma linha e a transmite para a máquina servidora. Após a passagem de todas as linhas, a aplicação coletora dos dados, desenha o fractal de Mandelbrot. Como o desenho do fractal é determinístico, pode-se inferir sobre a correta transmissão dos dados. O programa cliente retoma o tempo decorrido para transmitir todo o fractal através da rede, ou seja, é calculado o tempo de rede juntamente com o tempo de processamento.

Ambos os programas, TCP e VIA, transmitem os dados com precisão. Em todos os tamanhos de janela, o progra­ma com VIA obteve melhor desempenho. Com o tamanho de 800x800 pontos, há a maior diferença de tempo, onde é atingido aproximadamente 1450ms e 1290ms para os pro­gramas utilizando TCP e VIA, respectivamente.

5. Conclusões e Trabalhos Futuros

A arquitetura VIA permite realizar uma comunicação confiável e eficiente entre as estações de trabalho de uma rede de sistema. As aplicações realizadas usando o soft­ware M-VIA demostram a eficácia da arquitetura VIA em relação aos protocolos tradicionais: TCP e UDP .

Futuros testes incluem a execução das aplicações especi­ficadas utilizando-se um chaveador Ethemet.

Referências

[I] Compaq Computer Corp.; Intel Corp.; Microsoft Corp. Virtual Interface Architecture Specification. V. 1.0, http: I / www . viarch. org, Dec 1997.

[2] EICKEN, E. V.; VOGELS, W. Evolution ofVirtual ln­terface Architecture. IEEE Computer Magazine, Nov. 1998, p. 61-68.

[3] NERSC - National Energy Research Scientific Com­puting Center, M-VIA: High Pe1jormance Modular VIA for Linux, University of. Califomia, Berkeley, http://www.nersc.gov/ research/ FTG/ via, 2001.

[4] BUONADONNA, P.; GEWEKE, A.; CULLER, D. An implementation and Analisys of the Virtual Interface Machine, Proceedings of SC '98, Orlando, Florida, Nov. 1998, p. 7- 13

[5] DRUSCHEL, P. Operating System Support for High­Speed Networking. Communications of the ACM, 39(9), Sep. 1996, p. 41 - 51.

SuperSim: Ferramenta de Simulação para Arquiteturas Superescalares

Rogério Ferreira da Silva, Ronaldo A. L. Gonçalves, João Angelo Martini Departamento de Informática. Universidade Estadual de Maringá

r(silva@din. uem. br ronaldo@din. uem. br jangelo@din. uem. br

Resumo

Este trabalho apresenta o SuperSim, uma ferramenta de monitoração e simulação para arquiteturas superescalares. O objetivo da construção da ferramenta é .fàcilitar a análise e interpretação dos dados obtidos após a realização de um grande número de simulações. feitas com o simulador sim-outorder. do conjunto de ferramentas SimpleScalar Tool Set.

1. Introdução

O processamento superescalar é a última de uma longa série de inovações que possuem o intuito de produzir microprocessadores mais rápidos [I]. Ao longo do tempo, surgiram várias implementações para a arquitetura superescalar. Normalmente, para análise de arquiteturas experimentais, para as quais ainda não existem protótipos, utiliza-se a simulação. Um simulador arquitetura! é uma ferramenta capaz de reproduzir o comportamento de um sistema de computação [2].

O Departamento de Computação da Universidade de Wisconsin-Madison, disponibiliza gratuitamente para uso não comercial, um conjunto de ferramentas de simulação para a arquitetura superescalar, chamado The SimpleScalar Tool Set. Este é um conjunto de sete ferramentas (simuladores) para sistemas de computação de alto nível, que pode simular a execução de programas sobre uma grande quantidade de processadores modernos.

Um inconveniente verificado na utilização d~sses simuladores, é que eles são executados e configurados por linha de comando, através do console do sistema operacional. Os resultados da simulação também são dispostos na forma de texto, o que muitas vezes dificulta o aprendizado e a interpretação dos resultados obtidos.

Para solucionar o problema, este trabalho apresenta a implementação de uma ferramenta, construída em Java®, para o simulador sim-outorder, do Simplesca/ar Tool Set, na qual as configurações podem ser feitas utilizando-se componentes de interface gráfica com o usuário. Os resultados da simulação, são lidos pelo aplicativo, e transformados em dados apresentáveis em tela, como tabelas e gráficos de linha.

150

2. Simulação e o Conjunto de Ferramentas SimpleS calar

Simulação é uma técnica de avaliação que representa através de um modelo o comportamento de um sistema no domínio do tempo [3]. Quando pesquisadores da área de arquitetura de computadores precisam aperfeiçoar um sistema de computação, frequentemente usam um simulador para analisar o sistema proposto. O mais complexo simulador do conjunto de ferramentas SimpleScalar é chamado de sim-outorder, ele reúne as funcionalidades mais importantes dos outros simuladores. O sim-outorder implementa um processador superescalar, com dois níveis de hierarquia de memória e remessa de instruções muito detalhada. Este simulador tem sido amplamente utilizado em diversos trabalhos que avaliam o comportamento de microprocessadores [4, 5].

No sim-outorder, existem 54 argumentos diferentes de linha de comando, que configuram o simulador. Como as estatísticas geradas também são dispostas na tela em formato de texto, muitas vezes é trabalhoso realizar diversas simulações e interpretar os resultados das mesmas. A ferramenta apresentada neste trabalho tem o intuito de facilitar este processo.

3. Definição da Ferramenta

A ferramenta desenvolvida possui três funcionalidades básicas: configurar o simulador sim-outorder, através de componentes de interface gráfica com o usuário; realizar diversas simulações com o mesmo benchmark, variando até duas opções de configuração dentro de um intervalo determinado; transformar os resultados gerados pelo simulador em dados apresentáveis em tela, como tabelas e gráficos de linha.

A interpretação dos resultados obtidos por um grande número de simulações é complexa, tornando extremamente difícil a análise dos dados. Portanto, a mais importante das funcionalidades apresentadas pela ferramenta, é permitir a execução de várias simulações, e viabilizar uma fácil leitura dos resultados, gerando gráficos de linha para qualquer um dos parâmetros resultantes da simulação, mostrando a variação dos mesmos ao longo das simulações.

Anais WSCAD (2002) 150-151

3.1. O Ambiente de Simulação

O ambiente de simulação é composto basicamente de duas partes. A primeira delas é o simulador sim-outorder, que realiza as simulações e gera as estatísticas. A segunda parte é a ferramenta em si, que lê e processa as estatísticas geradas pelo simulador, apresentando-as graficamente. A comunicação entre a ferramenta e o simulador, esquematizada na figura l , é feita através de chamadas ao sistema operacional.

Ferramenta SuperSim

Figura 1. Esquema de Comunicação entre a Ferramenta SuperSim e o simulador

sim-outorder

4. Simulações com a ferramenta

Esta seção apresenta um exemplo de simulação com o benchmark go.ss, utilizando a ferramenta de visualização. Ao longo de 15 simulações, verificou-se como se comportou o número de faltas (misses) na cache de instruções de primeiro nível, em função da variação do número de conjunto e da associatividade da cache.

Com a utilização da ferramenta, a interpretação dos resultados é facilitada, pois os gráficos que mostram o comportamento de um determinado parâmetro são gerados automaticamente. O usuário precisa apenas escolher um ou dois parâmetros variáveis e disparar a simulação uma única vez.

Após ter escolhido o benchmark a ser simulado, o primeiro passo é configurar as opções que se manterão fixas durante a simulação, e depois escolher as opções que irão variar. Neste exemplo, variou-se o número de conjuntos da cache de instruções de primeiro nível, de 128 até 2048 e, para cada um desses valores, variou-se a associatividade de 1 até 4 , totalizando quinze simulações.

A ferramenta inicia o processo de simulação, armazenando o resultado d.as simulações em matrizes. Terminadas as simulações, é possível verificar o comportamento de qualquer um dos parâmetros gerados como resultado, através de gráficos de linha. A figura 2, mostra a interface principal da ferramenta, onde é possível ver o gráfico com o comportamento do número de faltas

151

da cache de instruções de primeiro nível, ao longo das 15 simulações realizadas.

lltliPII*Sialcao ~~1m' ® º 5 • s.,.,........,..~t541t15

Figura 2. Interface principal da ferramenta SuperSim

5. Conclusões

A técnica de simulação é essencial para a área de arquitetura de computadores, pois é necessário avaliar o desempenho de uma arquitetura antes de implementá-la. A ferramenta SuperSim integrou o simulador sim-outordei-, que é amplamente utilizado em diversos trabalhos de pesquisa, num ambiente em que os resultados gerados pela simulação podem ser apresentados na forma de gráficos e tabelas, o que facilita bastante a interpretação desses resultados. A ferramenta ainda tomou mais fácil a interação e a configuração do simulador. Devido a essas facilidades e à sua interface amigável, a ferramenta também pode ser utilizada no ambiente acadêmico, para o ensino das disciplinas da área de arquitetura de computadores.

6. Referências

[I] Smith, James E., and Sohi, Gurindar S., "The Micro­architecture of Superscalar Processors•·, Proceedings o f the IEEE, December 1995.

[2] Burger, D. , and Austin, T. M. , "The Simplescalar Tool Set, Version 2.0", Computer Architecture News, June 1997, pp. 13-25.

(3) Ferrari, D. "Computer Systems Performance Evaluation", Englewood Cliffs: Prentice Hall, 1988.

(4] Brooks, D., Tiwari, V. , and Martonosi, M., " Wattch: A Framework for Architecturai-Level Power Analysis and Optimizations", 27'h Anual lntemational Symposium on Computer Architecture, 2000.

[5] Naishlos, D., Nuzman, J., Tseng, C., and Vishkin, U., "Evaluating the XMT Parallel Programming Model", The 6'h Workshop on High-Level Parallel Programming and Supportive Environments, Apr, 200 I.