Advanced Programming Course, Università di Trento
Author: Paolo Rossi
Date: 07/06/2025
-
Build: compile the project from the command line using one of these targets:
make seq # sequential code make par # parallel codeThese commands generate the corresponding executable.
-
Quick test: verify correct behavior from the command line:
./seq 32 # sequential code ./par 32 4 # parallel codeThis runs the computation on a 32x32 matrix.
-
Data collection: run from the command line:
python3 SEQ_launcher.py [num_matrices] # sequential measurements python3 PAR_launcher.py [num_matrices] # parallel measurementsHere
[num_matrices]is the number of matrix sizes to measure. Matrix sizes are powers of two starting from 32. -
Plot generation: run from the command line:
make fig f=[output_file]Replace
[output_file]with the name of the produced output file. -
Cleanup: remove executables and generated text/csv files:
make clean make ctxt
To generate technical documentation (headers + implementations), run:
make docs
Main HTML output:
docs/index.html
The documentation includes:
- project purpose (sequential vs parallel comparison)
- physical model overview
- DOT diagrams for module dependencies and solver workflow
Full measurement report and analysis:
The overall architecture of the project was entirely designed by the author.
AI-based tools were used to support the implementation of specific components, particularly for code generation and refinement. Examples include matrix element indexing strategies and parts of the Python scripts used for data handling and analysis.
All AI-generated content was critically reviewed, adapted, and validated to ensure correctness and consistency with the project objectives.