This repository contains two academic projects focusing on High Performance Computing (HPC), specifically utilizing MPI (Message Passing Interface) and OpenMP with intrinsic optimizations (AVX and NEON). And Both were implemented in C.
- Supervisor: Charles Bouillaguet
- Email: [email protected]
- Project Contributors: Yannick Zhang, Romain Capron
- University/Institution: Polytech Sorbonne, Université Pierre et Marie Curie (UPMC)
This repository consists of two main repertory, each containing:
- Initial problem statements and sequential codes
- Parallel implementations using MPI or OpenMP and intrinsic optimizations (AVX and NEON)
- Python scripts for result analysis
- Detailed reports documenting the methodology and interpretation of results
To utilize the provided codes, follow these steps:
-
Clone the repository:
git clone https://github.com/Owkly/HPC
-
Navigate to the desired project directory:
cd <project_directory>
Replace
<project_directory>with eitherMPIorOMP_Intrinsic. -
Compile the codes using :
make
-
Optionally, clean the directory (remove executables and temporary files) using:
make clean
-
For the sequential version:
./heatsink_sequential
-
For the parallel version:
make run NUM=<number_of_processes> TARGET=<executable_name>
Replace
<number_of_processes>with the desired number of processes and<executable_name>with the name of the target executable, eitherheatsink_1Dorheatsink_2D. -
For graphical representation:
make graph MODE=<mode>
Replace
<mode>with eitherFAST,MEDIUM, orNORMAL. (Default mode isFAST)NOTE: If you want to change the mode, you have to modify the specific C file (in the
#defineon line 23) and recompile the code using themakecommand.
-
For sequential execution:
make run-seq
-
For parallel version:
make run TARGET=<executable_name> THREADS=<number_of_threads>
Replace
<number_of_threads>with the desired number of threads and<executable_name>with the name of the target executable (fft_openmporfft_intrinsic_vec).