summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Overweel <l.overweel@gmail.com>2017-02-27 17:06:11 +0100
committerGitHub <noreply@github.com>2017-02-27 17:06:11 +0100
commitcb9ebe606fe2cbb3bf97f4025b045ac5d9697ee6 (patch)
treee44ede27a4eb37f1d20ce11b80627e3feb586a36
parentefb1a88fbf7c7993af0aff4b6eeac22232f72bcc (diff)
parent7aafbf2c28d9a03d90ca0ccc200cca61b2a80330 (diff)
Merge pull request #6 from tudelft-atlarge/workload-core-occupation
[WIP] Task parallelizability, Task State core occupation, and Robotics Course workloads
-rw-r--r--database/schema.sql8
-rw-r--r--database/test.sql124
m---------opendc-simulator10
m---------opendc-web-server13
4 files changed, 131 insertions, 24 deletions
diff --git a/database/schema.sql b/database/schema.sql
index 7c17e48f..bb066328 100644
--- a/database/schema.sql
+++ b/database/schema.sql
@@ -117,6 +117,8 @@ CREATE TABLE IF NOT EXISTS schedulers (
name TEXT PRIMARY KEY NOT NULL
);
INSERT INTO schedulers (name) VALUES ("DEFAULT");
+INSERT INTO schedulers (name) VALUES ("SRTF");
+INSERT INTO schedulers (name) VALUES ("FIFO");
/*
* Each simulation has a single trace. A trace contains tasks and their start times.
@@ -135,6 +137,7 @@ CREATE TABLE IF NOT EXISTS tasks (
total_flop_count INTEGER NOT NULL,
trace_id INTEGER NOT NULL,
task_dependency_id INTEGER NULL,
+ parallelizability TEXT NOT NULL,
FOREIGN KEY (trace_id) REFERENCES traces (id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (task_dependency_id) REFERENCES tasks (id) ON DELETE CASCADE ON UPDATE CASCADE
@@ -150,8 +153,9 @@ CREATE TABLE IF NOT EXISTS task_states (
id INTEGER PRIMARY KEY NOT NULL,
task_id INTEGER NOT NULL,
experiment_id INTEGER NOT NULL,
- tick INTEGER NOT NULL,
- flops_left INTEGER NOT NULL,
+ tick INTEGER NOT NULL CHECK (tick >= 0),
+ flops_left INTEGER NOT NULL CHECK (flops_left >= 0),
+ cores_used INTEGER NOT NULL CHECK (cores_used >= 0),
FOREIGN KEY (task_id) REFERENCES tasks (id),
FOREIGN KEY (experiment_id) REFERENCES experiments (id)
diff --git a/database/test.sql b/database/test.sql
index 69304767..37d7e79f 100644
--- a/database/test.sql
+++ b/database/test.sql
@@ -35,21 +35,127 @@ INSERT INTO sections (path_id, datacenter_id, start_tick) VALUES (1, 3, 100);
INSERT INTO sections (path_id, datacenter_id, start_tick) VALUES (2, 3, 0);
--- Trace
-INSERT INTO traces (name) VALUES ('test trace');
+-- Default Test Trace
+INSERT INTO traces (name) VALUES ('Default');
-- Tasks
-INSERT INTO tasks (id, start_tick, total_flop_count, trace_id) VALUES (1, 0, 40000000, 1);
-INSERT INTO tasks (start_tick, total_flop_count, trace_id) VALUES (25, 10000, 1);
-INSERT INTO tasks (start_tick, total_flop_count, trace_id) VALUES (25, 10000, 1);
-INSERT INTO tasks (start_tick, total_flop_count, trace_id) VALUES (26, 10000, 1);
-INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id) VALUES (80, 200000, 1, 1);
+INSERT INTO tasks (id, start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 0, 400000, 1, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (25, 10000, 1, 'PARALLEL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (25, 10000, 1, 'PARALLEL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (26, 10000, 1, 'PARALLEL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (80, 200000, 1, 1, 'PARALLEL');
+
+-- Image Processing Trace
+INSERT INTO traces (name) VALUES ('Image Processing');
+
+-- Tasks
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (10, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (20, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (1, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (11, 100000, 2, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (21, 100000, 2, 'SEQUENTIAL');
+
+-- Path Planning Trace
+INSERT INTO traces (name) VALUES ('Path planning');
+
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 1000000, 2, 'PARALLEL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (11, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (12, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (13, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (14, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (11, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (12, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (13, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (14, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (11, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (12, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (13, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (14, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (11, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (12, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (13, 200000, 1, 66, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, task_dependency_id, parallelizability) VALUES (14, 200000, 1, 66, 'SEQUENTIAL');
+
+-- Parallelizable Trace
+INSERT INTO traces (name) VALUES ('Parallel heavy trace');
+
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 3, 'SEQUENTIAL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 900000, 3, 'PARALLEL');
+
+-- Sequential Trace
+INSERT INTO traces (name) VALUES ('Sequential heavy trace');
+
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 100000, 4, 'PARALLEL');
+INSERT INTO tasks (start_tick, total_flop_count, trace_id, parallelizability) VALUES (0, 900000, 4, 'SEQUENTIAL');
-- Experiments
INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
- VALUES (1, 1, 1, 'DEFAULT', 'Experiment 1', 'QUEUED', 0);
+ VALUES (1, 1, 1, 'SRTF', 'Default trace, SRTF', 'QUEUED', 0);
+INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
+ VALUES (1, 1, 2, 'SRTF', 'Image processing trace, SRTF', 'QUEUED', 0);
+INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
+ VALUES (1, 1, 3, 'SRTF', 'Path planning trace, FIFI', 'QUEUED', 0);
+INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
+ VALUES (1, 1, 1, 'FIFO', 'Default trace, SRTF', 'QUEUED', 0);
+INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
+ VALUES (1, 1, 2, 'FIFO', 'Image processing trace, SRTF', 'QUEUED', 0);
INSERT INTO experiments (simulation_id, path_id, trace_id, scheduler_name, name, state, last_simulated_tick)
- VALUES (1, 2, 1, 'DEFAULT', 'Experiment 2', 'QUEUED', 0);
+ VALUES (1, 1, 3, 'FIFO', 'Path planning trace, FIFO', 'QUEUED', 0);
-- Rooms
INSERT INTO rooms (name, datacenter_id, type) VALUES ('room 1', 1, 'SERVER');
diff --git a/opendc-simulator b/opendc-simulator
-Subproject 0709a81231b695caecb2269fe23d8dadeb76489
+Subproject f563b9c9a05b3e47070bfa4775a0e18ace8797a
diff --git a/opendc-web-server b/opendc-web-server
-Subproject 855b654942d400204ea3ce952b5fe0cebf8492c
+Subproject ace25f0382c20b0e79afa85227dc155b5498a1d