Skip to content

Parallelized versions of popular Machine Learning algorithms, written in C using (mostly) the OpenMP API.

License

Notifications You must be signed in to change notification settings

makariosb/Parallel-Machine-Learning-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallelization of Machine Learning Algorithms

These C codes were developed in 2019 for my Parallel Programming in Machine Learning Problems course of my Electrical & Computer Engineering studies in University of Patras.

Project # Premise
1 K-means clustering using only gcc compiler optimizations
2 K-means clustering using the OpenMP API.
3 Travelling salesman problem. Parallel implementations of the Naive TSP(Random Search), Naive Heinritz-Hsiao and Ant Colony Optimization algotithms using OpenMP.
4 Feedforward Multi-Layer Neural Network using OpenMP

Notes on Projects 1 & 2:

  • In both those projects, the dataset is generated randomly at the beginning and consists of 10 thousand 1000-dimensional vectors normalized to [-1,1].
  • The code is written for processors with SIMD (Single Instruction Multiple Data) capabilities.
  • The execution times shown were computed by using a constant seed to generate the data, and averaged over 30 executions of the program.

Notes on Project 4:

The neural network consists of the input layer [784 dimensions], 1 hidden layer [100 dimensions] and the output layer [10 dimensions]. It is trained using the MNIST fashion dataset. The neural network ran for ~20min for the parameters below. A more detailed view of the execution parameters and output can be found in execution_info.md

  • Activation function: Logistic
  • The number of epochs used is 500
  • Loss function: MSE
  • Learning rate: 0.05

About

Parallelized versions of popular Machine Learning algorithms, written in C using (mostly) the OpenMP API.

Topics

Resources

License

Stars

Watchers

Forks

Languages