diff options
| author | Leon Overweel <l.overweel@gmail.com> | 2017-02-27 17:06:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-27 17:06:11 +0100 |
| commit | cb9ebe606fe2cbb3bf97f4025b045ac5d9697ee6 (patch) | |
| tree | e44ede27a4eb37f1d20ce11b80627e3feb586a36 | |
| parent | efb1a88fbf7c7993af0aff4b6eeac22232f72bcc (diff) | |
| parent | 7aafbf2c28d9a03d90ca0ccc200cca61b2a80330 (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.sql | 8 | ||||
| -rw-r--r-- | database/test.sql | 124 | ||||
| m--------- | opendc-simulator | 10 | ||||
| m--------- | opendc-web-server | 13 |
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 |
