lecture5

advertisement
Real-Time Systems,
COSC-4301-01,
Lecture 5
Stefan Andrei
4/13/2015
COSC-4301-01, Lecture 5
1
Reminder of the last lecture



Multiprocessor Scheduling
Available scheduling tools
Available real-time operating systems
4/13/2015
COSC-4301-01, Lecture 5
2
Overview of This Lecture

A Satisfiability Approach for the Scheduling
Problem
4/13/2015
COSC-4301-01, Lecture 5
3
Introduction




Most of the existing scheduling problems are
NP-hard.
Researchers have been putting many efforts in
finding good heuristics for solving scheduling
problem in polynomial time.
However, there still exist classes of task sets
that are feasible and most traditional
schedulers (e.g. RM, EDF, LL) fail to solve the
scheduling problem.
Existing SAT encodings could not be adopted
for the given scheduling problem.
4/13/2015
COSC-4301-01, Lecture 5
4
The main idea




We present a new satisfiability (SAT) based
approach to the scheduling problem.
We transform time constraints into a
satisfiability problem.
The obtained clauses are converted to the
DIMACS format and passed as input to a SAT
solver, such as Zchaff.
We conclude that our satisfiability-based
approach is a promising technique for
scheduling.
4/13/2015
COSC-4301-01, Lecture 5
5
Related work

At first glance it seems to be an obvious
translation of scheduling problems into SAT:



4/13/2015
Create variables to represent the start times of the
operations and create clauses to represent the
necessary inequalities.
However the search space in SAT problems so
generated turns out to be much larger than necessary.
Previous SAT encodings approaches like those
expressed in [Memik, Fallah; 2002] and [Crawford,
Baker; 1994] could not be applied either because they
do not consider the exact time relations [Crawford,
Baker; 1994] or they are too large [Memik, Fallah;
2002].
COSC-4301-01, Lecture 5
6
References


[Memik, Fallah; 2002] S.O.Memik, F.Fallah: “Accelerated
SAT-based scheduling of control/data flow graphs”,
Computer Design: VLSI in Computers and processors,
2002. Proceedings, 2002
[Crawford, Baker; 1994] J.M.Crawford, A.B.Baker:
Experimental Results on the Application of Satisfiability
Algorithms to Scheduling Problems, The 12th National
Conference on Artificial Intelligence, 1994.
4/13/2015
COSC-4301-01, Lecture 5
7
Scheduling

A task T is characterized by the following
parameters:





4/13/2015
S: start (also called release, ready, or arrival)
time.
c: (maximum) computation time.
d: relative deadline (deadline relative to the task's
start time)
p: period (how often the tasks are supposed to be
executed)
D: absolute deadline (wall clock time deadline)
e.g., D = S + d.
COSC-4301-01, Lecture 5
8
The propositional satisfiability problem

The SAT problem:
“Given a set of clauses C (disjunction of literals –
also known as CNF: Conjunctive Normal Form) on a
finite set U of variables, find a truth assignment for U
that satisfies all the clauses in C”.


The SAT problem is solved by the SAT
solvers.
Example: Given U = {A, B, C} the set of
variables and F = (A  B  C)  (A 
B  C)  (A  B  C) a propositional
formula, then a truth assignment for F is A =
false, B = false, C = false.
4/13/2015
COSC-4301-01, Lecture 5
9
Encoding Scheduling problems as SAT
problems


For each operation i executing between time t and
t+1 there exists a boolean variable ei,t.
We have considered this encoding for solving
many types of problems which are elaborated as
follows, such as:



Scheduling unit computation tasks in uniprocessor
environment
Scheduling preemptive non-unit tasks for uniprocessor
environment
Scheduling non-preemptive tasks in uniprocessor
environment
4/13/2015
COSC-4301-01, Lecture 5
10
Scheduling unit computation tasks in
uniprocessor environment






Consider T={T1, .., Tn} a task set with Ti = (Si, ci, di, pi).
For simplicity, we assume pi=di.
If task Ti can execute one time unit between times t,
t+1, …, t+ci, then the corresponding SAT clause is ei,t V
ei,t+1 V... V ei,t+ci-2 V ei,t+ci-1.
Given tasks Ti and Tj for time between t and t+1, only
either Ti or Tj is executing between t and t+1.
Hence, there exists a clause ei,t V ej,t (this is
equivalent to: ei,t  ej,t and ej,t  ei,t).
The SAT encoding has to be done from 0 to LCM(p1,
p2, …, pn).
4/13/2015
COSC-4301-01, Lecture 5
11
Scheduling unit computation tasks in
uniprocessor environment. Example



T1: s1 = 0, c1 = 1, d1 = p1 = 2
T2: s2 = 0, c2 = 1, d2 = p2 = 3
The SAT encoding has to be done by
LCM(d1, d2), that is, 6:
 e1,0 V e2,0





4/13/2015
e1,0 V e1,1
e1,2 V e1,3
e1,4 V e1,5
e2,0 V e2,1 V e2,2
e2,3 V e2,4 V e2,5





COSC-4301-01, Lecture 5
e1,1 V e2,1
e1,2 V e2,2
e1,3 V e2,3
e1,4 V e2,4
e1,5 V e2,5
12
Scheduling preemptive non-unit tasks
for uniprocessor environment
Solution:





4/13/2015
Divide each non unit-time task into tasks with unit
computation time, then apply the previous SAT
encoding.
The starting time and deadline for the subsequent
tasks are incremented.
Precedence constraints are introduces between the
sub-tasks created.
Consider sub-task j with less precedence than subtask i then at any time t, sub-task i will not occur after
sub-task j is executing, that is, ej,t Vei,z where z > t.
COSC-4301-01, Lecture 5
13
Scheduling preemptive non-unit tasks
for uniprocessor environment. Example



T1: s1 = 0, c1 = 2, d1 = p1 = 4
T2: s2 = 0, c2 = 2, d2 = p2 = 4
The task set is converted to unit computation
time:





4/13/2015
T1=T1,1: s1,1 = 0, c1,1 = 1, d1,1 = 3, p1,1 = 4
T2=T1,2: s1,2 = 1, c1,2 = 1, d1,2 = 4, p1,2 = 4
T3=T2,1: s2,1 = 0, c2,1 = 1, d2,1 = 3, p2,1 = 4
T4=T2,2: s2,2 = 1, c2,2 = 1, d2,2 = 4, p2,2 = 4
The precedence constraints: T1  T2, T3  T4
COSC-4301-01, Lecture 5
14
Scheduling preemptive non-unit tasks
for uniprocessor environment. Example







e1,0 V e1,1 V e1,2
e2,1 V e2,2 V e2,3
e3,0 V e3,1 V e3,2
e4,1 V e4,2 V e4,3
e1,0 V e3,0
e1,1 V e2,1
e1,1 V e3,1








4/13/2015
e1,1 V e4,1
e1,2 V e2,2
e1,2 V e3,2
e1,2 V e4,2
d1 = 3  e1,3
s2 = 1  e2,0
d3 = 3  e3,3
s4 = 1  e4,0
COSC-4301-01, Lecture 5
15
 The precedence constraints:


4/13/2015
e2,1 V  e1,2
e4,1 V e3,2
COSC-4301-01, Lecture 5
16
Scheduling non-preemptive tasks in
uniprocessor environment




A non-preemptable task is the one that once started
cannot be stopped by any other process or task.
In practice tasks may contain critical sections that
cannot be interrupted.
These critical sections are needed to access and
modify shared variables or use shared resources.
The non-preemptable condition can be obtained by
grouping together executing constraints from starting
time to deadline with size equal to that of
computation time.
4/13/2015
COSC-4301-01, Lecture 5
17
Scheduling with non-preemption for
uniprocessor environment - cont


So, a non-preemptable task i is allowed to
execute for a computation time c starting at
time t until deadline d.
Since a non-preemptive task T=(s, c, d, p)
cannot not be interrupted, the conversion to
the SAT problem should contain all possible
solutions for task T to be scheduled in the
intervals [s, c], [s + 1,c + 1], ..., [d - c, d].
4/13/2015
COSC-4301-01, Lecture 5
18
Example with two non-preemptive tasks



T1: s1 = 0, c1 = 2, d1 = 4
T2: s2 = 0, c2 = 2, d2 = 4
The SAT encoding is:






4/13/2015
T1: (e1,0 Λ e1,1 Λ e1,2 Λ e1,3) V
(e1,0 Λ e1,1 Λ e1,2 Λ e1,3) V
(e1,0 Λ e1,1 Λ e1,2 Λ e1,3)
T2: (e2,0 Λ e2,1 Λ e2,2 Λ e2,3) V
(e1,0 Λ e2,1 Λ e1,2 Λ e2,3) V
(e1,0 Λ e1,1 Λ e1,2 Λ e1,3)
COSC-4301-01, Lecture 5
19
Example with two non-preemptive tasks

The following are the clauses corresponding
to the fact that the processor is busy with at
most one task at a given time:





e1,0 V e2,0
e1,1 V e2,1
e1,2 V e2,2
e1,3 V e2,3
Problem: the sub-formula from previous slide
is not expressed in CNF, but in DNF
(Disjunctive Normal Form).
4/13/2015
COSC-4301-01, Lecture 5
20
DNF to CNF conversion



Some the above clauses are in Disjunctive
Normal Form (DNF).
They have to be converted into Conjunctive
Normal Form (CNF).
Once the whole formula is expressed in CNF,
it has to be converted into DIMACS format as
an input for SAT solvers.
4/13/2015
COSC-4301-01, Lecture 5
21
DNF to CNF conversion. Example


New variables are introduced for each clause.
Example: F = (A1  A2  A3  A4)  (A5  A6
 A7  A8) is converted to the following CNF
formula (X1 and X2 are new propositional
variables):



4/13/2015
(X1  A1)  (X1  A2)  (X1  A3)  (X1 
A4)  (A1  A2  A3  A4  X1)
(X2  A5)  (X2  A6)  (X2  A7)  (X2 
A8)  (A5  A6  A7  A8  X2)
X1  X2
COSC-4301-01, Lecture 5
22
Complexity of this translation

The traditional approach for converting a
general DNF formula needs an exponential
space and time complexity:


(A1,1  A1,2  …  A1,n1)  …  (Ak,1  Ak,2 
…  Ak,nk) leads to a propositional formula with n1
* … * nk CNF clauses.
The approach from previous slide needs only
n1 + … + nk + k + 1 CNF clauses and k new
propositional clauses.
4/13/2015
COSC-4301-01, Lecture 5
23
DNF to CNF conversion. Example

Coming back to the example from slide 18:




T1: (e1,0 Λ e1,1 Λ e1,2 Λ e1,3) V
(e1,0 Λ e1,1 Λ e1,2 Λ e1,3) V
(e1,0 Λ e1,1 Λ e1,2 Λ e1,3)
we get the following CNF formula:




4/13/2015
(X1  e1,0)  (X1  e1,1)  (X1  e1,2)  (X1
 e1,3)  (e1,0  e1,1  e1,2  e1,3  X1)
(X1  e1,0)  (X1  e1,1)  (X1  e1,2)  (X1
 e1,3)  (e1,0  e1,1  e1,2  e1,3  X1)
(X1  e1,0)  (X1  e1,1)  (X1  e1,2)  (X1
 e1,3)  (e1,0  e1,1  e1,2  e1,3  X1)
X1  X2  X3
COSC-4301-01, Lecture 5
24
Some state-of-the-art SAT solvers




Siege - http://www.cs.sfu.ca/research/groups/CL/software/siege/
zChaff - http://www.princeton.edu/~chaff/software.html
Cachet - http://www.cs.rochester.edu/u/kautz/Cachet/index.htm
SharpSAT - http://www2.informatik.huberlin.de/~thurley/sharpSAT/index.html

Others: http://www.satlive.org/bytype.jsp?reftypefrom=-2

If the answer provided by this SAT solver or #SAT
solver is ‘Unsatisfiable’, then the corresponding
propositional formula is unsatisfiable.
4/13/2015
COSC-4301-01, Lecture 5
25
The zChaff SAT Solver






It is a state-of-the-art SAT solver designed for
robustness and efficiency.
It features a highly optimized deduction engine.
zChaff is designed with performance and capacity in
mind.
zChaff has been tested on Solaris/Linux/Cygwin
machines with g++ as the compiler.
It can also be compiled with Visual Studio Net under
Windows.
zChaff can be compiled into a linkable library for
integration purpose so that the users do not need to
export instance into intermediate files to use zChaff.
4/13/2015
COSC-4301-01, Lecture 5
26
DIMACS CNF Format






In the format the number of variables and the number of
clauses is defined by the line
“p cnf VARIABLES CLAUSES”.
The variables are assumed to be numbered from 1 up
to VARIABLES.
It is not necessary that every variable appears in an
instance.
Each clause will be represented by a sequence of
integers, which are separated by a space, a tab, or a
new line character.
The non-negated version of the variable i is represented
by i; the negated version is represented by -i.
Each clause is terminated by a value 0.
4/13/2015
COSC-4301-01, Lecture 5
27
Example

The boolean formula F = (v1 V v3) Λ (v1 V
v2 V v3) has the following DIMACS format:
p cnf 3 2
1 -3 0
2 3 -1 0
4/13/2015
COSC-4301-01, Lecture 5
28
Tool Description





The input of our tool is the number of tasks which are
to be scheduled.
For each of the tasks it asks for its starting time,
computation time and deadline.
It develops various clauses using the SAT encoding
described in above part.
Based on the encoding it passes the DIMACS CNF
format file to zChaff SAT Solver which gives whether
it is either SAT solvable or not.
The output of zChaff also gives the variables which
are true, using this variables we can schedule the
tasks.
4/13/2015
COSC-4301-01, Lecture 5
29
Running the Code





Compile the zChaff code obtained from the
Internet using the make command in C++
compiler and keep it inside a folder zchaff.
Inside the zchaff folder create a folder called
Translate.
Add all the Java source code in this folder.
Compile the java source code using javac
*.java in J2SE.
Then run the Main class file from zchaff folder
using java Translate/Main
4/13/2015
COSC-4301-01, Lecture 5
30
Experimental Results
4/13/2015
COSC-4301-01, Lecture 5
31
The experimental results - comments



The number of tasks in the original column are
converted into unit computation time tasks and
thus increasing the number of tasks in the for
preemption column.
The increase in the number of tasks increases
the size of SAT and thus affects the performance
of the SAT solver.
It can be seen from the above results that the
performance is faster if there are fewer tasks.
4/13/2015
COSC-4301-01, Lecture 5
32
Conclusion





We have explored the potential of satisfiability to be used
as a tool for modeling and solving scheduling problems.
We have also researched on the earlier work and proven
that we need to consider computation time so as to make
it suitable for real time systems.
We have presented experimental results on the
performance of SAT solver zChaff.
The performance of the SAT decreases as the number of
tasks increases.
We have demonstrated that a SAT solver presents a
competitive alternative as a tool to find optimal solutions
to the NP-complete time constrained scheduling
problem.
4/13/2015
COSC-4301-01, Lecture 5
33
Future work




We would like to consider the other categories of
tasks set constraints.
Also adding resourses constraints would make the
system more suitable for real time systems.
Minimize the number of preemptions (selects the
solution provided by the SAT solver that has the
minimum number of preemptions).
Assuming there are new tasks added to the initial
specification, design an incremental conversion to
SAT without repeating the time spend for the initial
tasks set).
4/13/2015
COSC-4301-01, Lecture 5
34
Summary

A Satisfiability Approach for the Scheduling
Problem
4/13/2015
COSC-4301-01, Lecture 5
35
Reading suggestions

Research papers

4/13/2015
Ştefan Andrei: Schedulability Analysis
COSC-4301-01, Lecture 5
36
Coming up next

An Efficient Power-Aware Scheduling
Algorithm for the Multiprocessor Platform
4/13/2015
COSC-4301-01, Lecture 5
37
Thank you for your attention!
Questions?
4/13/2015
COSC-4301-01, Lecture 5
38
Download