summaryrefslogtreecommitdiff
path: root/site/docs/documentation/Input/Experiment.md
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-05-16 10:32:08 +0200
committerGitHub <noreply@github.com>2025-05-16 10:32:08 +0200
commitd70312f122d9ef7c31b05757239ffc66af832dee (patch)
treec8eb5d86ce751b783c3f15744bcda35861eed65d /site/docs/documentation/Input/Experiment.md
parent1bc17abd7691bc81f11ee125e2eeb4cb08da5245 (diff)
Updated website documentation (#334)
* Updated website documentation * Updated some documentation and fixed links * small updates * small updates
Diffstat (limited to 'site/docs/documentation/Input/Experiment.md')
-rw-r--r--site/docs/documentation/Input/Experiment.md136
1 files changed, 33 insertions, 103 deletions
diff --git a/site/docs/documentation/Input/Experiment.md b/site/docs/documentation/Input/Experiment.md
index a4212ddf..8d3462a9 100644
--- a/site/docs/documentation/Input/Experiment.md
+++ b/site/docs/documentation/Input/Experiment.md
@@ -5,113 +5,40 @@ In this page, we will discuss how to properly define experiments for OpenDC.
:::info Code
All code related to reading and processing Experiment files can be found [here](https://github.com/atlarge-research/opendc/tree/master/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/experiment)
-
-The code used to run a given experiment can be found [here](https://github.com/atlarge-research/opendc/tree/master/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner)
+The code used to run experiments can be found [here](https://github.com/atlarge-research/opendc/tree/master/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner)
:::
## Schema
-The schema for the scenario file is provided in [schema](ExperimentSchema)
-In the following section, we describe the different components of the schema.
-Some components of an experiment are not single values, but lists. This is used to run multiple scenarios using
-a single experiment file. OpenDC will execute all permutations of the different values.
-This means that if all list based values have a single value, only one Scenario will be run.
-
-| Variable | Type | Required? | Default | Description |
-|---------------------|----------------------------------------------|-----------|----------|-------------------------------------------------------------------|
-| name | string | no | "" | Name of the scenario, used for identification and referencing. |
-| outputFolder | string | no | "output" | Directory where the simulation outputs will be stored. |
-| initialSeed | integer | no | 0 | Seed used for random number generation to ensure reproducibility. |
-| runs | integer | no | 1 | Number of times the scenario should be run. |
-| exportModels | List[[ExportModel](#exportmodel)] | no | Default | Specifications for exporting data from the simulation. |
-| maxNumFailures | List[integer] | no | [10] | The max number of times a task can fail before being terminated. |
-| topologies | List[[Topology](#topology)] | yes | N/A | List of topologies used in the scenario. |
-| workloads | List[[Workload](#workload)] | yes | N/A | List of workloads to be executed within the scenario. |
-| allocationPolicies | List[[AllocationPolicy](#allocation-policy)] | yes | N/A | Allocation policies used for resource management in the scenario. |
-| failureModels | List[[FailureModel](#failuremodel)] | no | Default | List of failure models to simulate various types of failures. |
-| checkpointModels | List[[CheckpointModel](#checkpointmodel)] | no | null | Paths to carbon footprint trace files. |
-| carbonTracePaths | List[string] | no | null | Paths to carbon footprint trace files. |
-
-
-Many of the input fields of the experiment file are complex objects themselves. Next, we will describe the required input
-type of each of these fields.
-
-### ExportModel
-
-| Variable | Type | Required? | Default | Description |
-|---------------------|-----------------------------------------|-----------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| exportInterval | Int64 | no | 300 | The duration between two exports in seconds |
-| computeExportConfig | [ComputeExportConfig](#checkpointmodel) | no | Default | The features that should be exported during the simulation |
-| filesToExport | List[string] | no | all files | List of the files that should be exported during simulation. The elements should be picked from the set ("host", "task", "powerSource", "battery", "service") |
-
-
-
-### ComputeExportConfig
-The features that should be exported by OpenDC
-
-| Variable | Type | Required? | Default | Description |
-|--------------------------|--------------|-----------|--------------|-----------------------------------------------------------------------|
-| hostExportColumns | List[String] | no | All features | The features that should be exported to the host output file. |
-| taskExportColumns | List[String] | no | All features | The features that should be exported to the task output file. |
-| powerSourceExportColumns | List[String] | no | All features | The features that should be exported to the power source output file. |
-| serviceExportColumns | List[String] | no | All features | The features that should be exported to the service output file. |
-
-
-### Topology
-Defines the topology on which the workload will be run.
-
-:::info
-For more information about the Topology go [here](Topology)
-:::
-
-| Variable | Type | Required? | Default | Description |
-|-------------|--------|-----------|---------|---------------------------------------------------------------------|
-| pathToFile | string | yes | N/A | Path to the JSON file defining the topology. |
-
-### Workload
-Defines the workload that needs to be executed.
-
-:::info
-For more information about workloads go [here](Workload)
-:::
-
-| Variable | Type | Required? | Default | Description |
-|-------------|--------|-----------|---------|---------------------------------------------------------------------|
-| pathToFile | string | yes | N/A | Path to the file containing the workload trace. |
-| type | string | yes | N/A | Type of the workload (e.g., "ComputeWorkload"). |
-
-### Allocation Policy
-Defines the allocation policy that should be used to decide on which host each task should be executed
-
-:::info Code
-The different allocation policies that can be used can be found [here](https://github.com/atlarge-research/opendc/blob/master/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt)
-:::
-
-| Variable | Type | Required? | Default | Description |
-|------------|--------|-----------|---------|----------------------------|
-| policyType | string | yes | N/A | Type of allocation policy. |
-
-### FailureModel
-The failure model that should be used during the simulation
-See [FailureModels](FailureModel) for detailed instructions.
-
-### CheckpointModel
-The checkpoint model that should be used to create snapshots.
-
-| Variable | Type | Required? | Default | Description |
-|---------------------------|--------|-----------|---------|---------------------------------------------------------------------------------------------------------------------|
-| checkpointInterval | Int64 | no | 3600000 | The time between checkpoints in ms |
-| checkpointDuration | Int64 | no | 300000 | The time to create a snapshot in ms |
-| checkpointIntervalScaling | Double | no | 1.0 | The scaling of the checkpointInterval after each succesful checkpoint. The default of 1.0 means no scaling happens. |
-
+In the following section, we describe the different components of an experiment. Following is a table with all experiment components:
+
+| Variable | Type | Required? | Default | Description |
+|--------------------|----------------------------------------------------------------------|-----------|---------------|-------------------------------------------------------------------------------------------------------|
+| name | string | no | "" | Name of the scenario, used for identification and referencing. |
+| outputFolder | string | no | "output" | Directory where the simulation outputs will be stored. |
+| runs | integer | no | 1 | Number of times the same scenario should be run. Each scenario is run with a different seed. |
+| initialSeed | integer | no | 0 | The seed used for random number generation during a scenario. Setting a seed ensures reproducability. |
+| topologies | List[path/to/file] | yes | N/A | Paths to the JSON files defining the topologies. |
+| workloads | List[[Workload](/docs/documentation/Input/Workload)] | yes | N/A | Paths to the files defining the workloads executed. |
+| allocationPolicies | List[[AllocationPolicy](/docs/documentation/Input/AllocationPolicy)] | yes | N/A | Allocation policies used for resource management in the scenario. |
+| failureModels | List[[FailureModel](/docs/documentation/Input/FailureModel)] | no | List[null] | List of failure models to simulate various types of failures. |
+| maxNumFailures | List[integer] | no | [10] | The max number of times a task can fail before being terminated. |
+| checkpointModels | List[[CheckpointModel](/docs/documentation/Input/CheckpointModel)] | no | List[null] | Paths to carbon footprint trace files. |
+| exportModels | List[[ExportModel](/docs/documentation/Input/ExportModel)] | no | List[default] | Specifications for exporting data from the simulation. |
+
+Most components of an experiment are not single values, but lists of values.
+This allows users to run multiple scenarios using a single experiment file.
+OpenDC will generate and execute all permutations of the different values.
+
+Some of the components in an experiment file are paths to files, or complicated objects. The format of these components
+are defined in their respective pages.
## Examples
-In the following section, we discuss several examples of Scenario files. Any scenario file can be verified using the
-JSON schema defined in [schema](TopologySchema).
+In the following section, we discuss several examples of experiment files.
### Simple
-The simplest scneario that can be provided to OpenDC is shown below:
+The simplest experiment that can be provided to OpenDC is shown below:
```json
{
"topologies": [
@@ -127,18 +54,19 @@ The simplest scneario that can be provided to OpenDC is shown below:
],
"allocationPolicies": [
{
- "policyType": "Mem"
+ "type": "prefab",
+ "policyName": "Mem"
}
]
}
```
-This scenario creates a simulation from file topology1, located in the topologies folder, with a workload trace from the
+This experiment creates a simulation from file topology1, located in the topologies folder, with a workload trace from the
bitbrains-small file, and an allocation policy of type Mem. The simulation is run once (by default), and the default
name is "".
### Complex
-Following is an example of a more complex topology:
+Following is an example of a more complex experiment:
```json
{
"topologies": [
@@ -164,10 +92,12 @@ Following is an example of a more complex topology:
],
"allocationPolicies": [
{
- "policyType": "Mem"
+ "type": "prefab",
+ "policyName": "Mem"
},
{
- "policyType": "Mem-Inv"
+ "type": "prefab",
+ "policyName": "Mem-Inv"
}
]
}