diff --git a/latex/sections/abstract.tex b/latex/sections/abstract.tex index 0ac9ea1..5d31601 100644 --- a/latex/sections/abstract.tex +++ b/latex/sections/abstract.tex @@ -6,7 +6,7 @@ temperature, when undergoing phase transition. To generate spin configurations, we used the Metropolis-Hastings algorithm, which applies a Markov chain Monte Carlo sampling method. We determined the time of equilibrium to be approximately - 3000 Monte Carlo cycles, and used the following samples to find the probability + $5000$ Monte Carlo cycles, and used the following samples to find the probability distribution at temperature $T_{1} = 1.0 J / k_{B}$, and $T_{2} = 2.4 J / k_{B}$. For $T_{1}$ the mean energy per spin is $\langle \epsilon \rangle \approx -1.9969 J$, with a variance $\text{Var} (\epsilon) = 0.0001$. And for $T_{2}$, close to the critical @@ -16,6 +16,6 @@ susceptibility. We have estimated the critical temperatures of finite lattice sizes, and used these values to approximate the critical temperature of a lattice of infinite size. Using linear regression, we estimated the critical temperature - to be $T_{c}(L = \infty) \approx 2.2695 J/k_{B}$. + to be $T_{c}^{*}(L = \infty) \approx 2.2693 J/k_{B}$. \end{abstract} \end{document} diff --git a/latex/sections/appendices.tex b/latex/sections/appendices.tex index 80875ae..bac5951 100644 --- a/latex/sections/appendices.tex +++ b/latex/sections/appendices.tex @@ -216,4 +216,12 @@ the magnetic susceptibility. \label{fig:phase_susceptibility_1M} \end{figure} +Result of profiling using Score-P in Figure \ref{fig:scorep_assessment}. +\begin{figure}[H] + \centering + \includegraphics[width=\linewidth]{../images/profiling.pdf} + \caption{Score-P assessment of parallel efficiency.} + \label{fig:scorep_assessment} +\end{figure} + \end{document} \ No newline at end of file diff --git a/latex/sections/conclusion.tex b/latex/sections/conclusion.tex index 0377ac0..284bc73 100644 --- a/latex/sections/conclusion.tex +++ b/latex/sections/conclusion.tex @@ -30,6 +30,6 @@ heat capacity and susceptibility for lattices of size $L = {20, 40, 60, 80, 100} We observed a phase transition in the temperature range $T \in [2.1, 2.4] J / k_{B}$. Using the values from the finite lattices, we approximated the critical temperature of a lattice of infinite size. Using linear regression, we numerically estimated -$T_{c}(L = \infty) \approx 2.2695 J/k_{B}$ which is close to the analytical solution -$T_{C}(L = \infty) \approx 2.269 J/k_{B}$ Lars Onsager found in 1944. +$T_{c}^{*}(L = \infty) \approx 2.2693 J/k_{B}$ which is close to the analytical solution +$T_{c}(L = \infty) \approx 2.269 J/k_{B}$ Lars Onsager found in 1944. \end{document} diff --git a/latex/sections/results.tex b/latex/sections/results.tex index 17d7baf..9ca95ca 100644 --- a/latex/sections/results.tex +++ b/latex/sections/results.tex @@ -102,8 +102,13 @@ MPI processes. Each process was set to spawn $10$ threads, resulting in a total $100$ threads working in parallel. We include results for $1$ million MC cycles in Appendix \ref{sec:additional_results} -$\boldsymbol{Rewrite}$ We used a profiler to make sure the program was fully optimized which found that the -workload was balanced, the threads was not left idle to long/not a lot of downtime. +To evaluate the performance of the parallelization, we used a profiler. The +assessment output can be found in Appendix \ref{sec:additional_results} in Figure +\ref{fig:scorep_assessment}. The assessment shows a lower score for the MPI load +balance, compared to the OpenMP load balance. The master process gatheres all the +data using blocking communication, resulting in the other processes waiting. This +results in one process, the master, having to work more. The OpenMP load balance +score is very good, suggesting the threads are not left idle for long periods. In Figure \ref{fig:phase_energy_10M}, for the larger lattices we observe a sharper increase in $\langle \epsilon \rangle$ in the temperature range $T \in [2.25, 2.35]$. %] @@ -179,10 +184,10 @@ the lattice size increase toward infinity, $1/L$ approaches zero. % \end{figure} We used linear regression to find the intercept $\beta_{0}$, which gives us an estimated value of the critical temperature for a lattice of infinite size. The estimated critical temperature -is $T_{c \text{num}} \approx 2.2693 J/k_{B}$. We also compared the +is $T_{c}^{*}(L = \infty) \approx 2.2693 J/k_{B}$. We also compared the estimate with the analytical solution, the relative error of our estimate is \begin{equation*} - \text{Relative error} = \frac{T_{c \text{ numerical}} - T_{c \text{ analytical}}}{T_{c \text{ analytical}}} \approx 5.05405 \cdot 10^{-5} J/k_{B} + \text{Relative error} = \frac{T_{c}^{*} - T_{c \text{ analytical}}}{T_{c \text{ analytical}}} \approx 5.05405 \cdot 10^{-5} J/k_{B} \end{equation*} \end{document} diff --git a/review.md b/review.md index 7416717..db46a04 100644 --- a/review.md +++ b/review.md @@ -104,6 +104,7 @@ I agree! - janitaws: So instead of "We ran a profiler" it should be "We used a profiler"? Could you suggest a way of formulating the sentence so that the info is correct? - coryab: Yes to the first point. "To check if the parallelization was optimal, we used a profiler, which found that the program was efficient. The thing that scored slightly less was the MPI load balance, which is most likely because the master process gathered all data using blocking communication, which made the other processes wait, in addition to having one process work more." - janitaws: If we simply state that the program was efficient we should include some sort of evidence supporting the statement, since the view of efficiency is subjective. Maybe we could include percentage here to support it, the profile gave a number right? +- janitaws: made a change to the entire paragraph, including reference to figure in appendix [ ] 106: was => were - janitaws: My previous comment might make this unnecessary? - coryab: If you use my suggestion, then this can be checked off at the same time.