Update docs
This commit is contained in:
107
docs/index.html
107
docs/index.html
@@ -126,8 +126,6 @@ Operating systems</h2>
|
||||
Tools</h2>
|
||||
<ul>
|
||||
<li>Profiling<ul>
|
||||
<li><a href="https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html">gprof</a></li>
|
||||
<li><a href="https://www.scalasca.org/">scalasca</a></li>
|
||||
<li><a href="https://www.vi-hps.org/projects/score-p">score-p</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -149,39 +147,56 @@ Libraries</h2>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="autotoc_md5"></a>
|
||||
Compiling</h1>
|
||||
<p>Compiling is as easy as running this command while being inside the src directory:</p>
|
||||
<p>The commands shown here should be run from the root of this project.</p>
|
||||
<h2><a class="anchor" id="autotoc_md6"></a>
|
||||
Normal binaries</h2>
|
||||
<p>Compiling regular binaries is as easy as running this command:</p>
|
||||
<div class="fragment"><div class="line">make</div>
|
||||
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md6"></a>
|
||||
Running programs</h1>
|
||||
</div><!-- fragment --><p>The binaries will then be inside the **./bin** directory.</p>
|
||||
<h2><a class="anchor" id="autotoc_md7"></a>
|
||||
Profiling binaries</h2>
|
||||
<p>If you want to profile the programs (specifically the MPI program), then run this command</p>
|
||||
<div class="fragment"><div class="line">make profile</div>
|
||||
</div><!-- fragment --><p>The binaries will then be inside the **./prof** directory.</p>
|
||||
<h2><a class="anchor" id="autotoc_md8"></a>
|
||||
Debugging binaries</h2>
|
||||
<p>If you want to debug the code, then use this command:</p>
|
||||
<div class="fragment"><div class="line">make debug</div>
|
||||
</div><!-- fragment --><p>The binaries will then be inside the **./debug** directory.</p>
|
||||
<h1><a class="anchor" id="autotoc_md9"></a>
|
||||
Running programs</h1>
|
||||
<h2><a class="anchor" id="autotoc_md10"></a>
|
||||
C++ binaries</h2>
|
||||
<p>To run <b>main</b> or <b>test_suite</b>, just run this command while being inside src:</p>
|
||||
<div class="fragment"><div class="line">./<program-name></div>
|
||||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md8"></a>
|
||||
<p>To run any of the programs, just use the following command:</p>
|
||||
<div class="fragment"><div class="line">./<bin|prof|debug>/<program-name> <args></div>
|
||||
</div><!-- fragment --><p>If you need help with any of the programs, you can use the <b>-h</b> or <b>–help</b> flag to show you how to use the programs. Here is an example:</p>
|
||||
<div class="fragment"><div class="line">./bin/main --help</div>
|
||||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md11"></a>
|
||||
Python scripts</h2>
|
||||
<h3><a class="anchor" id="autotoc_md9"></a>
|
||||
<h3><a class="anchor" id="autotoc_md12"></a>
|
||||
Install libraries</h3>
|
||||
<p>Before running the scripts, make sure that all libraries are installed. Using pip, you can install all requirements like this:</p>
|
||||
<div class="fragment"><div class="line">pip install -r requirements.txt</div>
|
||||
</div><!-- fragment --><p>This recursively install all the packages that are listed in <b>requirements.txt</b>.</p>
|
||||
<h3><a class="anchor" id="autotoc_md10"></a>
|
||||
<h3><a class="anchor" id="autotoc_md13"></a>
|
||||
Running scripts</h3>
|
||||
<p>For the Python scripts, run them from the src directory like this:</p>
|
||||
<div class="fragment"><div class="line">python scripts/<script-name></div>
|
||||
<p>For the Python scripts, run them from the root of the project:</p>
|
||||
<div class="fragment"><div class="line">python python_scripts/<script-name></div>
|
||||
</div><!-- fragment --><p>If you have any problems running the scripts, you might have to run this instead:</p>
|
||||
<div class="fragment"><div class="line">python3 scripts/<script-name></div>
|
||||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md11"></a>
|
||||
<div class="fragment"><div class="line">python3 python_scripts/<script-name></div>
|
||||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md14"></a>
|
||||
Batch system</h2>
|
||||
<p>For the <b>phase_transition_mpi</b> program, there are scripts in the <b>src/jobs</b> directory that come along with it. This is to be able to run it on a batch system using Slurm if you have access to one. This is the recommended way to use this program as it takes approximately 90 minutes to complete when using 8 processes where each process has 10 threads.</p>
|
||||
<p>If you happen to have such a system available to you, then you should clone this repo on that system, then compile it by running:</p>
|
||||
<div class="fragment"><div class="line">make phase_transition_mpi</div>
|
||||
</div><!-- fragment --><p>You might have to load the Armadillo library using the <b>module</b> system before compiling.</p>
|
||||
<p>After compiling, you can schedule it by running:</p>
|
||||
<div class="fragment"><div class="line">sbatch jobs/<script-name></div>
|
||||
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md12"></a>
|
||||
<p>For the <b>phase_transition_mpi</b> program, there are scripts in the **./slurm_scripts** directory that come along with it. This is to be able to run it on a batch system using Slurm if you have access to one. The only program that should be executed by the user is the **./slurm_scripts/execute.script** script. You can see how to use this script by doing:</p>
|
||||
<div class="fragment"><div class="line">./slurm_scripts/execute.script --help</div>
|
||||
</div><!-- fragment --><p>This is the recommended way to use this program as it takes approximately 90 minutes to complete when using 8 processes where each process has 10 threads.</p>
|
||||
<p>If you happen to have such a system available to you, then you should clone this repo on that system, then compile the MPI program like this:</p>
|
||||
<div class="fragment"><div class="line">make bin/phase_transition_mpi</div>
|
||||
</div><!-- fragment --><p>After compiling, you can schedule it by using the **./slurm_scripts/execute.script**:</p>
|
||||
<div class="fragment"><div class="line">./slurm_scripts/execute.script <parameters></div>
|
||||
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md15"></a>
|
||||
Performance</h1>
|
||||
<p>This section aims to give an idea to the time it takes for the program to run so that you know a bit what to expect if you decide to run it for yourself.</p>
|
||||
<h2><a class="anchor" id="autotoc_md13"></a>
|
||||
<p>This section aims to give an idea to the time it takes for the phase transition program to run so that you know a bit what to expect if you decide to run it for yourself.</p>
|
||||
<h2><a class="anchor" id="autotoc_md16"></a>
|
||||
CPU</h2>
|
||||
<p>The times mentioned here are times achieved on a computer with these specifications:</p>
|
||||
<ul>
|
||||
@@ -198,9 +213,51 @@ CPU</h2>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md14"></a>
|
||||
<h2><a class="anchor" id="autotoc_md17"></a>
|
||||
Times</h2>
|
||||
<h1><a class="anchor" id="autotoc_md15"></a>
|
||||
<p>Note that all times here are recorded using the OpenMP implementation of the MCMC algorithm.</p>
|
||||
<table class="markdownTable">
|
||||
<tr class="markdownTableHead">
|
||||
<th class="markdownTableHeadNone">lattice size </th><th class="markdownTableHeadNone">points </th><th class="markdownTableHeadNone">samples </th><th class="markdownTableHeadNone">burn-in time </th><th class="markdownTableHeadNone">time (seconds) </th></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">3.20 </td></tr>
|
||||
<tr class="markdownTableRowEven">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">40 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">6.17 </td></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">80 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">12.11 </td></tr>
|
||||
</table>
|
||||
<table class="markdownTable">
|
||||
<tr class="markdownTableHead">
|
||||
<th class="markdownTableHeadNone">lattice size </th><th class="markdownTableHeadNone">points </th><th class="markdownTableHeadNone">samples </th><th class="markdownTableHeadNone">burn-in time </th><th class="markdownTableHeadNone">time (seconds) </th></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">3.20 </td></tr>
|
||||
<tr class="markdownTableRowEven">
|
||||
<td class="markdownTableBodyNone">40 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">11.91 </td></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">80 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">47.88 </td></tr>
|
||||
</table>
|
||||
<table class="markdownTable">
|
||||
<tr class="markdownTableHead">
|
||||
<th class="markdownTableHeadNone">lattice size </th><th class="markdownTableHeadNone">points </th><th class="markdownTableHeadNone">samples </th><th class="markdownTableHeadNone">burn-in time </th><th class="markdownTableHeadNone">time (seconds) </th></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">3.20 </td></tr>
|
||||
<tr class="markdownTableRowEven">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">1000000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">29.95 </td></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">10000000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">305.849 </td></tr>
|
||||
</table>
|
||||
<table class="markdownTable">
|
||||
<tr class="markdownTableHead">
|
||||
<th class="markdownTableHeadNone">lattice size </th><th class="markdownTableHeadNone">points </th><th class="markdownTableHeadNone">samples </th><th class="markdownTableHeadNone">burn-in time </th><th class="markdownTableHeadNone">time (seconds) </th></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">3.20 </td></tr>
|
||||
<tr class="markdownTableRowEven">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">5000 </td><td class="markdownTableBodyNone">4.93 </td></tr>
|
||||
<tr class="markdownTableRowOdd">
|
||||
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">100000 </td><td class="markdownTableBodyNone">10000 </td><td class="markdownTableBodyNone">6.58 </td></tr>
|
||||
</table>
|
||||
<p>We can see that changing the number of points, samples and burn-in time changes the time in a linear fashion, while changing the size of the lattice changes the time in a square fashion.</p>
|
||||
<h1><a class="anchor" id="autotoc_md18"></a>
|
||||
Credits</h1>
|
||||
<p>The Doxygen theme used here is <a href="https://github.com/jothepro/doxygen-awesome-css">doxygen-awesome-css</a>. </p>
|
||||
</div></div><!-- PageDoc -->
|
||||
|
||||
Reference in New Issue
Block a user