TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho 2 - Arquitetura

Por:   •  9/3/2016  •  Seminário  •  1.913 Palavras (8 Páginas)  •  269 Visualizações

Página 1 de 8

Otimizações do compilador

Resumo

        Este trabalho apresenta como algumas técnicas de otimizações de compiladores ajudam a diminuir a taxa de faltas da memória cache sem qualquer mudança no hardware. Apresentando como foi compilado os códigos, quais os valores das entradas que foram utilizados. Utilizando gráficos para uma melhor compreensão do trabalho realizado. O trabalho foi baseado no texto da disciplina com o objetivo deste trabalho é estudar a variação da taxa de perdas em função da organização das memórias caches e da estrutura de código.

Introdução

        A grande maioria das melhorias quando se trata de taxa de falta em cache é feita em hardware, porém, essas técnicas estudadas vem como uma opção de melhoria sem mudança alguma em nível de hardware. A diferença de desempenho entre o processador e a memória principal vem sendo uma inspiração para os projetistas de compiladores estudarem mais de perto a hierarquia de memória para ver se as otimizações em tempo de compilação podem melhorar o desempenho. Esses estudos seguem duas vertentes, uma segue as melhorias que ocorrem nas faltas de instruções e a outra segue as melhorias nas falta por dados.

        Será demonstrado nesse trabalho três otimizações do compilador para reduzir a taxa de faltas, Loop Fusion, Loop Interchange e Blocking, essas três técnicas são utilizadas na maioria dos compiladores modernos a fim de melhorar a taxa de faltas.

        Foi entregue para o grupo alguns algoritmos referentes as técnicas para a otimização, esse algoritmos são: blocking_1, blocking_2 referentes ao Blocking; loop_fusion_1, loop_fusion_2 refentes ao Loop Fusion; loop_interchange_1, loop_interchange_2 refentes ao Loop Interchange. Além de um arquivo de cabeçalho e um makefile. Todos esses algoritmos foram compilados sem algum problema, para compilar utilizamos somente o makefile que já vinha com os arquivos.

Informações sobre a arquitetura do computador utilizado

Neste tópico será apresentado algumas informações da arquitetura na qual foi executado o código.

Informações sobre a Memória:

MemTotal:        1791052 kB

MemFree:         1146456 kB

MemAvailable:    1280668 kB

Buffers:           36852 kB

Cached:           212252 kB

SwapCached:            0 kB

Active:           378604 kB

Inactive:         175968 kB

Active(anon):     312204 kB

Inactive(anon):     3032 kB

Active(file):      66400 kB

Inactive(file):   172936 kB

Unevictable:       15876 kB

Mlocked:           15876 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

Dirty:                 0 kB

Writeback:             0 kB

AnonPages:        321416 kB

Mapped:           140928 kB

Shmem:              3504 kB

Slab:              27388 kB

SReclaimable:      15000 kB

SUnreclaim:        12388 kB

KernelStack:        3408 kB

PageTables:        13644 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     2992672 kB

Committed_AS:    1246552 kB

VmallocTotal:   34359738367 kB

VmallocUsed:       14320 kB

VmallocChunk:   34359715739 kB

HardwareCorrupted:     0 kB

AnonHugePages:     67584 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

DirectMap4k:       13888 kB

DirectMap2M:     1818624 kB

Informações sobre a CPU:

processor        : 0

vendor_id        : GenuineIntel

cpu family        : 6

model                : 15

model name        : Intel(R) Pentium(R) Dual  CPU  T3400  @ 2.16GHz

stepping        : 13

microcode        : 0xa3

cpu MHz                : 2167.000

cache size        : 1024 KB

physical id        : 0

siblings        : 2

core id                : 0

cpu cores        : 2

apicid                : 0

initial apicid        : 0

fpu                : yes

fpu_exception        : yes

cpuid level        : 10

wp                : yes

flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm

bogomips        : 4336.00

clflush size        : 64

cache_alignment        : 64

address sizes        : 36 bits physical, 48 bits virtual

power management:

processor        : 1

vendor_id        : GenuineIntel

cpu family        : 6

model                : 15

model name        : Intel(R) Pentium(R) Dual  CPU  T3400  @ 2.16GHz

stepping        : 13

microcode        : 0xa3

cpu MHz                : 1667.000

cache size        : 1024 KB

physical id        : 0

siblings        : 2

core id                : 1

cpu cores        : 2

...

Baixar como (para membros premium)  txt (8.6 Kb)   pdf (133.5 Kb)   docx (34.9 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com