Exercise 3 for the course "Parallel and distributed systems" of THMMY in AUTH university.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
anapt 6d4f864267 move meanshift function to meanshift.cu 7 years ago
code MATLAB code 7 years ago
data Fixed memory management, Add more datasets, Fixed Processing script 7 years ago
output/visualization Fixed memory management, Add more datasets, Fixed Processing script 7 years ago
testers iteration refactor 7 years ago
.gitignore output/ ignored 7 years ago
Makefile Add header documentation 7 years ago
README.md Code clean-up, vars rename, loops merge, matrix saving function 7 years ago
cuda_helpers.cu 2D arrays 7 years ago
mean-shift.cu 2D arrays 7 years ago
meanshift.c without kernel 7 years ago
meanshift_declarations.c move meanshift function to meanshift.cu 7 years ago
meanshift_declarations.h declarations .h and .c 7 years ago
serial.c Fixed memory management, Add more datasets, Fixed Processing script 7 years ago
serial_declarations.c declarations .h and .c 7 years ago
serial_declarations.h Add header documentation 7 years ago

README.md

Mean-shift

Mean-shift is a mathematical procedure, adopted in algorithms, designed in the 70's by Fukunaga and Hostetler. The algorithm is used for:

  • Cluster analysis
  • Computer vision
  • Image processing

Repository

This repository provides a serial implementation of the algorithm in C language, as well as the parallel equivalent in CUDA. The project was undertaken as part of the "Parallel and distributed systems" course of AUTH university.

A Gaussian kernel was used for the weighting function. The code was tested for different data sets and information regarding the execution time and correctness were extracted. In addition, two versions of the parallel algorithm were tested and compared, with and without the usage of shared memory respectively.

Compilation

To compile make sure all necessary packages and dependencies are installed. Then run:

$ make

Usage

blah blah, arguments needed etc

Free Software, Hell Yeah!