Download presentation

Presentation is loading. Please wait.

Published byEssence Pennell Modified over 2 years ago

1
Hartree – Fock Benchmark JOHN FEO Center for Adaptive Supercomputing Software

2
Self-Consistent Field Method Obtain variational solutions to the electronic Schrödinger Equation 2 eigenvector Wavefront Energy By expressing the system’s one electron orbitals as the dot product of the system’s eigenvectors and some set of Gaussian basis functions Gaussian basis function

3
… reduces to The solution to the electronic Schrödinger Equation reduces to the self-consistent eigenvalue problem 3 Fock matrix Eigenvectors Density matrix Overlap matrix Eigenvalues One-electron forces Two-electron Coulomb forces Two-electron Exchange forces

4
Logical flow 4 Initial Density Matrix Construct Fock Matrix a) One electron b) Two electron Compute Orbitals Compute Density Matrix Damp Density Matrix no convergence convergence Output Initial Orbital Matrix Schwarz Matrix

5
Modules 5 denges Construct Fock Matrix a) oneel b) twoel diagon makden a) damp b) dendif no convergence convergence Output makeob makesz

6
Matrix flow 6 Compute Fock Matrix diagon makden Damp Density Matrix Output oneel twoel g_schwartzh g g_fock g_orbs g_dens g_work eigv dendif - constant - current iteration - previous iteration

7
Memory footprint 7 Ten 2-D arrays of size nbfn x nbfn Two 1-D arrays of size nbfn h is size (nbfn) 2 g is size (nbfn) 4 Direct method – compute g each time Conventional method – compute g once and store nbfn = number of basis functions = 15 * number of atoms

8
Typical loop structures for (i = 0; i tol) ? h(i,j) : 0.0; } } 8 oneel for (i = 0; i < nbfn; i++) { for (j = 0; j < nbfn; j++) { double p = 0.0; for (k = 0; k < nocc; k++) p += g_orbs[i][k] * g_orbs[j][k]; g_work[i][j] = 2.0 * p; } } makden for (i = 0; i denmax) denmax = xdiff; } } dendif nocc = 2 * number of atoms

9
The BIG loop for (l = 0; l < nbfn; l++) { for (k = 0; k < nbfn; k++) { for (j = 0; j < nbfn; j++) { for (i = 0; i < nbfn; i++) { if (g_schwarz[i][j] * schwmax ) < tol2e) {icut1 ++; continue;} if (g_schwarz[i][j] * g_schwarz[k][l]) < tol2e) {icut2 ++; continue;} icut3 ++; double gg = g(i, j, k, l); g_fock[i][j] += ( gg + g_dens[k][l]); g_fock[i][k] -= (0.5 * gg * g_dens[j][l]); } } } } 9 twoel

10
Optimizations 10 Tiling to improve locality and data reuse e.g. - twoel Module collapse to increase thread size and reduce memory operations e.g. - makden and dendif Inline g and hoist loop invariant subexpressions Exploit 8-way symmetry of g --- precompute and save Conventional method (compute h and g once and store) Probably enough memory Probably not enough latency tolerance or power

Similar presentations

Presentation is loading. Please wait....

OK

Molecular Quantum Mechanics

Molecular Quantum Mechanics

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on acid and base balance Ppt on drupal content management system Ppt on model view controller java Ppt on operating system process management Ppt on marie curie fellowship Ppt on structure of chromosomes proteins Free ppt on mobile number portability process Ppt on pre ignition catalytic converter Ppt on question tags test Ppt on objectives of business communication