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