CI064, 2019-1                            © Roberto André Hexsel, 2015-2019


Como 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. britadeira
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--