CI064, 2019-1 © Roberto André Hexsel, 2015-2019Como computeiros gastam tempo
Na aula passada vimos comandos e programas que nos permitem utilizar eficientemente algumas das abstrações providas pelo Unix. Nesta aula você deve resolver quatro problemas usando as ferramentas de computeiro para trabalhar eficientemente.![]()
Antes de mais nada, crie um prompt vazio, copiando a linha abaixo no seu terminal alias prompt:="" Três clicks no botão esquerdo para copiar, um click no meio para colar
Copie o arquivo abaixo para a sua área e expanda-o: prompt: wget http://www.inf.ufpr.br/roberto/ci064/dados_064.tgz . prompt: tar xzvf dados_064.tgz O diretório dados_064 contem 2520 arquivos com os resultados de simulações de memórias cache. Os detalhes que não vem ao caso agora serão explicados em CI212. O nome de cada arquivo descreve os parâmetros da simulação; os espaços mostrados não fazem parte do nome, mas devem simplificar o entendimento, ou assim espero: programa _ capacidade A associatividade B tamanhoDeBloco W escrita A alocação Programa é um dentre frag jpegE rtr zipD zipE Capacidade é uma dentre 1k 2k 4k 8k 16k 32k 64k 128k 256k Associatividade é uma dentre 1 2 4 8 TamanhoDeBloco é um dentre 4 8 16 32 64 128 256 Escrita é uma de 2 combinações WcAw WwAn o arquivo rtr_32kA1B32WwAn é o resultado para o programa rtr, com cache de 32k, com associatividade A=1, com tamanho de bloco B=32, e com escrita WwAn. Em cada arquivo, o valor de interesse é a quinta coluna da linha com din_dmm (Read Demand Misses), mostrada em azul. As colunas são separadas por TABs. ... Demand Misses 476224 0 476224 58700 417524 din_dmmTAB0.0154TAB0.0000TAB0.0154TAB0.0030TAB0.0375TAB0.0000 Words From Memory 469600 ... Em alguns arquivos os parâmetros resultam numa cache irrealizável e o arquivo de simulação é vazio. Por exemplo, arquivos vazios resultam da combinação de capacidade pequena com associatividade alta com bloco grande. Sua tarefa, e que vale 5% da média, é resolver os quatro problemas abaixo. Suas respostas devem ser enviadas por e-mail para rhexsel@gmail.com, até as 15:25, como arquivos texto executáveis (scripts), ou com a lista de comandos (em texto simples) usada para resolver o problema. Se me custar mais do que uns poucos minutos para executar seus programas, eles não receberão crédito. Não farei nada de remotamente parecido com cut-and-paste de um arquivo .DOC Além do programa que efetua a consulta aos arquivos de dados, cada resposta deve conter a saída da consulta, como uma tabela com os resultados pedidos. As tabelas devem ter os cabeçalhos (nomes das colunas) e na coluna da esquerda os nomes/valores dos parâmetros de cada linha. As soluções serão executadas e só receberão crédito caso produzam os resultados corretos e compatíveis com as tabelas formatadas com a saída especificada. O trabalho pode ser efetuado em duplas. As faixas de valores nos enunciados são sempre inclusivas -- os limites das faixas são aqueles do enunciado.Problema 1
Para cada um dos programas, para capacidades de 1k a 64k, associatividade 1, tamanho de bloco 16, e escrita WwAn, escreva uma tabela com uma linha para cada programa e uma coluna para cada capacidade. Os campos da tabela devem ser preenchidos com o valor din_dmm (mostrado acima em azul), um para cada arquivo de dados do conjunto de entrada. 1k 2k 4k 8k 16k 32k 64k prog1 a b c d e f g prog2 p q r s t u v prog3 x y z w k i j ... . . . . . . . No exemplo acima, os valores de Read Demand Misses são mostrados como letras, para cada programa e configuração. Note que cada valor no arquivo é mostrado com 6 colunas (0.0030); sua tabela deve ser formatada para mostrar os valores lidos em 6 colunas, mais algum espaço para separar as colunas.Problema 2
Para cada um dentre frag e rtr, para capacidades de 2k a 8k, associatividade 1 a 4, tamanho de bloco 64, e escrita WwAn, escreva uma tabela com (a) um grupo de linhas para cada programa; (b) dentro de cada grupo uma linha para cada associatividade; e (c) uma coluna para cada capacidade. prog1 2k 4k 8k 1 z y z 2 p q r 4 a b c prog2 2k 4k 8k 1 r s t 2 x w y 4 j k l Veja a observação sobre os valores mostrados em 6 colunas.Problema 3
Para todos os programas, para a capacidade 16k, associatividade 1 a 8, tamanho de bloco 4, e escrita WwAn e WcAw, escreva uma tabela com (a) um grupo de linhas para cada programa; (b) para cada grupo (programa), quatro subgrupos, um por associatividade; e (c) uma linha para cada forma de escrita. prog1 16k 1 WwAn r 1 WcAw p 2 WwAn x 2 WCAw y 4 WwAn r 4 WcAw p 8 WwAn x 8 WCAw y prog2 16k 1 WwAn r 1 WcAw p 2 WwAn x 2 WCAw y 4 WwAn r 4 WcAw p 8 WwAn x 8 WCAw y ... Veja a observação sobre os valores mostrados em 6 colunas.Problema 4
Para todos os programas, para capacidades de 2k a 8k, associatividade 4, tamanhos de bloco 16 a 64, e escrita WwAn, escreva uma tabela com (a) um grupo de linhas para cada programa; (b) dentro de cada grupo, 3 subgrupos, uma para cada capacidade; e (c) uma coluna para cada cada tamanho de bloco. prog1 16 32 64 2k x y z 4k a b c 8k p q r prog2 16 32 64 2k i j k 4k d e f 8k s t u ... Veja a observação sobre os valores mostrados em 6 colunas.Pistas
Metacaracteres podem ser úteis para selecionar os arquivos de interesse. cut pode ser conveniente para selecionar o valor de interesse nos arquivos. Não é proibido saber que Bash suporta laços for. --fim da aula--