summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README57
-rw-r--r--build.gradle.kts3
-rw-r--r--opendc-common/build.gradle.kts4
-rw-r--r--opendc-common/src/main/kotlin/org/opendc/common/utils/ConfigParser.kt (renamed from opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ConfigParser.kt)18
-rw-r--r--opendc-common/src/main/kotlin/org/opendc/common/utils/PostgresqlDB.kt56
-rw-r--r--opendc-demo/build.gradle.kts36
-rw-r--r--opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt42
-rw-r--r--opendc-demo/src/main/kotlin/org/opendc/demo/RunRequest.kt29
-rw-r--r--opendc-experiments/opendc-experiments-base/build.gradle.kts3
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt10
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt16
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/RequestRunner.kt12
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt25
-rw-r--r--output/greenifier-demo-scaling/raw-output/0/seed=0/host.parquetbin1950052 -> 1948702 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/0/seed=0/powerSource.parquetbin11532 -> 11532 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/0/seed=0/service.parquetbin4741 -> 4742 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/0/seed=0/task.parquetbin1521429 -> 1520544 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/1/seed=0/host.parquetbin1642451 -> 1641893 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/1/seed=0/powerSource.parquetbin11581 -> 11581 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/1/seed=0/service.parquetbin4813 -> 4814 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/1/seed=0/task.parquetbin1505839 -> 1504851 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/2/seed=0/host.parquetbin1336544 -> 1336476 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/2/seed=0/powerSource.parquetbin14023 -> 14026 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/2/seed=0/service.parquetbin6919 -> 6919 bytes
-rw-r--r--output/greenifier-demo-scaling/raw-output/2/seed=0/task.parquetbin11550061 -> 11540302 bytes
-rw-r--r--resources/experiments/config.json4
-rw-r--r--settings.gradle.kts5
27 files changed, 222 insertions, 98 deletions
diff --git a/README b/README
index 8645f74e..d3aedcc4 100644
--- a/README
+++ b/README
@@ -1,44 +1,29 @@
-<a href="https://opendc.org/">
- <img src="https://opendc.org/img/logo.png" alt="OpenDC logo" title="OpenDC" align="right" height="100" />
-</a>
+#Dependencies
-# OpenDC
+Kafka:
-Collaborative Datacenter Simulation and Exploration for Everybody
+extra/kafka 4.1.1-1
-[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](/LICENSE.txt)
-[![Documentation](https://img.shields.io/badge/docs-master-green.svg)](https://atlarge-research.github.io/opendc)
-[![GitHub release](https://img.shields.io/github/v/release/atlarge-research/opendc?include_prereleases)](https://github.com/atlarge-research/opendc/releases)
-[![Build](https://github.com/atlarge-research/opendc/actions/workflows/build.yml/badge.svg)](https://github.com/atlarge-research/opendc/actions/workflows/build.yml)
+```bash
+sudo -u kafka /usr/bin/kafka-storage.sh format -t "$(/usr/bin/kafka-storage.sh random-uuid)" -c /etc/kafka/server.properties --standalone
+systemctl enable kafka
+systemctl start kafka
+```
------
+```bash
+bin/kafka-topics.sh --create --topic postgres-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
+bin/kafka-topics.sh --list --bootstrap-server localhost:9092
+```
-This repository is the home of the OpenDC project, a free and open-source platform for cloud datacenter simulation.
-## Latest Release
+Postgresql:
-All releases of OpenDC can be found [here](https://github.com/atlarge-research/opendc/releases).
-The latest release will be marked _latest_.
+extra/postgresql 18.1-2
-## Documentation
-
-You can find the OpenDC documentation [on the website](https://atlarge-research.github.io/opendc/).
-The documentation is divided into several sections:
-
-* [Getting Started](https://atlarge-research.github.io/opendc/docs/category/getting-started/)
-* [Tutorials](https://atlarge-research.github.io/opendc/docs/category/tutorials/)
-* [Advanced Guides](https://atlarge-research.github.io/opendc/docs/category/advanced-guides/)
-* [Where to Get Support](https://atlarge-research.github.io/opendc/community/support/)
-* [Contributing Guide](https://atlarge-research.github.io/opendc/community/contributing/)
-
-The source code for the documentation is located in the [gh-pages branch](https://github.com/atlarge-research/opendc/tree/gh-pages).
-Push to that branch to update the documentation.
-
-## Contributing
-
-Questions, suggestions and contributions are welcome and appreciated!
-Please refer to the [contributing guidelines](CONTRIBUTING.md) for more details.
-
-## License
-
-OpenDC is distributed under the MIT license. See [LICENSE.txt](/LICENSE.txt).
+```bash
+initdb -D /var/lib/postgres/data
+mkdir /run/postgresql/
+cd /run/postgresql/
+touch .s.PGSQL.5432.lock
+chown -R postgres:postgres /run/postgresql
+```
diff --git a/build.gradle.kts b/build.gradle.kts
index 1a64b77e..29d9202b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -19,11 +19,10 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-
plugins {
`dokka-conventions`
`jacoco-aggregation`
}
group = "org.opendc"
-version = "3.0-SNAPSHOT"
+version = "3.0-SNAPSHOT" \ No newline at end of file
diff --git a/opendc-common/build.gradle.kts b/opendc-common/build.gradle.kts
index aeb9bc4d..0094730b 100644
--- a/opendc-common/build.gradle.kts
+++ b/opendc-common/build.gradle.kts
@@ -32,6 +32,10 @@ plugins {
val serializationVersion = "1.6.0"
dependencies {
+
+ //@Mateusz: for the postgresql database
+ implementation("org.postgresql:postgresql:42.7.10")
+
api(libs.kotlinx.coroutines)
implementation(libs.kotlin.logging)
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ConfigParser.kt b/opendc-common/src/main/kotlin/org/opendc/common/utils/ConfigParser.kt
index 26244544..cb9623bb 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ConfigParser.kt
+++ b/opendc-common/src/main/kotlin/org/opendc/common/utils/ConfigParser.kt
@@ -1,4 +1,4 @@
-package org.opendc.experiments.base.runner
+package org.opendc.common.utils
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
@@ -14,7 +14,6 @@ import java.sql.Connection
import java.sql.DriverManager
import java.sql.SQLException
-
/**
* @property name
* @property backlog the amount of connections to accept
@@ -26,12 +25,12 @@ import java.sql.SQLException
public data class Config(
val name: String = "",
var backlog: Int = 0,
- val database: Int = 5342,
val address: String = "",
val port: Int = 8080,
+ val postgresql: Int = 5342,
val username : String = "",
val password : String = "",
- val schema: String = ""
+ val database: String = ""
){
public companion object{
@@ -58,17 +57,6 @@ public data class Config(
public fun getConfigWriter() : OutputStream? {
return output
}
-
- public fun setupDatabase(address : String, port : Int, dbUser : String, dbPassword : String, dbSchema : String){
- val dbUrl = "jdbc:postgresql://$address:$port/$dbSchema"
- println(dbUrl)
- try {
- connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword)
- } catch (e: SQLException) {
- print("${e.message}")
- }
- }
-
}
}
/**
diff --git a/opendc-common/src/main/kotlin/org/opendc/common/utils/PostgresqlDB.kt b/opendc-common/src/main/kotlin/org/opendc/common/utils/PostgresqlDB.kt
new file mode 100644
index 00000000..3dc7a0e4
--- /dev/null
+++ b/opendc-common/src/main/kotlin/org/opendc/common/utils/PostgresqlDB.kt
@@ -0,0 +1,56 @@
+package org.opendc.common.utils
+
+import java.sql.Connection
+import java.sql.DriverManager
+import java.sql.SQLException
+
+public class PostgresqlDB {
+ public var connection : Connection? = null
+ public var dbUrl : String = ""
+ public var user : String = ""
+ public var password : String = ""
+
+ public fun setupDatabase(address : String, port : Int, dbUser : String, dbPassword : String, db : String){
+ dbUrl = "jdbc:postgresql://$address:$port/$db"
+ user = dbUser
+ password = dbPassword
+ println(dbUrl)
+ try {
+ connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword)
+ } catch (e: SQLException) {
+ print("${e.message}")
+ }
+ }
+
+ public fun create(){
+ val CREATE_TABLE = """
+ CREATE TABLE metrics (
+ id SERIAL PRIMARY KEY,
+ timestamp bigint,
+ tasksActive integer,
+ clusterName varchar(10));
+ """.trimIndent()
+
+ try {
+ val conn = DriverManager.getConnection(dbUrl, user, password)
+ val st = conn.createStatement()
+ st.executeQuery(CREATE_TABLE)
+ } catch (e: SQLException){
+ println("${e.message}")
+ }
+ }
+
+ public fun clear(){
+ val DELETE_ALL_TABLES = """
+ DROP SCHEMA public CASCADE;
+ CREATE SCHEMA public;
+ """.trimIndent()
+ try {
+ val conn = DriverManager.getConnection(dbUrl, user, password)
+ val st = conn.createStatement()
+ st.executeQuery(DELETE_ALL_TABLES)
+ } catch (e: SQLException){
+ println("${e.message}")
+ }
+ }
+} \ No newline at end of file
diff --git a/opendc-demo/build.gradle.kts b/opendc-demo/build.gradle.kts
new file mode 100644
index 00000000..02972f44
--- /dev/null
+++ b/opendc-demo/build.gradle.kts
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+group = "org.opendc"
+description = "Demo for the OpenDC digital twin"
+
+plugins {
+ `kotlin-library-conventions`
+}
+
+dependencies {
+ // Source: https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+ implementation("org.apache.kafka:kafka-clients:4.1.1")
+ implementation(libs.jackson.core)
+ implementation(project(mapOf("path" to "::opendc-compute:opendc-compute-simulator")))
+
+}
diff --git a/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt b/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
new file mode 100644
index 00000000..f59f90a1
--- /dev/null
+++ b/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
@@ -0,0 +1,42 @@
+package org.opendc.demo
+
+import com.fasterxml.jackson.databind.ObjectMapper
+import org.apache.kafka.clients.producer.ProducerRecord
+import org.opendc.compute.simulator.telemetry.ComputeMonitor
+import org.opendc.compute.simulator.telemetry.table.host.HostTableReader
+import java.time.Instant
+
+public class DemoComputeMonitor: ComputeMonitor {
+ public val metrics : MonitoringMetrics = MonitoringMetrics()
+
+ @Override
+ override fun record(reader: HostTableReader) {
+ metrics.timestamp = reader.timestamp.toEpochMilli()
+ metrics.tasksActive = reader.tasksActive
+ metrics.clusterName = reader.hostInfo.clusterName
+
+ try{
+ val objectMapper = ObjectMapper()
+ val jsonBytes = objectMapper.writeValueAsBytes(metrics)
+ println(metrics.clusterName)
+ }
+
+ catch(e: Exception){
+ println("${e.message}")
+ }
+ }
+
+}
+public class MonitoringMetrics {
+ public var timestamp: Long = 0
+ public var tasksActive : Int = 0
+ public var cpuUsage : Double = 0.0
+ public var cpuUtilisation: Double = 0.0
+ public var cpuActiveTime : Long = 0
+ public var cpuIdleTime: Long = 0
+ public var cpuLostTime: Long = 0
+ public var energyUsage: Double = 0.0
+ public var uptime: Long = 0
+ public var powerDraw: Double = 0.0
+ public var clusterName: String = ""
+}
diff --git a/opendc-demo/src/main/kotlin/org/opendc/demo/RunRequest.kt b/opendc-demo/src/main/kotlin/org/opendc/demo/RunRequest.kt
new file mode 100644
index 00000000..e24a0af5
--- /dev/null
+++ b/opendc-demo/src/main/kotlin/org/opendc/demo/RunRequest.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package org.opendc.demo
+
+public fun runRequest(request: String) {
+ // https://github.com/am-i-helpful/opendc/blob/master/opendc-oda/opendc-oda-experiments/src/main/kotlin/org/opendc/oda/experimentrunner/ODAComputeMonitor.kt
+ // Do this here
+ println("The request is $request\n")
+}
diff --git a/opendc-experiments/opendc-experiments-base/build.gradle.kts b/opendc-experiments/opendc-experiments-base/build.gradle.kts
index 3b1280e4..bac04854 100644
--- a/opendc-experiments/opendc-experiments-base/build.gradle.kts
+++ b/opendc-experiments/opendc-experiments-base/build.gradle.kts
@@ -40,8 +40,7 @@ dependencies {
implementation(libs.progressbar)
implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-core")))
- //@Mateusz: for the postgresql database
- implementation("org.postgresql:postgresql:42.7.10")
+ implementation(project(mapOf("path" to ":opendc-demo")))
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-workload")))
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology")))
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt
index 96eb3b21..874f5654 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt
@@ -28,6 +28,9 @@ import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.options.defaultLazy
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.types.file
+import org.opendc.common.utils.Config
+import org.opendc.common.utils.ConfigReader
+import org.opendc.common.utils.PostgresqlDB
import org.opendc.experiments.base.experiment.getExperiment
import java.io.File
import java.io.IOException
@@ -43,6 +46,8 @@ public fun main(args: Array<String>) {
else ExperimentListener().main(args)
}
+
+
/**
* Opens a client socket from `config`, but otherwise works as before.
*/
@@ -87,11 +92,14 @@ internal class ExperimentListener: CliktCommand(name = "listener") {
val configReader = ConfigReader()
var serverSocket: ServerSocket? = null
val config = configReader.read(configPath)
+ val database = PostgresqlDB()
val inetAddress = InetAddress.getByName(config.address)
try {
serverSocket = ServerSocket(config.port, config.backlog, inetAddress)
- Config.setupDatabase(config.address, config.database, config.username, config.password, config.schema)
+ database.setupDatabase(config.address, config.postgresql, config.username, config.password, config.database)
+ database.clear()
+ database.create()
runListener(serverSocket)
} catch (e: IOException) {
println("${e.message}")
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt
index 312cb0ac..9d1f7374 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt
@@ -24,17 +24,12 @@ package org.opendc.experiments.base.runner
import me.tongfei.progressbar.ProgressBarBuilder
import me.tongfei.progressbar.ProgressBarStyle
+import org.opendc.common.utils.Config
import org.opendc.experiments.base.experiment.Scenario
-import java.io.BufferedReader
-import java.io.BufferedWriter
import java.io.IOException
-import java.io.InputStream
-import java.io.InputStreamReader
-import java.io.OutputStream
-import java.io.OutputStreamWriter
import java.net.ServerSocket
import java.net.Socket
-
+import org.opendc.demo.runRequest
/**
* Run scenario when no pool is available for parallel execution
@@ -61,9 +56,6 @@ public fun runExperiment(experiment: List<Scenario>) {
println("$ansiGreen================================================================================$ansiReset")
for (seed in 0..<scenario.runs) {
-
- Config.getConfigWriter()?.write("123\n".toByteArray())
-
println("$ansiBlue Starting seed: $seed $ansiReset")
runScenario(scenario, seed.toLong())
pb.step()
@@ -84,10 +76,10 @@ public fun runListener(socket: ServerSocket) {
// communication, and to store the incoming results into Postgresql
Config.setConfigSocket(client)
- var request = ByteArray(1024)
+ val request = ByteArray(1024)
while(true){
- var ret : Int? = Config.getConfigReader()?.read(request)
+ val ret : Int? = Config.getConfigReader()?.read(request)
if(ret == -1) break
if(ret != null && ret > 0) runRequest(String(request, 0, ret))
}
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/RequestRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/RequestRunner.kt
deleted file mode 100644
index 0316119f..00000000
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/RequestRunner.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.opendc.experiments.base.runner
-
-/**
- * Processes a single HTTP request.
- * @param request The request to process.
- */
-
-public fun runRequest(request: String) {
- // https://github.com/am-i-helpful/opendc/blob/master/opendc-oda/opendc-oda-experiments/src/main/kotlin/org/opendc/oda/experimentrunner/ODAComputeMonitor.kt
- // Do this here
- println("The request is $request\n")
-} \ No newline at end of file
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
index 6d094eb4..f33b6da8 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
@@ -34,6 +34,7 @@ import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig
import org.opendc.compute.simulator.telemetry.parquet.ParquetComputeMonitor
import org.opendc.compute.simulator.telemetry.parquet.withGpuColumns
import org.opendc.compute.topology.clusterTopology
+import org.opendc.demo.DemoComputeMonitor
import org.opendc.experiments.base.experiment.Scenario
import org.opendc.experiments.base.experiment.specs.allocation.TimeShiftAllocationPolicySpec
import org.opendc.experiments.base.experiment.specs.allocation.createComputeScheduler
@@ -136,11 +137,7 @@ public fun runScenario(
provisioner,
serviceDomain,
scenario,
- seed,
startTime,
- scenario.id,
- computeExportConfig =
- scenario.exportModelSpec.computeExportConfig.withGpuColumns(gpuCount),
)
val service = provisioner.registry.resolve(serviceDomain, ComputeService::class.java)!!
@@ -181,7 +178,7 @@ public fun runScenario(
}
/**
- * Saves the simulation results into a specific output folder received from the input.A
+ * Saves the simulation results into a specific output folder received from the input.
*
* @param provisioner The provisioner used to setup and run the simulation.
* @param serviceDomain The domain of the compute service.
@@ -193,21 +190,19 @@ public fun addExportModel(
provisioner: Provisioner,
serviceDomain: String,
scenario: Scenario,
- seed: Long,
startTime: Duration,
- index: Int,
- computeExportConfig: ComputeExportConfig = scenario.exportModelSpec.computeExportConfig,
) {
+
+ /*
+ * @Mateusz
+ * Here is the entry point to DemoComputeMonitor().
+ * With this setting, the simulator no longer writes to parquet files.
+ * To get back the original code, refer to https://github.com/atlarge-research/opendc
+ * */
provisioner.runStep(
registerComputeMonitor(
serviceDomain,
- ParquetComputeMonitor(
- File("${scenario.outputFolder}/raw-output/$index"),
- "seed=$seed",
- bufferSize = 4096,
- scenario.exportModelSpec.filesToExportDict,
- computeExportConfig = computeExportConfig,
- ),
+ DemoComputeMonitor(),
Duration.ofSeconds(scenario.exportModelSpec.exportInterval),
startTime,
scenario.exportModelSpec.filesToExportDict,
diff --git a/output/greenifier-demo-scaling/raw-output/0/seed=0/host.parquet b/output/greenifier-demo-scaling/raw-output/0/seed=0/host.parquet
index 62e511e0..3afc94b3 100644
--- a/output/greenifier-demo-scaling/raw-output/0/seed=0/host.parquet
+++ b/output/greenifier-demo-scaling/raw-output/0/seed=0/host.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/0/seed=0/powerSource.parquet b/output/greenifier-demo-scaling/raw-output/0/seed=0/powerSource.parquet
index 47d5f364..f7d137b2 100644
--- a/output/greenifier-demo-scaling/raw-output/0/seed=0/powerSource.parquet
+++ b/output/greenifier-demo-scaling/raw-output/0/seed=0/powerSource.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/0/seed=0/service.parquet b/output/greenifier-demo-scaling/raw-output/0/seed=0/service.parquet
index 47467396..75c94c5d 100644
--- a/output/greenifier-demo-scaling/raw-output/0/seed=0/service.parquet
+++ b/output/greenifier-demo-scaling/raw-output/0/seed=0/service.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/0/seed=0/task.parquet b/output/greenifier-demo-scaling/raw-output/0/seed=0/task.parquet
index 288a05de..b39c11ad 100644
--- a/output/greenifier-demo-scaling/raw-output/0/seed=0/task.parquet
+++ b/output/greenifier-demo-scaling/raw-output/0/seed=0/task.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/1/seed=0/host.parquet b/output/greenifier-demo-scaling/raw-output/1/seed=0/host.parquet
index b6794f69..c4b8760b 100644
--- a/output/greenifier-demo-scaling/raw-output/1/seed=0/host.parquet
+++ b/output/greenifier-demo-scaling/raw-output/1/seed=0/host.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/1/seed=0/powerSource.parquet b/output/greenifier-demo-scaling/raw-output/1/seed=0/powerSource.parquet
index 1c135532..303a1c1d 100644
--- a/output/greenifier-demo-scaling/raw-output/1/seed=0/powerSource.parquet
+++ b/output/greenifier-demo-scaling/raw-output/1/seed=0/powerSource.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/1/seed=0/service.parquet b/output/greenifier-demo-scaling/raw-output/1/seed=0/service.parquet
index 3a7b654b..423ca413 100644
--- a/output/greenifier-demo-scaling/raw-output/1/seed=0/service.parquet
+++ b/output/greenifier-demo-scaling/raw-output/1/seed=0/service.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/1/seed=0/task.parquet b/output/greenifier-demo-scaling/raw-output/1/seed=0/task.parquet
index 10457838..ef688ad5 100644
--- a/output/greenifier-demo-scaling/raw-output/1/seed=0/task.parquet
+++ b/output/greenifier-demo-scaling/raw-output/1/seed=0/task.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/2/seed=0/host.parquet b/output/greenifier-demo-scaling/raw-output/2/seed=0/host.parquet
index d0296488..07e5b4c5 100644
--- a/output/greenifier-demo-scaling/raw-output/2/seed=0/host.parquet
+++ b/output/greenifier-demo-scaling/raw-output/2/seed=0/host.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/2/seed=0/powerSource.parquet b/output/greenifier-demo-scaling/raw-output/2/seed=0/powerSource.parquet
index 94e0b039..475e5e73 100644
--- a/output/greenifier-demo-scaling/raw-output/2/seed=0/powerSource.parquet
+++ b/output/greenifier-demo-scaling/raw-output/2/seed=0/powerSource.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/2/seed=0/service.parquet b/output/greenifier-demo-scaling/raw-output/2/seed=0/service.parquet
index 07565589..6892810a 100644
--- a/output/greenifier-demo-scaling/raw-output/2/seed=0/service.parquet
+++ b/output/greenifier-demo-scaling/raw-output/2/seed=0/service.parquet
Binary files differ
diff --git a/output/greenifier-demo-scaling/raw-output/2/seed=0/task.parquet b/output/greenifier-demo-scaling/raw-output/2/seed=0/task.parquet
index 1e273488..4d7e837b 100644
--- a/output/greenifier-demo-scaling/raw-output/2/seed=0/task.parquet
+++ b/output/greenifier-demo-scaling/raw-output/2/seed=0/task.parquet
Binary files differ
diff --git a/resources/experiments/config.json b/resources/experiments/config.json
index af2b553f..4dbf1e91 100644
--- a/resources/experiments/config.json
+++ b/resources/experiments/config.json
@@ -3,8 +3,8 @@
"port": "8080",
"backlog": 20,
"address": "127.0.0.1",
- "database" : "5432",
+ "postgresql" : "5432",
"username" : "matt",
"password" : "admin",
- "schema" : "opendc"
+ "database" : "opendc"
}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 139dbd7e..faddf669 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,3 +1,6 @@
+plugins {
+ id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
+}
/*
* Copyright (c) 2017 AtLarge Research
*
@@ -21,8 +24,8 @@
*/
rootProject.name = "opendc"
-
include(":opendc-common")
+include(":opendc-demo")
include(":opendc-compute:opendc-compute-api")
include(":opendc-compute:opendc-compute-carbon")
include(":opendc-compute:opendc-compute-failure")