From df1028c71cb6d50db886c8076c7139ec24feb6d7 Mon Sep 17 00:00:00 2001 From: Dante Niewenhuis Date: Mon, 3 Feb 2025 13:11:48 +0100 Subject: Added Batteries (#300) * Batteries are implemented. Small problem with the deletion when running larger workloads. Added mock files for the Battery implementation. Updated the Carbon Model to allow for multiple receivers of CarbonIntensity * Implemented batteries in OpenDC. * Spotless applied --- .../carbonTraces/2022-01-01_single_100.parquet | Bin 0 -> 1799 bytes .../carbonTraces/2022-01-01_two_80_120.parquet | Bin 0 -> 1815 bytes .../topologies/batteries/experiment1.json | 39 +++++++++++++++++++++ .../topologies/batteries/experiment2.json | 39 +++++++++++++++++++++ .../topologies/batteries/experiment3.json | 39 +++++++++++++++++++++ .../topologies/batteries/experiment4.json | 31 ++++++++++++++++ 6 files changed, 148 insertions(+) create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_single_100.parquet create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment1.json create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment2.json create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment3.json create mode 100644 opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment4.json (limited to 'opendc-experiments/opendc-experiments-base/src/test/resources') diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_single_100.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_single_100.parquet new file mode 100644 index 00000000..195a340b Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_single_100.parquet differ diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet new file mode 100644 index 00000000..a7b2b63f Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet differ diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment1.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment1.json new file mode 100644 index 00000000..10ceaf87 --- /dev/null +++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment1.json @@ -0,0 +1,39 @@ +{ + "clusters": + [ + { + "name": "C01", + "hosts" : + [ + { + "name": "H01", + "cpu": + { + "coreCount": 1, + "coreSpeed": 2000 + }, + "memory": { + "memorySize": 140457600000 + }, + "powerModel": { + "modelType": "linear", + "power": 400.0, + "idlePower": 100.0, + "maxPower": 200.0 + } + } + ], + "powerSource": { + "carbonTracePath": "src/test/resources/carbonTraces/2022-01-01_single_100.parquet" + }, + "battery": { + "capacity": 0.1, + "chargingSpeed": 1000, + "batteryPolicy": + { + "carbonThreshold": 90 + } + } + } + ] +} diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment2.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment2.json new file mode 100644 index 00000000..f89e9fa4 --- /dev/null +++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment2.json @@ -0,0 +1,39 @@ +{ + "clusters": + [ + { + "name": "C01", + "hosts" : + [ + { + "name": "H01", + "cpu": + { + "coreCount": 1, + "coreSpeed": 2000 + }, + "memory": { + "memorySize": 140457600000 + }, + "powerModel": { + "modelType": "linear", + "power": 400.0, + "idlePower": 100.0, + "maxPower": 200.0 + } + } + ], + "powerSource": { + "carbonTracePath": "src/test/resources/carbonTraces/2022-01-01_single_100.parquet" + }, + "battery": { + "capacity": 0.1, + "chargingSpeed": 1000, + "batteryPolicy": + { + "carbonThreshold": 120 + } + } + } + ] +} diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment3.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment3.json new file mode 100644 index 00000000..920e09df --- /dev/null +++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment3.json @@ -0,0 +1,39 @@ +{ + "clusters": + [ + { + "name": "C01", + "hosts" : + [ + { + "name": "H01", + "cpu": + { + "coreCount": 1, + "coreSpeed": 2000 + }, + "memory": { + "memorySize": 140457600000 + }, + "powerModel": { + "modelType": "linear", + "power": 400.0, + "idlePower": 100.0, + "maxPower": 200.0 + } + } + ], + "powerSource": { + "carbonTracePath": "src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet" + }, + "battery": { + "capacity": 0.02, + "chargingSpeed": 1000, + "batteryPolicy": + { + "carbonThreshold": 100 + } + } + } + ] +} diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment4.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment4.json new file mode 100644 index 00000000..cb0ef4e5 --- /dev/null +++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/batteries/experiment4.json @@ -0,0 +1,31 @@ +{ + "clusters": + [ + { + "name": "C01", + "hosts" : + [ + { + "name": "H01", + "cpu": + { + "coreCount": 1, + "coreSpeed": 2000 + }, + "memory": { + "memorySize": 140457600000 + }, + "powerModel": { + "modelType": "linear", + "power": 400.0, + "idlePower": 100.0, + "maxPower": 200.0 + } + } + ], + "powerSource": { + "carbonTracePath": "src/test/resources/carbonTraces/2022-01-01_two_80_120.parquet" + } + } + ] +} -- cgit v1.2.3