Extended SimMan: uma Ferramenta de Apoio ao Estudo de

Transcrição

Extended SimMan: uma Ferramenta de Apoio ao Estudo de
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
Extended SimMan: uma Ferramenta de Apoio ao Estudo de Arquiteturas de
Computadores
Guilherme Dal Pizzol e Philippe O. A. Navaux
Instituto de Informática – UFRGS
{gpizzol,navaux}@inf.ufrgs.br
Resumo
Maurı́cio L. Pilla
PPGINF – UCPEL
[email protected]
rentes [17]. Eles exploram o paralelismo entre instruções
(ILP - Instruction Level Parallelism fazendo uso de pipeline
de múltiplos estágios, múltiplas unidades funcionais, escalonamento dinâmico, mecanismos de previsão de desvios,
renomeação de registradores e execução fora de ordem. Por
outro lado, este aumento de desempenho torna os processadores modernos difı́ceis de avaliar, graças à alta complexidade dos elementos usados na sua construção. Cada elemento utilizado tem um impacto diferente no desempenho,
bem como a interação entre eles pode não ser intuitiva para
até mesmo um projetista de hardware. Para o aluno a tarefa
de entender essa interação é muito mais complexa.
Existem três maneiras básicas para atingir o objetivo
acima proposto (analisar o desempenho de processadores):
prototipagem, modelos analı́ticos e simulação. Execução
direta não é empregada a não ser em estágios avançados do
desenvolvimento e por empresas como Intel e AMD, porque
o chip deve ser implementado e os custos são muito altos.
Modelos analı́ticos precisos são difı́ceis de desenvolver e
necessitam de muito conhecimento matemático. Tanto prototipagem quanto o uso de modelos analı́ticos inviabilizam
a execução prática em aulas de arquiteturas de computadores em nı́vel de graduação e muitas vezes, pós-graduação.
A solução é a simulação, mais simples e eficiente como
modelador do sistema e não precisa do chip para fazer a
análise. O processador pode ser descrito em linguagem de
alto nı́vel, como C/C++, permitindo a exploração das principais caracterı́sticas do processador. Um bom exemplo de
ferramentas desenvolvidas para a simulação de processadores é o SimpleScalar Tool Set [1, 3], um conjunto de simuladores, compiladores e utilitários que permitem desde uma
simples simulação funcional até uma complexa simulação
de processadores do estado-da-arte. Através dessas ferramentas o aluno pode explorar uma vasta gama de elementos utilizados na construção de processadores, bem como a
interação entre eles, aliando o conteúdo teórico de maneira
prática.
Essas ferramentas de simulação podem ter seu uso em
sala de aula prejudicado devido a sua interface textual. A
grande quantidade de elementos complexos utilizados nes-
Simuladores de processadores são tradicionalmente usados na pesquisa de arquiteturas de computadores para estimar o efeito de mudanças em parâmetros do processador
no comportamento do mesmo. Os simuladores são geralmente desenvolvidos para a pesquisa, seu uso sendo muitas vezes intimidante para estudantes de graduação e até
mesmo pós-graduação, o que limita seu uso em disciplinas de arquiteturas de computadores. O software de gerenciamento de simulações Extended SimMan foi desenvolvido para facilitar o uso dos simuladores do SimpleScalar
Tool Set. Através de uma interface gráfica intuitiva, o Extended SimMan gera arquivos de configuração e gerencia
as simulações em diferentes máquinas, extraindo os dados
de interesse dos arquivos de resultados e apresentando-os
em gráficos e tabelas. O Extended SimMan pode utilizar
as máquinas de uma rede para executar as simulações, e
também os nodos de um aglomerado (cluster), através do
software de gerenciamento de agregados CCS. A vantagem
do Extended SimMan sobre simuladores desenvolvidos especialmente para o ensino é que, ao mesmo tempo que possibilita ao aluno iniciar-se no uso de simuladores de superescalares, permite que sejam utilizados versões alteradas
do mesmo, sem perder em flexibilidade e poder proporcionados por simuladores voltados à pesquisa.
1. Introdução
Um dos principais objetivos de disciplinas de Arquitetura e Organização de Computadores é mostrar aos alunos
como o hardware é construı́do e como seus componentes interagem para atingir o desempenho esperado. Grande parte
do tempo disponı́vel para essas disciplinas é utilizado para o
estudo de processadores superescalares, os quais representam grande parte dos processadores comerciais disponı́veis
atualmente.
Os processadores superescalares obtém alto desempenho
de processamento através da execução de instruções concor-
25
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
eles poderão gerar facilmente estes arquivos. Além disso,
muitas vezes em uma avaliação de arquitetura de computador são necessários múltiplos arquivos de configuração,
variando-se apenas alguns parâmetros arquiteturais. Utilizando a ferramenta, o usuário está apto a gerar vários arquivos de configuração em um único passo, escolhendo os
parâmetros e os valores que mudarão de arquivo para arquivo.
Outro aspecto abordado pelo Extended SimMan é o controle da execução da simulação de múltiplas instâncias do
simulador, em diferentes máquinas, usando diferentes arquivos de configuração e benchmarks. De acordo com a
informação fornecida pelo usuário, a ferramenta distribui
automaticamente a execução dos simuladores nas máquinas
disponı́veis. A informação provida pelo usuário inclui: benchmarks, configurações, máquinas e o simulador a usar.
O Extended SimMan também permite que, ao final da
simulação, ou com uma simulação prévia já concluı́da, o
usuário faça a extração das estatı́sticas dos arquivos de resultados gerados pelos simuladores. O usuário informa a
estatı́stica a ser extraı́da e onde estão os arquivos. A ferramenta gera e salva um arquivo texto com estas informações.
Além disso, o usuário também poderá visualizá-las em
gráfico ou tabela. A Figura 1 apresenta uma tela de extração
de estatı́sticas do Extended SimMan, em formato tabular,
comparando três benchmarks para diferentes configurações
de previsão de desvios.
ses simuladores, transforma-se em complicados parâmetros
e arquivos de configuração no simulador. Dessa forma, o
aluno deve lidar com um grande número de arquivos de
configuração e de resultados, e, conseqüentemente, o trabalho de realizar estas ações manualmente por linha de comando torna-se oneroso em matéria de tempo e esforço.
Uma ferramenta que possa gerenciar simulações é de
grande valia para usuários de simuladores (estudantes e pesquisadores). Esta é a meta do presente trabalho: ajudar os
usuários do SimpleScalar a executar simulações de uma maneira rápida e eficiente. O Extended SimMan (Simulation
Manager) provê as seguintes funcionalidades:
• Interface gráfica e intuitiva;
• Criação/edição de arquivos de configuração (simples/múltiplos);
• Controle de execução de simuladores em diferentes
máquinas de uma rede e também com suporte a agregados (cluster) através do gerenciador CCS;
• Visualização gráfica dos resultados (tabela, gráfico).
Este artigo está dividido da seguinte forma. Primeiro,
o Extended SimMan será apresentado na Seção 2. Trabalhos relacionados, como a ferramenta SimpleScalar Tool
Set, serão descritos na Seção 3. Finalmente, na Seção 4
são feitas algumas considerações finais.
2. Extended SimMan
O Extended SimMan (Simulation Manager) [18] é uma
ferramenta auxiliar para simulação de arquiteturas de processadores desenvolvida no Instituto de Informática da
UFRGS, suportando os simuladores do SimpleScalar Tool
Set. A partir da experiência dos autores na pesquisa e
ensino de arquiteturas de computadores, foram identificadas três necessidades básicas dos usuários de simuladores
avançados, que foram então implementadas:
1. Geração de arquivos de configuração dos simuladores;
2. Execução de simulações com múltiplos arquivos de
configuração e benchmarks em várias máquinas (em
uma rede ou em um agregado); e
3. Extração das estatı́sticas dos arquivos de resultados dos simuladores e visualização das mesmas em
gráficos e tabelas.
O sim-outorder, assim como os demais simuladores do
SimpleScalar, tem sua configuração e resultados salvos em
arquivos em um formato textual próprio. Com o Extended
SimMan, os usuários do simulador não precisam se preocupar com estes formatos. Através de uma interface gráfica,
Figura 1. Tela do Extended SimMan
Desde estudantes a pesquisadores que usem o simoutorder podem beneficiar-se do uso do Extended Sim-
26
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
Man.
Ele torna transparente ao usuário os arquivos de configuração, complicadas linhas de comandos e
manipulação de arquivos de resultados.
A implementação do Extended SimMan foi realizada
para a plataforma GNU Linux com Borland Kylix [2] e com
a ajuda de scripts bash e awk [7, 16]. A aplicação segue
o padrão MDI (Multiple Document Interface), i.e., a janela
principal mantém todas as janelas filhas dentro de sua área
cliente. Assim, o usuário pode editar múltiplos arquivos
com apenas uma instância do programa. Ao mesmo tempo
em que ele está editando arquivos, é possı́vel executar e gerenciar uma simulação, como mostra a Figura 2.
Figura 3. Configuração da simulação
busca, decodificação, despacho ou de graduação podem ser configuradas aqui.
• Bpred: a configuração do previsor de desvios é encontrada aqui. Qualquer um dos seis diferentes previsores de desvio implementados pelo sim-outorder pode
ser especificado (taken, nottaken, perfect, bimod, 2level ou comb). Dependendo do previsor escolhido,
configurações especı́ficas são habilitadas, tornando a
tarefa ainda mais fácil para usuários que não estão habituados com o processo.
Figura 2. Tela do Extended SimMan com
várias janelas abertas
Os três módulos são independentes, sendo que o usuário
não precisa executar uma simulação se apenas deseja editar um arquivo de configuração ou extrair estatı́sticas de
simulações anteriores. Os módulos são descritos a seguir.
• Caches: as caches de nı́vel 1 e 2 podem ser configuradas aqui. É possı́vel definir se cada nı́vel será unificado
ou não e suas latências especı́ficas. Além disso, para
cada cache é possı́vel definir o número de conjuntos,
associatividade, número de linhas e blocos, polı́tica de
substituição.
2.1. Módulo de Edição de Configurações
O primeiro módulo é o gerador de arquivos de
configuração para o simulador sim-outorder. Neste módulo,
o usuário pode gerar, de uma forma rápida, fácil e eficiente,
um ou múltiplos arquivos de uma vez. Este módulo está dividido em categorias de configuração. Esta separação pode
ser vista diretamente na interface, já que ela foi implementada como uma janela com múltiplas páginas, como pode
ser visto na Figura 3.
As seguintes classes de configuração são oferecidas:
• FU’s & TLB: nesta página, estão as configurações das
TLB’s, memória principal e unidades funcionais.
• Others: qualquer outra configuração pode ser inserida
aqui, bem como comentários. Esta página funciona
como um pequeno editor de texto, podendo ser usada
para gerar arquivos de configuração para um simulador que use o sim-outorder como base. Por exemplo,
o simulador ss-smt de arquiteturas multithread, desenvolvido por Gonçalves et al [9].
• General: parâmetros especı́ficos do simulador são encontrados aqui. Por exemplo, arquivos de saı́da de
benchmarks e simuladores e números de instruções a
serem executadas. A opção que habilita a criação de
múltiplos arquivos também está aqui.
Numa simulação, o usuário geralmente deseja testar
sua arquitetura-alvo com diferentes valores para diversos
parâmetros (por exemplo, combinando previsores de desvio com diferentes configurações de cache). Isto implica
em vários arquivos de configuração, cada um diferindo de
• Pipeline: as opções especı́ficas do pipeline do simoutorder são encontradas nesta página. Larguras de
27
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
configuração que serão usados na simulação. Com estas
informações, a ferramenta começa a executar os simuladores nas dadas máquinas. De tempos em tempos (o tempo
pode também ser definido), a ferramenta verifica o estado
da execução em cada máquina e dispara novos processos
quando possı́vel. Quando não existem mais processos executando, a ferramenta finaliza a simulação e avisa o usuário
por e-mail e também na tela da aplicação. Todos os resultados estarão no diretório informado pelo usuário no
inı́cio da simulação. O usuário pode salvar a configuração
da simulação (dados como arquivos envolvidos, máquinas)
para uso posterior em outras simulações.
apenas uma ou duas linhas/colunas do outro. Gerar manualmente estes arquivos não é muito simples, já que cada
arquivo deve ser editado, procurando pela linha/coluna que
deve ser mudada. No Extended SimMan, o usuário somente
informa os parâmetros que devem ser alterados com seus
respectivos valores, e a ferramenta gera os arquivos, não
importando o número deles. O comportamento padrão do
módulo/ferramenta é gerar apenas um arquivo com os valores inseridos/modificados pelo usuário. Para ativar a criação
de múltiplos arquivos, é necessário marcar a checkbox na
página General.
O modo de múltiplos arquivos apresenta caixas com o
número de valores a serem inseridos para cada parâmetro,
bem como um botão Set, que deve ser clicado para adicionar os valores (Figura 4). Quando a configuração é armazenada, a ferramenta gera um nome padrão, criado a partir do
nome do parâmetro. Por exemplo, se o usuário mudar três
vezes os valores do parâmetro X e duas vezes o parâmetro
Y, a ferramenta gerará arquivos com os respectivos nomes: ConfX1 Y1, ConfX1 Y2, ConfX2 Y1, ConfX2 Y2,
ConfX3 Y1, ConfX3 Y2.
Figura 5. Configuração de computadores
para execução das simulações
O usuário tem duas opções para iniciar a simulação, as
quais provêm os mesmos resultados. Ele pode começar uma
simulação desde o inı́cio ou partir de uma simulação salva
previamente. No caso de uma simulação nova, o usuário
deve informar se as máquinas disponı́veis são da rede ou de
um aglomerado, afinal elas possuem tratamentos diferentes.
As máquinas da rede são acessadas via comandos remotos
ssh, e as máquinas de aglomerados são acessadas através
do software de gerenciamento CCS [11]. O usuário não
precisa preocupar-se com detalhes do CCS, pois o Extended
SimMan torna seu uso completamente transparente.
Por intermédio do CCS, o Extended SimMan informa ao
usuário quantos nós estão disponı́veis, e este indica quantas
máquinas são desejadas. Após alocar o número de nós desejados, a conexão via rsh somente é habilitada ao usuário
que os alocou, e assim o Extended SimMan pode disparar
os processos dos simuladores.
Para iniciar uma simulação, além de máquinas, o usuário
deve informar os benchmarks e arquivos de configuração.
Para tanto, a configuração da simulação deve ser acessada,
através do menu Simulation. Esta configuração é dividida
Figura 4. Configuração de múltiplos arquivos
de configuração
2.2. Controle de Simulações
Este é o principal módulo do Extended SimMan, responsável por definir, executar e controlar simulações. Com
este módulo, o usuário não precisará gerenciar manualmente a simulação, i.e., ele não necessitará acessar várias
máquinas para disparar seus processos, e além disso, não
precisará se preocupar com o fim de uma execução para disparar outro processo na mesma máquina.
Através deste módulo, o usuário apenas define
as máquinas (Figura 5), benchmarks e arquivos de
28
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
em seções: General, Machines, Benchmarks e Configurations, conforme pode ser visto na Figura 6.
Figura 7. Acompanhamento da execução das
simulações
usam ssh ou rsh para conectar às máquinas remotas. Por
padrão, toda a comunicação entre a máquina local e as
máquinas remotas é feita por ssh, por causa dos bem conhecidos problemas de segurança do rsh. Apesar disso,
rsh pode ser utilizado algumas vezes, como no caso de
agregados isolados da Internet por um firewall.
Figura 6. Seções de configuração
Na seção Machines, máquinas podem ser adicionadas ou
removidas. Nomes válidos de máquinas ou endereços IP
devem ser fornecidos pelo usuário. Não há nenhum atributo
especial para máquinas duais (com dois processadores). Se
uma máquina possui mais de um processador, é necessário
adicioná-la este número de vezes. Na seção Configurations,
arquivos de configuração usados na simulação podem ser
adicionados ou removidos.
A seção Benchmarks é um pouco diferente das outras,
pois além de inserir e remover benchmarks da lista, é
possı́vel editar cada linha de comando. Isto é permitido porque um benchmark, como uma aplicação normal, pode ter
parâmetros por linha de comando. Um exemplo é o benchmark gzip do SPEC CPU 2000, que tem os parâmetros:
< inputf ile > 60.
Configurações opcionais encontram-se na seção General, onde opções como o diretório dos resultados, o simulador a ser executado e o tempo de refresh podem ser alteradas. O tempo de refresh é o intervalo usado para atualizar as informações de cada processo que está executando.
Além de atualizar as informações na tela, novos processos
podem ser disparados se houver uma máquina disponı́vel.
A configuração de simulações a serem rodadas no agregado é similar, mudando apenas a seção Machines. A ferramenta oferece o número de nodos disponı́veis para que
o usuário informe a quantidade de que necessitará e por
quanto tempo.
Após definidas as configurações das simulações, a
execução das mesmas pode ser iniciada. A partir daqui, o
usuário pode acompanhar o estado das simulações durante
a execução dos processos. A ferramenta apresenta ainda a
memória fı́sica e swap disponı́veis, bem como a quantidade
de CPU utilizada, como mostra a Figura 7.
A conexão com máquinas remotas, bem como a extração
de informações delas, é feita por scripts bash e awk, que
2.3. Extração e Visualização de Estatı́sticas
Em um experimento razoavelmente simples, por exemplo, com oito benchmarks e dez arquivos de configuração
(dez valores diferentes para o mesmo parâmetro), serão feitas oitenta simulações gerando oitenta arquivos de saı́da.
Então, o usuário que desejar extrair uma simples estatı́stica
destes arquivos irá abrir oitenta arquivos, procurar pela estatı́stica e extrair seu valor. Uma tarefa relativamente árdua.
Com a ajuda do Extended SimMan, através do terceiro
módulo, este trabalho é simplificado. O usuário deve definir
onde estão os arquivos de saı́da e o arquivo onde o Extended SimMan deverá escrever os resultados. Aqui, o usuário
deverá informar à ferramenta a estatı́stica a ser procurada e
extraı́da no formato em que ela é encontrada no arquivo de
saı́da do sim-outorder. Por exemplo, se o usuário desejar
extrair a estatı́stica IPC (Instruções por Ciclo) deverá informar a ferramenta que ela deve extrair a estatı́stica sim IPC.
Para auxiliar o usuário que não está familiarizado com este
formato, existe uma tabela com estas informações presente
no Help da ferramenta. Este módulo pode ser visto na Figura 8. Desta forma, qualquer estatı́stica provida pelo simulador pode ser apresentada pelo Extended SimMan.
Ao informar quais arquivos contém os resultados das
simulações, o usuário deve definir uma ordem ascendente
ou descendente para os arquivos. Isto é necessário porque
a ferramenta não está apta a saber quais arquivos correspondem a quais pares de benchmarks e configurações. O
usuário ainda deve informar o número de benchmarks, pois
assim a ferramenta irá abrir tantas janelas quanto o número
informado, e o usuário deverá selecionar todos os arquivos
relativos a cada benchmark, em ordem ascendente ou descendente da variação do parâmetro modificado.
29
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
Figura 8. Extração de estatı́sticas
Figura 9. Gráfico gerado pelo Extended SimMan
Na simulação com dois benchmarks (bench1,
bench2) e quatro arquivos de configuração (conf1,
conf2, conf3, conf4), o usuário deve informar que
há duas linhas. Clicando em Browse, a tela de seleção
aparecerá duas vezes. Na primeira vez, o usuário deverá
selecionar os arquivos que correspondem as seguintes
simulações: Simul Conf1 Bench1, Simul Conf2 Bench1,
Simul Conf3 Bench1, Simul Conf4 Bench1. Na segunda
vez, o usuário deve repetir o mesmo procedimento, mudando Bench1 por Bench2. Após, o Extended SimMan
permite escolher o arquivo de destino e a estatı́stica a ser
extraı́da.
O usuário pode visualizar os resultados em gráfico ou tabela. A tabela pode ser salva no formato CSV, portável, e
o gráfico pode ser salvo como um arquivo PNG. Para apresentar o gráfico, o Extended SimMan usa a ferramenta livre GNUplot [4]. A ferramenta permite configurar todos os
parâmetros do GNUplot, tais como tipo do gráfico, tı́tulo
e nomes dos eixos. O usuário pode, inclusive, escolher se
todas as curvas estarão em único gráfico ou se cada curva
estará em um gráfico separado. A Figura 9 mostra a estatı́stica de Instruções por Ciclo (IPC) para seis diferentes
benchmarks, variando a taxa de acerto da previsão de desvios [15].
dores devido a flexibilidade e possibilidade de extensão do
seu código, bem como o detalhamento nos resultados. Essas mesmas caracterı́sticas o tornam atraente também para
o ensino de arquiteturas de processadores, sendo que esses simuladores são usados em disciplinas de diversas universidades e em diferentes enfoques. Por exemplo, o SimpleScalar já foi utilizado no curso de especialização em Projeto de Circuitos Integrados (UFRGS), na disciplina de Arquitetura Avançada de Computadores (UFES, UFRGS), na
Introduction to Computer Architecture da Universidade de
Pittsburgh, na disciplina Advanced Computer Architecture
na Universidade de Virgı́nia, e em tantas outras.
A arquitetura implementada pelos simuladores é muito
similar à do MIPS [13], a qual é amplamente usada
no ensino de arquiteturas de computadores [10], com
versões big-endian e little-endian. A semântica do conjunto de instruções do SimpleScalar é um superconjunto do
MIPS-IV ISA, sendo chamada PISA (Portable ISA). Seis
simuladores orientados à execução são incluı́dos, os quais
serão detalhados mais tarde. Além disso, a ferramenta fornece binários pré-compilados (incluindo o SPEC95) e uma
versão modificada do GCC (GNU Compiler C), a qual permite a compilação de código fonte C. Um depurador e um
visualizador de pipeline (em modo texto) também estão disponı́veis.
Simulações funcionais podem ser feitas pelo sim-fast e
sim-safe, nos quais cada instrução é executada seqüencialmente. A principal diferença entre eles é que o último verifica o alinhamento e a permissão de acesso a cada referência
de memória, o que diminui seu desempenho. Simulações de
hierarquia de memória podem ser feita facilmente com simcache e sim-cheetah. O segundo traz uma nova polı́tica de
substituição desenvolvida pelos desenvolvedores do simu-
3. Trabalhos Relacionados
Uma das principais ferramentas utilizadas no meio
acadêmico e profissional é o SimpleScalar Tool Set [1, 3],
o qual foi desenvolvido na Wisconsin-Madison University,
com o objetivo de permitir simulações de arquiteturas de
processadores, focando principalmente nas caracterı́sticas
de arquiteturas escalares e superescalares. Esses simuladores são amplamente utilizados para a pesquisa de novos
mecanismos e comportamento de arquiteturas de processa-
30
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
Há diversos outros simuladores e ferramentas gráficas
para simulação, sendo que diversas podem ser encontradas no sı́tio WWW Computer Architecture Page 1 , as quais
não serão abordadas devido a não serem diretamente comparáveis à nossa proposta e o espaço disponı́vel para este
artigo.
lador [19]. O quinto simulador disponı́vel é chamado simprofile. Ele gera o profile de cada classe de instruções (desvio, cálculo inteiro/ponto-flutuante, acesso à memória). O
último e mais detalhado simulador é chamado sim-outorder
e modela um processador completo, incluindo simulação
de ciclos, sendo o simulador para o qual o Extended SimMan foi inicialmente desenvolvido. O sim-outorder suporta execução fora de ordem, baseada na Register Update
Unit (RUU) e em uma fila de loads e stores. Este simulador
implementa um pipeline de seis estágios: busca, despacho,
escalonamento, execução, escrita de resultados e graduação.
O simulador sim-outorder possui muitos parâmetros de
configuração que podem ser alterados para obter diferentes tipos de experimentos, sendo que alguns dos principais
parâmetros que podem ser alterados são:
4. Conclusões
Neste artigo, foi apresentado o Extended SimMan, uma
ferramenta para gerenciamento de simulações de arquiteturas de processadores. Esta ferramenta é um frontend gráfico para os simuladores do SimpleScalar Tool Set,
permitindo a gerência da configuração e execução das
simulações, bem como a geração do gráfico dos resultados.
Em qualquer análise de arquitetura, há muitas variáveis
a serem alteradas, refletindo em vários arquivos de
configuração desta arquitetura especı́fica. Além disso, é
necessário analisar a arquitetura sob diferentes cargas de
trabalho. Isto se reflete no uso de diversos benchmarks.
Por exemplo, num estudo que usa doze diferentes arquivos de configuração e oito benchmarks distintos [18],
96 execuções se farão necessárias. É preciso disparar e
controlar processos em diversas máquinas para reduzir o
tempo de simulação. Se houver três máquinas disponı́veis,
o usuário precisa acessá-las e disparar os processos um a
um. O usuário também poderia disparar mais de um processo por máquina, o que tornaria a máquina muito lenta,
já que os simuladores são tipicamente CPU bound. Logo,
o usuário precisa monitorar estes processos para ter certeza
de que a simulação prévia está terminada, para então disparar uma outra. Outro grande problema é a extração de
estatı́sticas, sendo que para este exemplo são 96 arquivos de
resultados que devem ser abertos e analisados em busca da
estatı́stica desejada.
O Extended SimMan facilita o gerenciamento de todo
este processo, permitindo que mesmo estudantes com pouca
ou nenhuma experiência com simuladores de arquiteturas executem experimentos elaborados. Diversos softwares necessários à realização e análise das simulações (simoutorder, CCS, GNUplot) são encapsulados pelo Extended SimMan, deixando esta parte trabalhosa e custosa em
questão de tempo e esforço transparente ao usuário. O
usuário somente precisa configurar sua simulação e a ferramenta faz todos os testes e execuções, informando quando
terminar. Para extrair estatı́sticas, ele precisa conhecer apenas quais arquivos contém as informações dos resultados e
onde eles estão localizados. Com estes dados, a ferramenta
extrai as estatı́sticas, estando preparada para exibir os respectivos gráfico e tabela, e salvá-los.
• Largura dos estágios de busca, decodificação, despacho e graduação
• Tipos de execução (em ordem ou fora de ordem)
• Tamanho das filas de instruções (busca, despacho,
load/store, RUU)
• Número de unidades funcionais (inteiro e pontoflutuante)
• Configurações de cache (nı́veis unificados, associatividade, polı́tica de substituição)
• Configuração do previsor de desvios
Diversas extensões são desenvolvidas sobre o SimpleScalar. Entre elas podemos citar: um simulador para Arquiteturas SMT [8] e Multiprocessadores [12], reuso de
instruções [5, 14], entre outros.
Em [21] é introduzido o SS-GUI, o qual é um front-end
gráfico que auxilia estudantes durante o uso do SimpleScalar Tool Set. O SS-GUI é formado por sua interface e um
back-end escrito em Perl, o qual tem a função de disparar
uma única simulação na máquina hospedeira. A interface
gráfica permite que o usuário determine qual simulador e
suas opções, bem como o benchmark a ser utilizado. Nesse
mesmo trabalho também é introduzido o GPV (Graphical
Pipeline Viewer), o qual permite que o arquivo de detalhes da execução do pipeline do SimpleScalar seja visualizado de forma gráfica, ilustrando todo o ciclo de vida
das instruções e identificando que operação estava sendo
realizada ou o motivo pela qual ela foi bloqueada durante
sua execução. A ferramenta não possibilita a execução de
diferentes conjuntos de benchmarks automaticamente. A
simulação em diversas máquinas também não é possı́vel.
Em comparação com o Extended SimMan, o SS-GUI não
permite a simulação e análise de múltiplos benchmarks, limitando a utilidade para simulações isoladas e o estudo dos
efeitos no pipeline de forma localizada.
1 Disponı́vel
tools.html
31
em
http://www.cs.wisc.edu/arch/www/
Workshop sobre Educação em Arquitetura de Computadores - WEAC 2006
Nossa ferramenta também permite usar qualquer uma
das variações encontradas do sim-outorder, já que tratase de um front-end conectado ao simulador, e não uma
modificação do próprio simulador. Além disso, ela está
sendo estendida para suportar, também de modo transparante para o usuário, o software gerenciador de agregados
OpenPBS [20].
Os simuladores SimpleScalar são empregados por professores e pesquisadores de todo mundo no estudo de arquitetura de processadores. O Extended SimMan vem facilitar
o trabalho destes e de alunos, acelerando o processo das
medidas e testes de desempenho de arquiteturas de computadores. Os pesquisadores e alunos, perdendo menos tempo
com o processo de simulação, poderão voltar seus esforços
em uma maior análise dos resultados.
Como trabalhos futuros, pode-se citar a adaptação do Extended SimMan para outros ambientes de gerenciamento de
agregados e grades, como o OpenPBS [20] e o Globus [6].
Além disso, estão previstas algumas facilidades extras e melhorias na interface da ferramenta, como por exemplo:
[8] R. A. L. Gonçalves, E. Ayguadé, M. Valero, and P. O. A.
Navaux. A simulator for SMT architectures: Evaluating instruction cache topologies. In Proc. of the 12th Symposium on
Computer Architecture and High-Performance Computing,
p. 279–286, São Pedro, SP, 2000. São Carlos, UFSCAR.
[9] R. A. L. Gonçalves, M. L. Pilla, G. D. Pizzol, T. G. S. dos
Santos, R. R. dos Santos, and P. O. A. Navaux. Evaluating
the effects of branch prediction accuracy on the performance
of SMT architectures. In Proc. of the 9th EUROMICRO
Workshop on Parallel and Distributed Processing, p. 335–
362, Mantova, Feb. 2001. New York, IEEE.
[10] J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San
Francisco, 3rd ed. edition, 2003.
[11] A. Keller. OpenCCS administrator manual. Technical Report v.0.8, Paderborn Center for Parallel Computing, Paderborn, Oct. 2002.
[12] N. Manjikian. Enhancements and applications of the simplescalar simulator for undergraduate and graduate computer architecture education. In Proc. of the Workshop on Computer Architecture Education, 2000.
[13] MIPS Technologies Inc. MIPS R10000 Microprocessor
User’s Manual. Mountain View, 1 edition, June 1995.
[14] M. L. Pilla. RST: Reuse Through Speculation on Traces.
Tese de Doutorado, Instituto de Informática, Universidade
Federal do Rio Grande do Sul, Junho de 2004.
[15] G. D. Pizzol, M. L. Pilla, and P. O. A. Navaux. Branch prediction x performance: An analysis on superscalar processors. In A. C. M. A. Melo, M. A. R. Dantas, and J. Panetta,
editors, Proc. of the 13th Symposium on Computer Architecture and High-Performance Computing, p. 56–61, Pirenópolis, GO, 2001. Brası́lia, Departamento de Ciência da
Computação da UNB.
[16] A. D. Robbins. The GNU Awk user’s guide. Disponı́vel
em
<http://www.gnu.org/software/gawk/
manual/gawk.html>. Accesso: Set. 2006.
[17] J. E. Smith and G. S. Sohi. The microarchitecture of superscalar processors. Proceeding of the IEEE, 83:1609–1624,
Dec. 1995.
[18] W. T. Staehler, G. D. Pizzol, and P. O. A. Navaux. Integração
extended simman tool & ccs - simulação de arquiteturas
superescalares em clusters. In Anais do 4o. Workshop em
Sistemas Computacionais de Alto Desempenho, p. 56–63,
São Paulo, 2003. USP/SBC.
[19] R. A. Sugumar and S. G. Abraham. Efficient simulation of
caches under optimal replacement with applications to miss
characterization. In ACM SIGMETRICS Conf. on Measurement and Modeling of Computer Systems, p. 24–35, May
1993.
[20] A. G. Technologies. PBS: Portable Batch System. Disponı́vel em <http://www.openpbs.org>. Acesso:
Set. 2006.
[21] C. T. Weaver, E. Larson, and T. Austin. Effective support of
simulation on computer architecture instruction. In Proc. of
the Workshop on Computer Architecture Education, 2002.
• Abertura do console das máquinas utilizadas;
• Remoção e adição de novas máquinas durante a
simulação; e
• Configurações avançadas para construção de gráficos.
Referências
[1] T. Austin, E. Larson, and D. Ernst. SimpleScalar: An infrastructure for computer system modeling. IEEE Computer,
35(2):59–67, Feb. 2002.
[2] Borland.
Kylix.
Disponı́vel em <http:
//www.borland.com/kylix/index.html>.
Acesso: Set. 2006.
[3] D. C. Burger and T. M. Austin. The Simplescalar Tool Set,
version 2.0. Technical Report CS-TR-1997-1342, University of Wisconsin, Madison, 1997.
[4] D. Crawford. GNUPLOT: An interactive plotting program. Disponı́vel em <http://www.gnuplot.info/
docs/gnuplot.html>. Acesso: Set. 2006.
[5] A. T. da Costa, F. M. G. França, and E. M. CHAVES FILHO.
The dynamic trace memoization reuse technique. In Proc.
of the 9th International Conference on Parallel Architectures
and Compilation Techniques, p. 92–99, Philadelphia, Oct.
2000. Los Alamitos, IEEE Computer Society.
[6] I. Foster, C. Kesselman, J. M. Nick, and S. Tuecke. The
physiology of the grid. an open grid services architecture for
distributed systems integration. In F. Berman, G. Fox, and
A. J. G. Hey, editors, Grid Computing: Making the Global
Infrastructure a Reality, chapter 11. John Wiley and Sons,
Chichester, UK, Mar. 2003.
[7] F. S. Foundation. Bash reference manual. Disponı́vel
em
<http://www.gnu.org/software/bash/
manual/bashref.html>. Accesso: Set. 2006.
32