/PCA_optimization

This project aims to compare the performance of Principal Component Analysis (PCA) implementations using different frameworks and settings. The focus is on benchmarking PCA using NumPy vs. CuPy (GPU-accelerated) for Python implementations, and comparing a C++ implementation using Eigen library with OpenMP parallelization.

Primary LanguageJupyter Notebook

PCA Benchmarking

This project aims to compare the performance of Principal Component Analysis (PCA) implementations using different frameworks and settings. The focus is on benchmarking PCA using NumPy vs. CuPy (GPU-accelerated) for Python implementations, and comparing a C++ implementation using Eigen library with OpenMP parallelization.

Introduction

PCA is a widely used technique for dimensionality reduction in data analysis and machine learning. This project investigates the execution times of PCA algorithms implemented using different frameworks and optimizations. The goal is to identify potential performance improvements and compare the efficiencies of different approaches.

Features

  • Benchmarking PCA implementation on NumPy (CPU) vs. CuPy (GPU-accelerated) for Python
  • Benchmarking PCA implementation using Eigen library in C++ with OpenMP parallelization
  • Comparing the execution times of the different implementations

Authors

  • EL MOUSLIH Salah-eddine
  • GARCIA Andrés