This is a joint project between UniNE and BSC on the integration of OmpSs and Intel SGX. It consists of a parallel and secure version of the matrix multiplication problem. It performs the multiplication of two matrices (A and B) into a third one (C). Parallelization is achieved using OmpSs Programming Model and security is assured by means of Intel SGX.
- Install OmpSs
- Install Intel(R) SGX SDK for Linux* OS
- Make sure your environment is set:
$ export TARGET=$HOME/ompss $ source ${sgx-sdk-install-path}/environment
- Build the project with the prepared Makefile:
- Hardware Mode, Debug build:
$ make
- Hardware Mode, Pre-release build:
$ make SGX_PRERELEASE=1 SGX_DEBUG=0
- Hardware Mode, Release build:
$ make SGX_DEBUG=0
- Simulation Mode, Debug build:
$ make SGX_MODE=SIM
- Simulation Mode, Pre-release build:
$ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
- Simulation Mode, Release build:
$ make SGX_MODE=SIM SGX_DEBUG=0
- Hardware Mode, Debug build:
- Execute the binary directly:
- Sequential execution:
$ OMP_NUM_THREADS=1 ./app
- Parallel execution:
$ export n=number_of_threads $ OMP_NUM_THREADS=$n ./app
- Sequential execution:
- Remember to "make clean" before switching build mode