Table of Contents
ParticleSwarmOptimization-openMPI provides an basic implementation of PSO with support for cluster computation through OpenMPI, moreover it uses OpenMP for thread parallelization.
Long report | Short report | Presentation |
---|---|---|
Sphere | Easom | Ackley |
---|---|---|
make
make docker-build
with optional argument DOCKER_TAG
make DOCKER_TAG=mytag docker-build
nix build .
make cluster-pull
./bin/particle-swarm-optimization pso-data.ini
or
mpirun -n <processesNumber ./bin/particle-swarm-optimization -u pso-data.ini
for optional arguments please execute ./bin/particle-swarm-optimization --help
.
Number of runs should be specified directly inside this script
make cluster-run
make report
or
nix build .#report
If you have installed nix package manager
nix shell
otherwise dependencies are described below.
Build:
- OpenMPI
- sqlite C library
- make
- pkg-config
- OpenMP
Python dependencies for jupyter analysis:
- numpy
- jupyterlab or jupyter notebook
- pandas
- matplotlib
Documentation and report generation:
- pandoc
- doxygen
- latex with following packages:
- adjustbox
- babel-german
- background
- bidi
- collectbox
- csquotes
- everypage
- filehook
- footmisc
- footnotebackref
- framed
- fvextra
- letltxmacro
- ly1
- mdframed
- mweights
- needspace
- pagecolor
- sourcecodepro
- sourcesanspro
- titling
- ucharcat
- ulem
- unicode-math
- upquote
- xecjk
- xurl
- zref