An open API service indexing awesome lists of open source software.

https://github.com/fedeizzo/particleswarmoptimization-openmpi

High Performance Computing course project 2022
https://github.com/fedeizzo/particleswarmoptimization-openmpi

c cluster-analysis concurrent-programming openmpi parallel-computing

Last synced: 2 months ago
JSON representation

High Performance Computing course project 2022

Awesome Lists containing this project

README

        

![Documentation](https://github.com/fedeizzo/ParticleSwarmOptimization-OpenMPI/actions/workflows/docs.yaml/badge.svg)
![Docker build](https://github.com/fedeizzo/ParticleSwarmOptimization-OpenMPI/actions/workflows/docker-image.yaml/badge.svg)

# Particle Swarm Optimization OpenMPI

**Table of Contents**

- [Particle Swarm Optimization OpenMPI](#particle-swarm-optimization-openmpi)
- [Build](#build)
- [Binary](#binary)
- [Docker](#docker)
- [Nix](#nix)
- [Udocker](#udocker)
- [Run](#run)
- [Local](#local)
- [Cluster (through PBS)](#cluster-through-pbs)
- [Report](#report)
- [Dependencies](#dependencies)

*ParticleSwarmOptimization-openMPI* provides an basic implementation of [PSO](https://en.wikipedia.org/wiki/Particle_swarm_optimization) with support for cluster computation through [OpenMPI](https://www.open-mpi.org/), moreover it uses [OpenMP](https://www.openmp.org/) for thread parallelization.

| Long report | Short report | Presentation |
|--------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| [![](assets/report-thumbnail.png)](https://fedeizzo.github.io/ParticleSwarmOptimization-OpenMPI/report.pdf) | [![](assets/short-report-thumbnail.png)](https://fedeizzo.github.io/ParticleSwarmOptimization-OpenMPI/short-report.pdf) | [![](assets/presentation-thumbnail.png)](https://fedeizzo.github.io/ParticleSwarmOptimization-OpenMPI/presentation.pdf) |

## Results

| **Sphere** | **Easom** | **Ackley** |
|------------------------|-----------------------|------------------------|
| ![](assets/sphere.gif) | ![](assets/easom.gif) | ![](assets/ackley.gif) |

## Build
### Binary
```bash
make
```

### Docker
```bash
make docker-build
```

with optional argument `DOCKER_TAG`

```bash
make DOCKER_TAG=mytag docker-build
```

### Nix
```
nix build .
```

### Udocker
```bash
make cluster-pull
```

## Run
### Local
```bash
./bin/particle-swarm-optimization pso-data.ini
```

or

```bash
mpirun -n