Skip to content

Parallel implementation of principal component analysis (PCA).

License

Notifications You must be signed in to change notification settings

gabrimatx/ParallelPCA

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParallelPCA

Introduction

ParallelPCA is a program that implements a distributed algorithm for Principal Components Analysis. The two methodologies implemented are multithreading and message passing between multiple processes. The input and output is performed with grayscale images for visualization and simplicity, but can be easily applied to RGB images and other objects.

Installation

Clone

# PARALLEL_PCA=/path/to/clone/ParallelPCA
git clone https://github.com/rubenciranni/ParallelPCA.git $PARALLEL_PCA

Install dependencies

The following packages are required to run the application:

cmake
mpi
pthreads
jpeg
lapacke
cblas

How to build

Inside any of the pthreads/, mpi/, serial/ directories:

mkdir build
cd build
cmake ..
make

How to run

Pthreads

./main <n_threads> <image path> <n_principal_components> <style (optional)>

MPI

mpirun -n <number of processes> ./main <image path> <number of components> <normalization style (optional)>

Serial

./main <image path> <n_components> <style (optional)>

Authors

We're a group of three hard-working university students at Sapienza University of Rome. ParallelPCA is a project that we have undertaken as part of our academic curriculum, specifically designed to fulfill the requirements of one of our examinations - Embedded and Multicore Systems Programming. For any clarifications or further information regarding the project, please feel free to reach out to us.

License

ParallelPCA is released under the MIT License.

About

Parallel implementation of principal component analysis (PCA).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 65.0%
  • C 35.0%