This is the main source code repository for the Locusta project. It contains the library code implementation, documentation and an example benchmarking application using the GoogleTest library.
- Install Dependencies
-
CUDA & CUDA Toolkit. See CUDA Quick start guide
-
CMake
sudo apt-get install cmake
- Google Test
sudo apt-get install libtgtest-dev
- Run Cmake
cmake -B build .
- Compile test application
cd Build make -j
- Install Dependencies
- CMake
sudo apt-get install cmake
- Doxygen
sudo apt-get install doxygen
- Graphviz
sudo apt-get install graphviz
- Run Cmake
cmake -B build .
- Compile
cd Build make doc
A Massively Parallel Evolutionary Computation Metaheuristic Framework.
Locusta provides a framework to build various population based evolutionary metaheuristics.
The current implementation uses CUDA to describe massively parallel kernels, to compute: the evaluation of the fitness function on a population of genomes, the methaheuristic processes (ej. mutation, crossover) and the generation of pseudorandom numbers.
The collection of metaheuristics also has a CPU parallel implementation, written using OpenMP. Implementations are not design to perform invariant transformation, between architectures. Given that each platform, implies a different problem to solve in the data-oriented design, each implementation can vary widely in implementation. The framework provides a way to compare and measure the performance throughoutput of each implementation, taking into account the strenghts of each targeted architecture.
Metaheuristic Solver | OMP | CUDA |
---|---|---|
Particle Swarm Optimization | ✓ | ✓ |
Genetic Algorithm | ✓ | ✓ |
Differential Evolution | ✓ | ✓ |
Locusta is distributed under the terms of the GNU Lesser General Public Licence
See LICENSE-LGPL-3.0