Solução e Explicação Detalhada: Aula 06 - Cache e Localidade
Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na Aula 06.
Solução da Questão 1 - 1. Cache Hit e Cache Miss (Básico 1)
Explicação Detalhada do Assunto:
O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.
-
Cache Hit: Acerto! A CPU pediu a posição
[1], ela já estava na Cache e a conta foi resolvida quase imediatamente. -
Cache Miss: Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir.
Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de 1. Cache Hit e Cache Miss determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 2 - 2. Localidade Espacial vs Temporal (Básico 2)
Explicação Detalhada do Assunto:
As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):
Se o programa acessou a variável na posição de memória X, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória X + 1.
Se o programa visitou a variável Y agora, há enorme probabilidade dele visitá-la nos próximos ms.
Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de 2. Localidade Espacial vs Temporal determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 3 - 3. False Sharing e Lógica Invertida (A Morte do C++) (Intermediário 1)
Explicação Detalhada do Assunto:
A estrutura define a localidade espacial. Prefira dezenas de minúsculas variáveis sequenciais nos métodos a usar longos grafos com saltos randômicos baseados em ponteiros, se for iterar a esmo.
Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de 3. False Sharing e Lógica Invertida (A Morte do C++) determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 4 - 1. Cache Hit e Cache Miss (Intermediário 2)
Explicação Detalhada do Assunto:
O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.
-
Cache Hit: Acerto! A CPU pediu a posição
[1], ela já estava na Cache e a conta foi resolvida quase imediatamente. -
Cache Miss: Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir.
Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de 1. Cache Hit e Cache Miss determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 5 - 2. Localidade Espacial vs Temporal (Desafio)
Explicação Detalhada do Assunto:
As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):
Se o programa acessou a variável na posição de memória X, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória X + 1.
Se o programa visitou a variável Y agora, há enorme probabilidade dele visitá-la nos próximos ms.
Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de 2. Localidade Espacial vs Temporal determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.