Sparse matrices represent a fundamental data structure for the efficient processing of high-dimensional datasets. Among the various representation schemes, the Compressed Sparse Column (CSC) format is particularly widespread due to its efficiency both in terms of memory usage and element access. In this thesis, the development and implementation of a set of operations aimed at the efficient manipulation of CSC matrices are proposed, with particular focus on row-wise and column-wise computations. The adopted approach involves the integration of the R statistical environment with the C++ programming language through the Rcpp interface, in order to combine the flexibility of R—widely used for data analysis in scientific contexts—with the high computational performance of C++. To further enhance efficiency, parallelization techniques using OpenMP have also been introduced, with the goal of distributing the computational workload across multiple threads. Experimental results obtained on large real-world datasets highlight significant performance improvements compared to the main R libraries currently available.

Le matrici sparse costituiscono una struttura dati essenziale per l’elaborazione efficiente di dataset caratterizzati da elevata dimensionalità. Tra i diversi schemi di rappresentazione, il formato Compressed Sparse Column (CSC) risulta particolarmente diffuso grazie alla sua efficienza sia in termini di memoria sia di accesso agli elementi. In questo lavoro di tesi viene proposto lo sviluppo e l’implementato un insieme di operazioni mirate alla manipolazione efficiente di matrici CSC, con particolare attenzione alle elaborazioni per riga e per colonna. L’approccio adottato prevede l’integrazione tra l’ambiente statistico R e il linguaggio C++ mediante l’interfaccia Rcpp, al fine di coniugare la flessibilità di R, ampiamente utilizzato per l’analisi di dati in ambito scientifico, con le elevate prestazioni computazionali di C++. A supporto dell’efficienza, sono state inoltre introdotte tecniche di parallelizzazione mediante OpenMP, finalizzate alla distribuzione del carico di calcolo su più thread. I risultati sperimentali, ottenuti su dataset reali di grandi dimensioni, evidenziano miglioramenti significativi in termini di prestazioni rispetto alle principali librerie R attualmente disponibili.

Progettazione e sviluppo di operazioni efficienti per riga e per colonna su matrici sparse

SARTOR, ALESSANDRO
2024/2025

Abstract

Sparse matrices represent a fundamental data structure for the efficient processing of high-dimensional datasets. Among the various representation schemes, the Compressed Sparse Column (CSC) format is particularly widespread due to its efficiency both in terms of memory usage and element access. In this thesis, the development and implementation of a set of operations aimed at the efficient manipulation of CSC matrices are proposed, with particular focus on row-wise and column-wise computations. The adopted approach involves the integration of the R statistical environment with the C++ programming language through the Rcpp interface, in order to combine the flexibility of R—widely used for data analysis in scientific contexts—with the high computational performance of C++. To further enhance efficiency, parallelization techniques using OpenMP have also been introduced, with the goal of distributing the computational workload across multiple threads. Experimental results obtained on large real-world datasets highlight significant performance improvements compared to the main R libraries currently available.
2024
Design and development of efficient row-wise and column-wise operations on sparse matrices
Le matrici sparse costituiscono una struttura dati essenziale per l’elaborazione efficiente di dataset caratterizzati da elevata dimensionalità. Tra i diversi schemi di rappresentazione, il formato Compressed Sparse Column (CSC) risulta particolarmente diffuso grazie alla sua efficienza sia in termini di memoria sia di accesso agli elementi. In questo lavoro di tesi viene proposto lo sviluppo e l’implementato un insieme di operazioni mirate alla manipolazione efficiente di matrici CSC, con particolare attenzione alle elaborazioni per riga e per colonna. L’approccio adottato prevede l’integrazione tra l’ambiente statistico R e il linguaggio C++ mediante l’interfaccia Rcpp, al fine di coniugare la flessibilità di R, ampiamente utilizzato per l’analisi di dati in ambito scientifico, con le elevate prestazioni computazionali di C++. A supporto dell’efficienza, sono state inoltre introdotte tecniche di parallelizzazione mediante OpenMP, finalizzate alla distribuzione del carico di calcolo su più thread. I risultati sperimentali, ottenuti su dataset reali di grandi dimensioni, evidenziano miglioramenti significativi in termini di prestazioni rispetto alle principali librerie R attualmente disponibili.
Matrici Sparse
OpenMP
Formato CSC
Integrazione Rcpp
Column wise
File in questo prodotto:
File Dimensione Formato  
Sartor_Alessandro.pdf

accesso aperto

Dimensione 709.42 kB
Formato Adobe PDF
709.42 kB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/97854