Arquitetura e performance de computadores e software

Entrada para agrupar textos recomendados sobre arquitetura de computadores e clusters, e desenho de software para computação científica:

  • Talvez o texto inicial mais fundamental aqui é In Search of Clusters do Gregory Pfister, que apresenta vários conceitos de arquitetura de computadores (cache, memoria virtual, etc) numa linguagem bastante acessível;
  • Um livro mais focado em hardware e desenho de microprocessadores é o Computer Organization and Design de Patterson & Hennessy. Este é de mais difícil leitura, com foco em engenheiros;
  • Sobre software, recomendo o livro Sistemas Operacionais Modernos do Tanenbaum, que introduz conceitos de baixo-nível como gerenciamento de memória, etc.
  • Um livro completo sobre métodos numéricos e implementações de seus algoritmos é o Matrix Computations de  Golub & Van Loan. Temos cópias de todos esses livros no laboratório.
  • Esta recente revisão aborda avanços no desenvolvimento de algorítmos mais eficientes e deixa uma perspectiva da computação científica nos anos 2020.

Programas científicos são diferentes de equipamentos de laboratório

pillarsInteressante postagem e artigo do Konrad Hinsen sobre reproducibilidade de pesquisa computacional. Sua discussão, um tanto epistemológica, atualiza a idéia bem disseminada que ciência é baseada em dois pilares, experimento e teoria. Hinsen prefere dizer que observações e modelos, são os verdadeiros pilares e, portanto, simulação computacional é apenas um experimento com modelos. Leia a postagem completa aqui.

Referências de métodos numéricos e estatísticos

Métodos e discussões sobre Álgebra (principalmente métodos numéricos) e Estatística estão muitas vezes espalhados em diferentes livros ou escondidos na literatura especializada. Nesta postagem vou tentar agrupar algumas boas referências:

  • Introdução didática sobre o procedimento de bootsrap usado para estimar erros padrão e intervalos de confiança; Críticas sobre esta metodologia.
  • Web-site com tutoriais, dicionários e explicações sobre diversos conceitos de estatística;
  • Singular-value decomposition (SVD). Método similar a análise espectral (autovetores), de crescente importância para redução de dimensionalidade e interpretação de dados multi-dimensionais. Por exemplo, é aplicado para justificar métodos de renormalização de grupo (como DMRG);
  • Uma das referências fundamentias sobre métodos numéricos é o livro Matrix Computations de Golub e van Loan. Tenho uma cópia se alguém tiver interesse.
  • Aprendizado de máquina (ML) pode ter muitas aplicações em modelagem molecular. Por exemplo, campos de força foram montados com ML aqui ou aqui. Quem quiser se aventurar, pode começar com esta biblioteca em Python, que também apresenta bons tutoriais sobre ML.