Pests of mustard_Identification_Management_Dr.UPR.pdf
Secure Task-Based Programming with OmpSs and SGX
1. The LEGaTO project has received funding from the European Union’s Horizon 2020 research and innovation
programme under the grant agreement No 780681. This work has been supported by the Ministry of Science
and Innovation, under the project "Computación de Altas Prestaciones VIII" (PID2019-107255GB).
www.legato-project.eu
• E3-1275 CPU with 8 cores
• Intel SGX SDK version 2.8
Isabelly Rocha1, Marcelo Pasin1, Valerio Schiavoni1, Pascal Felber1,
Xavier Martorell2,3, Osman Unsal2
1University of Neuchâtel, 2Barcelona Supercomputing Center, 3Universitat Politècnica de Catalunya
Secure Task-Based Programming with OmpSs and SGX
OmpSs Programming Model Intel Software Guard Extensions (SGX)+
Goals
Matrix MultiplicationDot Product
STREAM Benchmark*
Evaluation Settings
Applications
Asynchronous
Parallelism
Hardware
Heterogeneity
Secure
Computation
Microbenchmarks
Note: Solid and dashed bars correspond to runtime and energy, respectively.
OS (Linux) + SGX SDK
OmpSs@SGX
Application
Programmer adapts
tasks to SGX
(with calls to Nanos++ runtime)
Source Code
+
Annotations
Mercurium
Compiler
External Kernals
1
2
Create Enclave
CallTrusted()
Untrusted
Environment
Trusted
Environment
Process
Secrets
3
4
Cont.
Return
OmpSs
DFiant HDL
SGX Compiler
MaxJ
CUDA
Enclave
Kernals
GCC
Nanos Enclave
Support
SMP
OmpSs.elf
Oriented to shared memory
environments, with a runtime that
leverages low-level APIs and
manages data dependencies
Security-related instruction codes
that are built into some modern Intel
central processing units (CPUs)
Support task parallelism and heterogeneity
under secure mechanisms
Approach
Evaluate performance and energy impacts of
our approach under different task-related
configurations: input and graph size, number
of threads and scheduling algorithm
1
2
*measures sustainable memory bandwidth and the
corresponding computation rate for vector kernels
0
0.5
1
1.5
2
2.5
3
small medium large
Tasks Graph Size Energy and Performance Impact
RatioSGXtoNonSGX
Tasks Graph Size
matmul dot-prod stream
0
2
4
6
8
10
12
small medium large
Tasks Input Size Energy and Performance Impact
RatioSGXtoNonSGX
Tasks Input Size
matmul dot-prod stream
0
0.5
1
1.5
2
2.5
3
Breadth First Work First
Scheduler Energy and Performance Impact
RatioSGXtoNonSGX
Scheduler
matmul dot-prod stream
0
0.5
1
1.5
2
2.5
3
3.5
1 2 4 8
Number of Threads Energy and Performance Impact
RatioSGXtoNonSGX
matmul dot-prod stream