applying multi-core model checking to hardware-software … · 2020. 9. 11. · foz do iguaçu /...
TRANSCRIPT
![Page 1: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/1.jpg)
Foz do Iguaçu / PR, 5th November of 2015
Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro
Applying Multi-Core Model Checking to
Hardware-Software Partitioning in
Embedded Systems
1
V Brazilian Symposium on Computing Systems
Engineering
![Page 2: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/2.jpg)
Motivation
• Embedded systems: parts in HW (↑ speed, ↑$$$) and other parts
in SW (↓$, ↓ speed)
• Most critical step in 1st generation of HW/SW Co-design
partitioning
• Model checking: describe the system behavior by a precise and
not ambiguous (mathematical) model
– Early detection of errors
– Explore all states of a system in a automatic way
(so instead of finding code violations, we can explore states until it
solves the partitioning problem)
2
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 3: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/3.jpg)
Motivation
• Embedded systems: parts in HW (↑ speed, ↑$$$) and other parts
in SW (↓$, ↓ speed)
• Most critical step in 1st generation of HW/SW Co-design
partitioning
• Model checking: describe the system behavior by a precise and
not ambiguous (mathematical) model
– Early detection of errors
– Explore all states of a system in a automatic way
(so instead of finding code violations, we can explore states until it
solves the partitioning problem)
Introduction Objectives Background Partitioning Results Conclusions Future Work
2
![Page 4: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/4.jpg)
Objectives
• Use OpenMP (Open Multi-Processing API) support to perform multi-
core model checking
• Create and improve algorithms to implement the proposed technique
• Perform experimental evaluation over benchmarks
• Compare our approach with ILP (Integer Linear Programming) and GA
(Genetic Algorithm) using MATLAB
3
Apply multi-core model checking based on satisfiability
modulo theories (SMT) to solve the HW/SW partitioning
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 5: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/5.jpg)
Objectives
• Use OpenMP (Open Multi-Processing API) support to perform multi-
core model checking
• Create and improve algorithms to implement the proposed technique
• Perform experimental evaluation over benchmarks
• Compare our approach with ILP (Integer Linear Programming) and GA
(Genetic Algorithm) using MATLAB
Introduction Objectives Background Partitioning Results Conclusions Future Work
3
Apply multi-core model checking based on satisfiability
modulo theories (SMT) to solve the HW/SW partitioning
![Page 6: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/6.jpg)
Objectives
• Use OpenMP (Open Multi-Processing API) support to perform multi-
core model checking
• Create and improve algorithms to implement the proposed technique
• Perform experimental evaluation over benchmarks
• Compare our approach with ILP (Integer Linear Programming) and GA
(Genetic Algorithm) using MATLAB
Introduction Objectives Background Partitioning Results Conclusions Future Work
3
Apply multi-core model checking based on satisfiability
modulo theories (SMT) to solve the HW/SW partitioning
![Page 7: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/7.jpg)
Objectives
• Use OpenMP (Open Multi-Processing API) support to perform multi-
core model checking
• Create and improve algorithms to implement the proposed technique
• Perform experimental evaluation over benchmarks
• Compare our approach with ILP (Integer Linear Programming) and GA
(Genetic Algorithm) using MATLAB
Introduction Objectives Background Partitioning Results Conclusions Future Work
3
Apply multi-core model checking based on satisfiability
modulo theories (SMT) to solve the HW/SW partitioning
![Page 8: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/8.jpg)
Objectives
• Use OpenMP (Open Multi-Processing API) support to perform multi-
core model checking
• Create and improve algorithms to implement the proposed technique
• Perform experimental evaluation over benchmarks
• Compare our approach with ILP (Integer Linear Programming) and GA
(Genetic Algorithm) using MATLAB
Introduction Objectives Background Partitioning Results Conclusions Future Work
3
Apply multi-core model checking based on satisfiability
modulo theories (SMT) to solve the HW/SW partitioning
![Page 9: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/9.jpg)
Optimization
• Find the maximum or minimum value of a function
– Minimize the effort and maximize the benefit
• There is not a unique method to solve all the problems
• Most popular technique: LP (Linear Programming)
– Integer Linear Programming
– Binary Linear Programming
• Heuristics Algorithms: GA (Genetic Algorithm) can solve more
complex problems faster
– Drawback: it may not find the global minimum/maximum (i.e., the optimal result)
Introduction Objectives Background Partitioning Results Conclusions Future Work
4
![Page 10: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/10.jpg)
Optimization
4
• Find the maximum or minimum value of a function
– Minimize the effort and maximize the benefit
• There is not a unique method to solve all the problems
• Most popular technique: LP (Linear Programming)
– Integer Linear Programming
– Binary Linear Programming
• Heuristics Algorithms: GA (Genetic Algorithm) can solve more
complex problems faster
– Drawback: it may not find the global minimum/maximum (i.e., the optimal result)
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 11: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/11.jpg)
Optimization
4
• Find the maximum or minimum value of a function
– Minimize the effort and maximize the benefit
• There is not a unique method to solve all the problems
• Most popular technique: LP (Linear Programming)
– Integer Linear Programming
– Binary Linear Programming
• Heuristics Algorithms: GA (Genetic Algorithm) can solve more
complex problems faster
– Drawback: it may not find the global minimum/maximum (i.e., the optimal result)
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 12: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/12.jpg)
Optimization
4
• Find the maximum or minimum value of a function
– Minimize the effort and maximize the benefit
• There is not a unique method to solve all the problems
• Most popular technique: LP (Linear Programming)
– Integer Linear Programming
– Binary Linear Programming
• Heuristics Algorithms: GA (Genetic Algorithm) can solve more
complex problems faster
– Drawback: it may not find the global minimum/maximum (i.e., the optimal result)
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 13: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/13.jpg)
Mathematical Modeling
5
Informal Model (Assumptions)
• There is only one software context and only one hardware context– Each component must be mapped into one of these two contexts.
• The software component implementation has a software costassociated (running time)
• The hardware component implementation has a hardware costassociated (area, heat dissipation or energy consumption)
• Premisses: – The hardware is significantly faster than software;
– The running time of hardware is zero;
– If two components are mapped to the same context, there is no overhead ofcommunication between them.
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 14: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/14.jpg)
Mathematical Modeling
5
Informal Model (Assumptions)
• There is only one software context and only one hardware context– Each component must be mapped into one of these two contexts.
• The software component implementation has a software costassociated (running time)
• The hardware component implementation has a hardware costassociated (area, heat dissipation or energy consumption)
• Premisses: – The hardware is significantly faster than software;
– The running time of hardware is zero;
– If two components are mapped to the same context, there is no overhead ofcommunication between them.
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 15: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/15.jpg)
Mathematical Modeling
5
Informal Model (Assumptions)
• There is only one software context and only one hardware context– Each component must be mapped into one of these two contexts.
• The software component implementation has a software costassociated (running time)
• The hardware component implementation has a hardware costassociated (area, heat dissipation or energy consumption)
• Premisses: – The hardware is significantly faster than software;
– The running time of hardware is zero;
– If two components are mapped to the same context, there is no overhead ofcommunication between them.
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 16: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/16.jpg)
Mathematical Modeling
5
Informal Model (Assumptions)
• There is only one software context and only one hardware context– Each component must be mapped into one of these two contexts.
• The software component implementation has a software costassociated (running time)
• The hardware component implementation has a hardware costassociated (area, heat dissipation or energy consumption)
• Premisses: – The hardware is significantly faster than software
– The running time of hardware is zero
– If two components are mapped to the same context, there is no overhead ofcommunication between them
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 17: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/17.jpg)
6
Mathematical Modeling
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7𝑥8
𝑥9
𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
Example: 10 nodes & 13 edges
Formal Model
• Task graph G = (V, E)
• Vertices V = {x1, x2, …, xn} : nodes are the
components of the system to be partitioned
(context)
• Each node xi : has the hardware cost h(xi)
and the software cost s(xi)
- $ HW (area, heat dissipation, energy
consumption)
- $ SW (execution time)
• Edges (E) represent communication between
the components
• c(xi, xj): represents the communication cost
between xi and xj if they are in different contexts
• The HW-SW partitioning 𝑃 has:
– 𝐻𝑃 = ℎ𝑖 (hardware cost)
– 𝑆𝑃 = 𝑠𝑖 + 𝑐(𝑥𝑖 , 𝑥𝑗) (software cost)
![Page 18: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/18.jpg)
6
Mathematical Modeling
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7𝑥8
𝑥9
𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
Example: 10 nodes & 13 edges
Formal Model
• Task graph G = (V, E)
• Vertices V = {x1, x2, …, xn} : nodes are the
components of the system to be partitioned
(context)
• Each node xi : has the hardware cost h(xi)
and the software cost s(xi)
- $ HW (area, heat dissipation, energy
consumption)
- $ SW (execution time)
• Edges (E) represent communication between
the components
• c(xi, xj): represents the communication cost
between xi and xj if they are in different contexts
• The HW-SW partitioning 𝑃 has:
– 𝐻𝑃 = ℎ𝑖 (hardware cost)
– 𝑆𝑃 = 𝑠𝑖 + 𝑐(𝑥𝑖 , 𝑥𝑗) (software cost)
![Page 19: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/19.jpg)
6
Mathematical Modeling
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7𝑥8
𝑥9
𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
Example: 10 nodes & 13 edges
Formal Model
• Task graph G = (V, E)
• Vertices V = {x1, x2, …, xn} : nodes are the
components of the system to be partitioned
(context)
• Each node xi : has the hardware cost h(xi)
and the software cost s(xi)
- $ HW (area, heat dissipation, energy
consumption)
- $ SW (execution time)
• Edges (E) represent communication between
the components
• c(xi, xj): represents the communication cost
between xi and xj if they are in different contexts
• The HW-SW partitioning 𝑃 has:
– 𝐻𝑃 = ℎ𝑖 (hardware cost)
– 𝑆𝑃 = 𝑠𝑖 + 𝑐(𝑥𝑖 , 𝑥𝑗) (software cost)
![Page 20: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/20.jpg)
6
Mathematical Modeling
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7𝑥8
𝑥9
𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
Example: 10 nodes & 13 edges
Formal Model
• Task graph G = (V, E)
• Vertices V = {x1, x2, …, xn} : nodes are the
components of the system to be partitioned
(context)
• Each node xi : has the hardware cost h(xi)
and the software cost s(xi)
- $ HW (area, heat dissipation, energy
consumption)
- $ SW (execution time)
• Edges (E) represent communication between
the components
• c(xi, xj): represents the communication cost
between xi and xj if they are in different contexts
• The HW-SW partitioning 𝑃 has:
– 𝐻𝑃 = ℎ𝑖 (hardware cost)
– 𝑆𝑃 = 𝑠𝑖 + 𝑐(𝑥𝑖 , 𝑥𝑗) (software cost)
![Page 21: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/21.jpg)
6
Formal Model
• Task graph G = (V, E)
• Vertices V = {x1, x2, …, xn} : nodes are the
components of the system to be partitioned
(context)
• Each node xi : has the hardware cost h(xi)
and the software cost s(xi)
- $ HW (area, heat dissipation, energy
consumption)
- $ SW (execution time)
• Edges (E) represent communication between
the components
• c(xi, xj): represents the communication cost
between xi and xj if they are in different contexts
• The HW-SW partitioning 𝑃 has:
– 𝐻𝑃 = ℎ𝑖 (hardware cost)
– 𝑆𝑃 = 𝑠𝑖 + 𝑐(𝑥𝑖 , 𝑥𝑗) (software cost)
Mathematical Modeling
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7𝑥8
𝑥9
𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
Example: 10 nodes & 13 edges
![Page 22: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/22.jpg)
• This paper focus on the case where the initial software cost is given
(𝑆0)
• We want 𝑆𝑃 < 𝑆0 and the minimal necessary hardware cost to resolve
the problem (The complexity is NP-Hard)
7
Mathematical Modeling
ILP GA
Model Checker(ESBMC)
MATLAB – Optimization Toolbox
Introduction Objectives Background Partitioning Results Conclusions Future Work
𝑒1
𝑥2𝑥3
𝑥4𝑥5
𝑥6
𝑥7
𝑥8
𝑥9 𝑥10
𝑥1𝑒2
𝑒3
𝑒4𝑒5 𝑒6
𝑒7
𝑒8𝑒9
𝑒10
𝑒11𝑒12
𝑒13
![Page 23: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/23.jpg)
• Basic Idea: given a transition system M, check negation of a given
property φ up to given depth k
• Translated into a VC ψ such that: ψ is satisfiable iff φ has
counterexample (steps until the violation) of max. depth k
• BMC has been applied successfully to verify (embedded) software since
early 2000’s. In 2014, Alessandro used BMC perform HW-SW
partitioning.
8
Introduction Objectives Background Partitioning Results Conclusions Future Work
Bounded Model Checking
![Page 24: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/24.jpg)
ESBMC (Model Checker)
9
• ESBMC (Efficient SMT-Based Context-Bounded Model Checker) is a
model checker for ANSI-C and C++ source code
– Check overflows, pointer safety, memory leaks, arrays bounds, atomicity, etc.
• Uses Satisfiability Modulo Theories (SMT) (addition to Boolean Satisfiability)
• SMT Solvers as back-end to decrease software complexity
Architecture:
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 25: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/25.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
k=3 (bound)
![Page 26: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/26.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
k=3 (bound)
![Page 27: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/27.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
k=3 (bound)
![Page 28: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/28.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
the CFG of the program
k=3 (bound)
![Page 29: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/29.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 30: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/30.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 31: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/31.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 32: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/32.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Equations size is proportional to the system complexity
(if the equation has many math expressions, then it resultsin higher verification time)
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 33: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/33.jpg)
ESBMC Architecture
10
#include<stdio.h>#include<assert.h>
int main(){int i = 0;for (i=0; i<50;i++){
assert(i%8==0);}
} i=2
i0 := 0 ^ i1 := 1 ^i2 := 2
i0%8 == 0 ^ i1%8 == 0 ^i2%8 == 0
C :=
assert(i%8 == 0)
i=0
assert(i%8 == 0)
i=1 assert(i%8 == 0) P :=
Currently, SMT solversdoesn’t support parallelism
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 34: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/34.jpg)
Open Multi-Processing
11
• OpenMP (API) is a set of directives for parallel programming
– Support for C/C++, and Fortran
– Support for different operating systems (Windows, Linux, Mac OSX, HP-
UX)
• Use the fork-join model
– Threads are managed by the API
– User customizes the execution
• Compiler directive based:
Introduction Objectives Background Partitioning Results Conclusions Future Work
master thread (main)
𝑇1 𝑇3𝑇2parallel region
(threads)
join/fork
fork
int k;#pragma omp parallel forfor (k = 0; k < 10; k++)
a[k] = 2*a[k] ;
𝑇1 𝑇2
join
parallel region(max threads = 2)
𝑇𝑛
![Page 35: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/35.jpg)
• The first algorithm in ANSI-C for ESBMC solves optimization problems
ESBMC for Optimization
12
These variables are declaredas matrices or vectors
This loop can generate many math equations.It is hard for the SMT solver
We have CPU’s available Why not parallelize?
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 36: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/36.jpg)
Multi-Core ESBMC approach
13
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 37: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/37.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
The problem is modeled to expect a TipH parameter
13
![Page 38: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/38.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 39: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/39.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 40: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/40.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 41: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/41.jpg)
Multi-Core ESBMC approach
12
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 42: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/42.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
problem specification in
ANSI-C file
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 43: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/43.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
minimal hardware value
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 44: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/44.jpg)
Multi-Core ESBMC approach
• Solution: use of OpenMP as front-end of ESBMC
• Use fork-join model provided
by OpenMP
• OpenMP API creates N
different instances:
– Instead of trying to solve the partitioning
problem just once, it creates N different
problems with different TipH values of
hardware cost
• If a violation occurs then the
optimal value was found. The
threads are finished
• /esbmc-parallel <𝑓𝑖𝑙𝑒𝑛𝑎𝑚𝑒. 𝑐> <ℎ𝑚𝑖𝑛_𝑣𝑎𝑙𝑢𝑒> <𝐻𝑚𝑎𝑥>
maximal hardware value
Introduction Objectives Background Partitioning Results Conclusions Future Work
13
![Page 45: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/45.jpg)
Experimental Evaluation
• Set up
– Desktop with 64-bit Ubuntu 14.04 LTS, 15GB of RAM and i7 Intel (8-
cores) processor with 3.40 GHz of clock
– ESBMC v1.24
– SMT solver: Boolector v. 2.0.1
– MathWorks MATLAB R2013a (GA and ILP)
– Time out (TO) = 7200 sec
– Memory out (MO) = 15GB
• Use 7 benchmarks (with different number of nodes)
• Compare with ESBMC, ESBMC Multi-Core, ILP, and GA
• Each time is the average of three measured times
– (92% of statistical confidence)
Introduction Objectives Background Partitioning Results Conclusions Future Work
14
![Page 46: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/46.jpg)
Experimental Evaluation
• Set up
– Desktop with 64-bit Ubuntu 14.04 LTS, 15GB of RAM and i7 Intel (8-
cores) processor with 3.40 GHz of clock
– ESBMC v1.24
– SMT solver: Boolector v. 2.0.1
– MathWorks MATLAB R2013a (GA and ILP)
– Time out (TO) = 7200 sec
– Memory out (MO) = 15GB
• Use 7 benchmarks (with different number of nodes)
• Compare with ESBMC, ESBMC Multi-Core, ILP, and GA
• Each time is the average of three measured times
– (92% of statistical confidence)
Introduction Objectives Background Partitioning Results Conclusions Future Work
14
![Page 47: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/47.jpg)
Experimental Evaluation
• Set up
– Desktop with 64-bit Ubuntu 14.04 LTS, 15GB of RAM and i7 Intel (8-
cores) processor with 3.40 GHz of clock
– ESBMC v1.24
– SMT solver: Boolector v. 2.0.1
– MathWorks MATLAB R2013a (GA and ILP)
– Time out (TO) = 7200 sec
– Memory out (MO) = 15GB
• Use 7 benchmarks (with different number of nodes)
• Compare with ESBMC, ESBMC Multi-Core, ILP, and GA
• Each time is the average of three measured times
– (92% of statistical confidence)
Introduction Objectives Background Partitioning Results Conclusions Future Work
14
![Page 48: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/48.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - - 15
![Page 49: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/49.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Bechmark
15
![Page 50: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/50.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Initial Software Cost
15
![Page 51: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/51.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Hardware Partitioned Cost
(solution)
15
![Page 52: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/52.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Software Partitioned Cost
(solution)
15
![Page 53: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/53.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
4 approaches
15
![Page 54: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/54.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Best Performance
15
![Page 55: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/55.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Solved all,but with errors
15
![Page 56: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/56.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Worst Performance
15
![Page 57: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/57.jpg)
Results
Introduction Objectives Background Partitioning Results Conclusions Future Work
CRC32 Patricia Dijkstra Clustering RC6 Fuzzy Mars
Nodes 25 21 26 150 329 261 417
Edges 32 48 69 331 448 422 600
S0 20 10 20 50 600 4578 300
ExactSolution
Hp 15 47 31 241 692 13820 876
Sp 19 4 19 46 533 4231 297
ILP Time(s) 2 1 2 649 1806 TO 5429
Hp 15 47 31 241 692 - 876
GA Time(s) 7 7 9 340 2050 1372 5000
Error 13% 0,0% 29,0% 2% -7% -38% -28%
ESBMC Time(s) 30 314 325 MO MO MO MO
Hp 15 47 31 - - - -
Multi-core
ESBMC
Time(s) 2 6 7 1609 TO TO TO
Hp 15 47 31 241 - - -
ESBMC Relative Speedup
14 54 47 - - -
Speedup overESBMC
15
![Page 58: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/58.jpg)
Conclusions
• 1st generation of co-design:
– Above 400 nodes: none
– Until 400 nodes: ILP
– Until 150 nodes: ESBMC
– GA (error issues)
• ILP e GA: easier to use but ESBMC: no cost (BSD license)
• MC-ESBMC has better performance than Sequential ESBMC (speedup from 14 until 54 and no memory out)
• 150 nodes is a realistic problem? All depends on the granularity of problem modeling
Future Work
• ESBMC: study the possibilities to decrease the time to solution
(solver included)
• Use of ESBMC to more complex types of architecture, including more
then one CPU (2nd generation of co-design)
Introduction Objectives Background Partitioning Results Conclusions Future Work
16
![Page 59: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/59.jpg)
Conclusions
• 1st generation of co-design:
– Above 400 nodes: none
– Until 400 nodes: ILP
– Until 150 nodes: ESBMC
– GA (error issues)
• ILP e GA: easier to use but ESBMC: no cost (BSD license)
• MC-ESBMC has better performance than Sequential ESBMC (speedup from 14 until 54 and no memory out)
• 150 nodes is a realistic problem? All depends on the granularity of problem modeling
Future Work
• ESBMC: study the possibilities to decrease the time to solution
(solver included)
• Use of ESBMC to more complex types of architecture, including more
then one CPU (2nd generation of co-design)
16
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 60: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/60.jpg)
Conclusions
• 1st generation of co-design:
– Above 400 nodes: none
– Until 400 nodes: ILP
– Until 150 nodes: ESBMC
– GA (error issues)
• ILP e GA: easier to use but ESBMC: no cost (BSD license)
• MC-ESBMC has better performance than Sequential ESBMC (speedup from 14 until 54 and no memory out)
• 150 nodes is a realistic problem? All depends on the granularity of problem modeling
Future Work
• ESBMC: study the possibilities to decrease the time to solution
(solver included)
• Use of ESBMC to more complex types of architecture, including more
then one CPU (2nd generation of co-design)
16
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 61: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/61.jpg)
Conclusions
• 1st generation of co-design:
– Above 400 nodes: none
– Until 400 nodes: ILP
– Until 150 nodes: ESBMC
– GA (error issues)
• ILP e GA: easier to use but ESBMC: no cost (BSD license)
• MC-ESBMC has better performance than Sequential ESBMC (speedup from 14 until 54 and no memory out)
• 150 nodes is a realistic problem? All depends on the granularity of problem modeling
Future Work
• ESBMC: study the possibilities to decrease the time to solution
(solver included)
• Use of ESBMC to more complex types of architecture, including more
then one CPU (2nd generation of co-design)
16
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 62: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/62.jpg)
Conclusions
• 1st generation of co-design:
– Above 400 nodes: none
– Until 400 nodes: ILP
– Until 150 nodes: ESBMC
– GA (error issues)
• ILP e GA: easier to use but ESBMC: no cost (BSD license)
• MC-ESBMC has better performance than Sequential ESBMC (speedup from 14 until 54 and no memory out)
• 150 nodes is a realistic problem? All depends on the granularity of problem modeling
Future Work
• ESBMC: study the possibilities to decrease the time to solution
(solver included)
• Use of ESBMC to more complex types of architecture, including more
then one CPU (2nd generation of co-design)
16
Introduction Objectives Background Partitioning Results Conclusions Future Work
![Page 63: Applying Multi-Core Model Checking to Hardware-Software … · 2020. 9. 11. · Foz do Iguaçu / PR, 5th November of 2015 Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Applying](https://reader034.vdocuments.mx/reader034/viewer/2022052010/601f6e110b75102b516eb6b1/html5/thumbnails/63.jpg)
17
Thank you for your attention!
Contacts:
Introduction Objectives Background Partitioning Results Conclusions Future Work