Parallel Computing Concepts and Terminology Introduction Parallel Computing in Quantum Chemistry: Past and Present Trends in Hardware Development Trends in Parallel Software Development Parallel Computer Architectures Flynn's Classification Scheme Network Architecture Node Architecture MIMD System Architecture Further Reading Communication via Message-Passing Point-to-Point Communication Operations Collective Communication Operations One-Sided Communication Operations Further Reading Multi-Threading Pitfalls of Multi-Threading Thread-Safety Comparison of Multi-Threading and Message-Passing Hybrid Programming Further Reading Parallel Performance Evaluation Network Performance Characteristics Performance Measures for Parallel Programs Performance Modeling Presenting and Evaluating Performance Data: A Few Caveats Further Reading Parallel Program Design Distribution of Work Distribution of Data Designing a Communication Scheme Design Example: Matrix-Vector Multiplication Summary of Key Points of Parallel Program Design Further Reading Applications of Parallel Programming in Quantum Chemistry Two-Electron Integral Evaluation Basics of Integral Computation Parallel Implementation Using Static Load Balancing Parallel Implementation Using Dynamic Load Balancing The Hartree-Fock Method The Hartree-Fock Equations The Hartree-Fock Procedure Parallel Fock Matrix Formation with Replicated Data Parallel Fock Matrix Formation with Distributed Data Further Reading Second-Order Moller-Plesset Perturbation Theory The Canonical MP2 Equations A Scalar Direct MP2 Algorithm Parallelization with Minimal Modifications High-Performance Parallelization Performance of the Parallel Algorithms Further Reading Local Moller-Plesset Perturbation Theory The LMP2 Equations A Scalar LMP2 Algorithm Parallel LMP2 Appendix A: A Brief Introduction to MPI Appendix B: Pthreads: Explicit Use of Threads Appendix C: OpenMP: Compiler Extensions for Multi-Threading Index References appear at the end of each chapter.
{{comment.content}}