O melhor amigo de CFD: O computador!

A configuração do hardware de um computador muitas vezes nos deixa em um mar de dúvidas. Muitas peças, placas, especificações e uma grande questão: Será que essa configuração vai atender às minhas necessidades? E para quem quer um computador específico para simulação numérica? Para clarear um pouco as coisas, é interessante ver como funciona a troca de dados entre os componentes de um computador.

Entender a hierarquia das memórias é um fator importantíssimo para quem deseja um computador veloz. Neste caso, a leitura e/ou escrita (I/O) de dados nos dispositivos de armazenamento de um computador obedecem uma hierarquia de velocidade, que usualmente segue:
A ordem dessa hierarquia também vale para o custo das memórias. Por outro lado, a capacidade de armazenamento de dados segue justamente o caminho contrário desta hierarquia.

Assim, quando um programa é iniciado, seus dados são transferidos do HD para a memória RAM (que é mais rápida, porém com menor capacidade). Em seguida, aloca-se na memória cache (que é pequena, mas rapidíssima) as informações que serão processados. A memória cache se encarrega de fornecer ao processador os dados para tais operações, que depois de realizadas são alocadas novamente na cache.

Quando o processador precisa de informações que estão na memória RAM, libera-se espaço na cache voltando com os dados já processados para a RAM e lendo e alocando na cache novos dados (que serão usados pelo processador) provindos da RAM.

Por sua vez, quando é necessário escrever os dados em arquivo (resultados de uma simulação, por exemplo), as informações são passadas da memória RAM para o HD (em uma forma que nós conhecemos: o arquivo). Programas que precisam de muito I/O de arquivos ficam lentíssimos.

Portanto, essa troca de informações/dados entre os níveis de memória deve ser a mais rápida possível pois nós queremos velocidade nas operações. No próximo post, vou escrever um pouco mais sobre os componentes do computador usualmente encontrados em lojas (nada de supercomputadores caríssimos) e quais seriam os parâmetros para quantificar se seriam adequados ou não para simular problemas CFD profissionais usuais.

Contudo, lembre-se que nem a melhor configuração de hardware irá te salvar de um código CFD mal implementado. O conhecimento da linguagem de programação e como as variáveis são alocadas na memória, assim como implementar o código de forma eficiente (evitando operações desnecessárias, uso excessivo de condicionais, etc.) são vitais nas simulações CFD.

Comments

Popular posts from this blog

Portal CFD Brasil

Avaliação da qualidade da malha

Hipótese do Contínuo