Loading...
Searching...
No Matches
Ising Model

Repo

Documentation

# Requirements

## Operating systems

- Linux
  - Has been tested on Fedora 38
  - Will most likely work on other Linux distributions
- MacOS
  - Might work, but hasn't been tested
- Windows
  - Will most likely not work

## Tools

- Profiling
  - gprof
  - scalasca
  - score-p

## Libraries

- Python
  - matplotlib
  - numpy
- C++
  - Openmp
  - OpenMPI
  - Armadillo

# Compiling

Compiling is as easy as running this command while being inside the src directory:

make

# Running programs

## C++ binaries

To run main or test_suite, just run this command while being inside src:

./<program-name>

## Python scripts

### Install libraries

Before running the scripts, make sure that all libraries are installed. Using pip, you can install all requirements like this:

pip install -r requirements.txt

This recursively install all the packages that are listed in requirements.txt.

### Running scripts

For the Python scripts, run them from the src directory like this:

python scripts/<script-name>

If you have any problems running the scripts, you might have to run this instead:

python3 scripts/<script-name>

## Batch system

For the phase_transition_mpi program, there are scripts in the src/jobs 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.

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:

make phase_transition_mpi

You might have to load the Armadillo library using the module system before compiling.

After compiling, you can schedule it by running:

sbatch jobs/<script-name>

# Performance

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.

## CPU

The times mentioned here are times achieved on a computer with these specifications:

- CPU model
  - Intel i7-9850H
- Threads
  - 12
- Clock speed
  - 4.6GHz

## Times

# Credits

The Doxygen theme used here is doxygen-awesome-css.