diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-02-14 11:52:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-14 11:52:32 +0100 |
| commit | 10c47102d6133b86e4c39df96fd25a91010a9864 (patch) | |
| tree | e422986118d2475add6677bc1e7bd8ed1913ceb9 /opendc-experiments | |
| parent | 616017ba78a0882fe38b9b171b2b0f68e593cd8d (diff) | |
Updated metrics and parquet output (#195)
* Updated metrics and parquet output
* fixed typos
Diffstat (limited to 'opendc-experiments')
5 files changed, 91 insertions, 42 deletions
diff --git a/opendc-experiments/opendc-experiments-capelin/src/test/kotlin/org/opendc/experiments/capelin/CapelinIntegrationTest.kt b/opendc-experiments/opendc-experiments-capelin/src/test/kotlin/org/opendc/experiments/capelin/CapelinIntegrationTest.kt index 238242c7..a0c7f07a 100644 --- a/opendc-experiments/opendc-experiments-capelin/src/test/kotlin/org/opendc/experiments/capelin/CapelinIntegrationTest.kt +++ b/opendc-experiments/opendc-experiments-capelin/src/test/kotlin/org/opendc/experiments/capelin/CapelinIntegrationTest.kt @@ -280,7 +280,7 @@ class CapelinIntegrationTest { activeTime += reader.cpuActiveTime stealTime += reader.cpuStealTime lostTime += reader.cpuLostTime - energyUsage += reader.powerTotal + energyUsage += reader.energyUsage uptime += reader.uptime } } diff --git a/opendc-experiments/opendc-experiments-greenifier/src/main/Python_scripts/OpenDCdemo.ipynb b/opendc-experiments/opendc-experiments-greenifier/src/main/Python_scripts/OpenDCdemo.ipynb index 61ae6322..ecef829e 100644 --- a/opendc-experiments/opendc-experiments-greenifier/src/main/Python_scripts/OpenDCdemo.ipynb +++ b/opendc-experiments/opendc-experiments-greenifier/src/main/Python_scripts/OpenDCdemo.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "id": "18170001", "metadata": {}, "outputs": [], @@ -13,7 +13,7 @@ "\n", "from IPython.display import display, HTML\n", "\n", - "base_folder = \"../../../../..\"" + "base_folder = \"../\"" ] }, { @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "id": "a2d05361", "metadata": {}, "outputs": [ @@ -165,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 5, "id": "fd17d88a", "metadata": {}, "outputs": [ @@ -251,7 +251,7 @@ "4 1019 2013-08-12 14:15:46+00:00 900000 1 0.000000" ] }, - "execution_count": 140, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -263,7 +263,7 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": 6, "id": "346f097f", "metadata": { "scrolled": true @@ -364,7 +364,7 @@ "4 2599.999649 179306 " ] }, - "execution_count": 141, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -392,7 +392,7 @@ }, { "cell_type": "code", - "execution_count": 144, + "execution_count": 10, "id": "0d400ffd", "metadata": {}, "outputs": [], @@ -401,14 +401,14 @@ "workload = \"workload=bitbrains-small\"\n", "seed = \"seed=0\"\n", "\n", - "df_host_single = pd.read_parquet(f\"{output_folder}/host/topology=single/{workload}/{seed}/data.parquet\")\n", - "df_host_multi = pd.read_parquet(f\"{output_folder}/host/topology=multi/{workload}/{seed}/data.parquet\")\n", + "df_host_single = pd.read_parquet(f\"{output_folder}/topology=single/{workload}/{seed}/host.parquet\")\n", + "df_host_multi = pd.read_parquet(f\"{output_folder}/topology=multi/{workload}/{seed}/host.parquet\")\n", "\n", - "df_server_single = pd.read_parquet(f\"{output_folder}/server/topology=single/{workload}/{seed}/data.parquet\")\n", - "df_server_multi = pd.read_parquet(f\"{output_folder}/server/topology=multi/{workload}/{seed}/data.parquet\")\n", + "df_server_single = pd.read_parquet(f\"{output_folder}/topology=single/{workload}/{seed}/server.parquet\")\n", + "df_server_multi = pd.read_parquet(f\"{output_folder}/topology=multi/{workload}/{seed}/server.parquet\")\n", "\n", - "df_service_single = pd.read_parquet(f\"{output_folder}/service/topology=single/{workload}/{seed}/data.parquet\")\n", - "df_service_multi = pd.read_parquet(f\"{output_folder}/service/topology=multi/{workload}/{seed}/data.parquet\")\n", + "df_service_single = pd.read_parquet(f\"{output_folder}/topology=single/{workload}/{seed}/service.parquet\")\n", + "df_service_multi = pd.read_parquet(f\"{output_folder}/topology=multi/{workload}/{seed}/service.parquet\")\n", "\n", "def add_absolute_timestamp(df, start_dt):\n", " df[\"absolute_timestamp\"] = start_dt + (df[\"timestamp\"] - df[\"timestamp\"].min())\n", @@ -425,76 +425,125 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": 11, "id": "a9a61332", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "25922" + "Index(['timestamp', 'host_id', 'cpu_count', 'mem_capacity',\n", + " 'guests_terminated', 'guests_running', 'guests_error', 'guests_invalid',\n", + " 'cpu_limit', 'cpu_usage', 'cpu_demand', 'cpu_utilization',\n", + " 'cpu_time_active', 'cpu_time_idle', 'cpu_time_steal', 'cpu_time_lost',\n", + " 'power_draw', 'energy_usage', 'uptime', 'downtime', 'boot_time',\n", + " 'absolute_timestamp'],\n", + " dtype='object')" ] }, - "execution_count": 145, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(df_service_single)" + "df_host_single.columns" ] }, { "cell_type": "code", - "execution_count": 146, + "execution_count": 12, "id": "d6fb41d9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1970-01-01 00:05:00+00:00 1\n", - "1970-03-01 23:55:00+00:00 1\n", - "1970-03-02 00:45:00+00:00 1\n", - "1970-03-02 00:40:00+00:00 1\n", - "1970-03-02 00:35:00+00:00 1\n", - " ..\n", - "1970-01-30 23:50:00+00:00 1\n", - "1970-01-30 23:45:00+00:00 1\n", - "1970-01-30 23:40:00+00:00 1\n", - "1970-01-30 23:35:00+00:00 1\n", - "1970-04-01 00:10:00+00:00 1\n", - "Name: timestamp, Length: 25922, dtype: int64" + "0 350.000000\n", + "1 350.000000\n", + "2 350.000000\n", + "3 291.779985\n", + "4 297.482719\n", + " ... \n", + "25918 267.445769\n", + "25919 276.532201\n", + "25920 263.564494\n", + "25921 273.482545\n", + "25922 200.000186\n", + "Name: power_draw, Length: 25923, dtype: float64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_host_single.power_draw" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3c271734", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 105000.000000\n", + "1 105000.000000\n", + "2 105000.000000\n", + "3 87533.995628\n", + "4 89244.815826\n", + " ... \n", + "25918 79980.733894\n", + "25919 80669.879478\n", + "25920 82337.210297\n", + "25921 79545.414650\n", + "25922 68917.601292\n", + "Name: energy_usage, Length: 25923, dtype: float64" ] }, - "execution_count": 146, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_host_single.timestamp.value_counts()" + "df_host_single.energy_usage" ] }, { "cell_type": "code", - "execution_count": 149, + "execution_count": 14, "id": "89977c44", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([50, 49, 48, 47, 46, 45, 44, 35, 34, 16, 15, 14, 13, 12, 11, 10])" + "0 1970-01-01 00:05:00+00:00\n", + "1 1970-01-01 00:10:00+00:00\n", + "2 1970-01-01 00:15:00+00:00\n", + "3 1970-01-01 00:20:00+00:00\n", + "4 1970-01-01 00:25:00+00:00\n", + " ... \n", + "25918 1970-03-31 23:55:00+00:00\n", + "25919 1970-04-01 00:00:00+00:00\n", + "25920 1970-04-01 00:05:00+00:00\n", + "25921 1970-04-01 00:10:00+00:00\n", + "25922 1970-04-01 00:14:12+00:00\n", + "Name: timestamp, Length: 25923, dtype: datetime64[ns, UTC]" ] }, - "execution_count": 149, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_server_single.timestamp.value_counts().unique()" + "df_host_single.timestamp" ] }, { diff --git a/opendc-experiments/opendc-experiments-greenifier/src/test/kotlin/org/opendc/experiments/greenifier/GreenifierIntegrationTest.kt b/opendc-experiments/opendc-experiments-greenifier/src/test/kotlin/org/opendc/experiments/greenifier/GreenifierIntegrationTest.kt index 49a28005..54b35b23 100644 --- a/opendc-experiments/opendc-experiments-greenifier/src/test/kotlin/org/opendc/experiments/greenifier/GreenifierIntegrationTest.kt +++ b/opendc-experiments/opendc-experiments-greenifier/src/test/kotlin/org/opendc/experiments/greenifier/GreenifierIntegrationTest.kt @@ -280,7 +280,7 @@ class GreenifierIntegrationTest { activeTime += reader.cpuActiveTime stealTime += reader.cpuStealTime lostTime += reader.cpuLostTime - energyUsage += reader.powerTotal + energyUsage += reader.energyUsage uptime += reader.uptime } } diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt index 23d5001b..a1fc3fba 100644 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt +++ b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt @@ -168,7 +168,7 @@ public class SimTFDevice( } override fun getDeviceStats(): TFDeviceStats { - return TFDeviceStats(machine.cpuUsage, machine.psu.powerUsage, machine.psu.energyUsage) + return TFDeviceStats(machine.cpuUsage, machine.psu.powerDraw, machine.psu.energyUsage) } override fun close() { diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt index 016d2a8b..3fea44da 100644 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt +++ b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt @@ -26,11 +26,11 @@ package org.opendc.experiments.tf20.core * Statistics about a TensorFlow [TFDevice]. * * @property resourceUsage The resource usage of the device (in MHz). - * @property powerUsage The instantaneous power draw of the device (in W). + * @property powerDraw The instantaneous power draw of the device (in W). * @property energyUsage Cumulative energy usage of the device since boot (in J). */ data class TFDeviceStats( val resourceUsage: Double, - val powerUsage: Double, + val powerDraw: Double, val energyUsage: Double ) |
