References DGEMM
This commit is contained in:
parent
4a7f2e462d
commit
d62a0e45b4
Binary file not shown.
@ -130,6 +130,26 @@ In the following sections of this paper, we will provide a brief introduction to
|
|||||||
%c. Challenges and limitations of traditional approaches
|
%c. Challenges and limitations of traditional approaches
|
||||||
|
|
||||||
|
|
||||||
|
The perturbative triples correction,
|
||||||
|
\begin{equation}
|
||||||
|
E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc}
|
||||||
|
\end{equation}
|
||||||
|
is a sum of $N=N_o^3 \times N_v^3$ terms,
|
||||||
|
\begin{equation}
|
||||||
|
E_{ijk}^{abc} = \frac{(4 W_{ijk}^{abc} +
|
||||||
|
W_{ijk}^{bca} + W_{ijk}^{cab})
|
||||||
|
(V_{ijk}^{abc} - V_{ijk}^{cba})}{\epsilon_i + \epsilon_j + \epsilon_k -
|
||||||
|
\epsilon_a - \epsilon_b - \epsilon_c}
|
||||||
|
\end{equation}
|
||||||
|
which depend on the canonical orbital energies $\epsilon$, and the tensors $W$ and $V$.
|
||||||
|
The indices $i,j,k$ and $a,b,c$ denote respectively occupied and virtual orbitals.
|
||||||
|
|
||||||
|
The bottleneck is the computation of $W$, which requires $\order{N_o^3 \times
|
||||||
|
N_v^4}$ operations. However, most of the operations involved in the computation of $W$
|
||||||
|
can be recast into matrix multiplications, which are among the most efficient
|
||||||
|
operations than can be executed on modern CPUs and
|
||||||
|
accelerators.\cite{ma_2011,haidar_2015,dinapoli_2014,springer_2018}
|
||||||
|
|
||||||
%=================================================================%
|
%=================================================================%
|
||||||
\section{Semi-Stochastic Algorithm}
|
\section{Semi-Stochastic Algorithm}
|
||||||
\label{sec:algorithm}
|
\label{sec:algorithm}
|
||||||
@ -145,6 +165,12 @@ In the following sections of this paper, we will provide a brief introduction to
|
|||||||
%c. Discussion of the algorithm's advantages and potential trade-offs
|
%c. Discussion of the algorithm's advantages and potential trade-offs
|
||||||
%d. Detailed pseudocode or algorithmic steps, if applicable
|
%d. Detailed pseudocode or algorithmic steps, if applicable
|
||||||
|
|
||||||
|
\subsection{Stochastic formulation}
|
||||||
|
|
||||||
|
\subsection{Test code}
|
||||||
|
\label{subsec:test_code}
|
||||||
|
% Include the test code here, if applicable.
|
||||||
|
|
||||||
|
|
||||||
%=================================================================%
|
%=================================================================%
|
||||||
\section{Implementation Details}
|
\section{Implementation Details}
|
||||||
|
18
triples.org
18
triples.org
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
* Stochastic formulation
|
* Stochastic formulation
|
||||||
|
|
||||||
The perturbative correction is expressed as:
|
The perturbative correction reads:
|
||||||
|
|
||||||
\[
|
\[
|
||||||
E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc} = \sum_{ijkabc} \frac{(4 W_{ijk}^{abc} +
|
E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc} = \sum_{ijkabc} \frac{(4 W_{ijk}^{abc} +
|
||||||
@ -12,14 +12,19 @@ E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc} = \sum_{ijkabc} \frac{(4 W_{ijk}^{abc} +
|
|||||||
\epsilon_a - \epsilon_b - \epsilon_c}
|
\epsilon_a - \epsilon_b - \epsilon_c}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
|
where the indices $i,j,k$ run over the $N_o$ occupied orbitals, and
|
||||||
|
the indices $a,b,c$ run over the $N_v$ virtual orbitals.
|
||||||
|
|
||||||
If $E_{(T)}$ is computed as
|
If $E_{(T)}$ is re-expressed as
|
||||||
\[
|
\[
|
||||||
E_{(T)} = \sum_{ijkabc} \frac{1}{N} \left( E_{ijk}^{abc} \times N \right)
|
E_{(T)} = \sum_{ijkabc} \frac{1}{N} \left( E_{ijk}^{abc} \times N \right)
|
||||||
\]
|
\]
|
||||||
where $N$ is the total number of terms, it can be computed by drawing
|
where $N=N_o^3 N_v^3$ is the total number of terms, it can be computed by drawing
|
||||||
uniformly samples $E_{ijk}^{abc}$ and computing the statistical
|
uniformly samples $E_{ijk}^{abc}$ and using the statistical average as
|
||||||
average.
|
|
||||||
|
\[
|
||||||
|
E_{(T)} = N \times \langle E_{ijk}^{abc} \rangle
|
||||||
|
\]
|
||||||
|
|
||||||
The stochastic calculation is unbiased, but the rate of convergence of
|
The stochastic calculation is unbiased, but the rate of convergence of
|
||||||
the statistical error is be governed by the variance of the
|
the statistical error is be governed by the variance of the
|
||||||
@ -115,8 +120,7 @@ $E_B$ stochastically and we can separate the buckets into stochastic
|
|||||||
|
|
||||||
\[
|
\[
|
||||||
E_{(T)} = \sum_{B \in \mathcal{D}} E_B + \frac{1}{|\mathcal{S}|} \sum_{B \in \mathcal{S}}
|
E_{(T)} = \sum_{B \in \mathcal{D}} E_B + \frac{1}{|\mathcal{S}|} \sum_{B \in \mathcal{S}}
|
||||||
\left \langle E^B_{abc} \times \frac{\epsilon_{\text{occ}} -
|
\left \langle E^B_{abc} \times \frac{- \epsilon_a - \epsilon_b - \epsilon_c}{\mathcal{N}} \right \rangle_{P(a,b,c), (a,b,c) \in B}
|
||||||
\epsilon_a - \epsilon_b - \epsilon_c}{\mathcal{N}} \right \rangle_{P(a,b,c), (a,b,c) \in B}
|
|
||||||
\]
|
\]
|
||||||
|
|
||||||
All the buckets don't have the same size: the number of triplets per
|
All the buckets don't have the same size: the number of triplets per
|
||||||
|
Loading…
Reference in New Issue
Block a user