diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2025-05-16 10:32:08 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-16 10:32:08 +0200 |
| commit | d70312f122d9ef7c31b05757239ffc66af832dee (patch) | |
| tree | c8eb5d86ce751b783c3f15744bcda35861eed65d /site/docs/documentation/Input/Topology.md | |
| parent | 1bc17abd7691bc81f11ee125e2eeb4cb08da5245 (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/Topology.md')
| -rw-r--r-- | site/docs/documentation/Input/Topology.md | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/site/docs/documentation/Input/Topology.md b/site/docs/documentation/Input/Topology.md deleted file mode 100644 index 0d2479bd..00000000 --- a/site/docs/documentation/Input/Topology.md +++ /dev/null @@ -1,220 +0,0 @@ -The topology of a datacenter is defined using a JSON file. A topology consist of one or more clusters. -Each cluster consist of at least one host on which jobs can be executed. Each host consist of one or more CPUs, -a memory unit and a power model. - -:::info Code -The code related to reading and processing topology files can be found [here](https://github.com/atlarge-research/opendc/tree/master/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology) -::: - - -## Schema - -The schema for the topology file is provided in [schema](TopologySchema). -In the following section, we describe the different components of the schema. - -### Cluster - -| variable | type | required? | default | description | -|----------|---------------------|-----------|---------|-----------------------------------------------------------------------------------| -| name | string | no | Cluster | The name of the cluster. This is only important for debugging and post-processing | -| count | integer | no | 1 | The amount of clusters of this type are in the data center | -| hosts | List[[Host](#host)] | yes | N/A | A list of the hosts in a cluster. | - -### Host - -| variable | type | required? | default | description | -|-------------|-----------------------------|-----------|---------|--------------------------------------------------------------------------------| -| name | string | no | Host | The name of the host. This is only important for debugging and post-processing | -| count | integer | no | 1 | The amount of hosts of this type are in the cluster | -| cpuModel | [CPU](#cpu) | yes | N/A | The CPUs in the host | -| memory | [Memory](#memory) | yes | N/A | The memory used by the host | -| power model | [Power Model](#power-model) | yes | N/A | The power model used to determine the power draw of the host | - -### CPU - -| variable | type | Unit | required? | default | description | -|-----------|---------|-------|-----------|---------|--------------------------------------------------| -| name | string | N/A | no | unknown | The name of the CPU. | -| vendor | string | N/A | no | unknown | The vendor of the CPU | -| arch | string | N/A | no | unknown | the micro-architecture of the CPU | -| count | integer | N/A | no | 1 | The amount of cpus of this type used by the host | -| coreCount | integer | count | yes | N/A | The number of cores in the CPU | -| coreSpeed | Double | Mhz | yes | N/A | The speed of each core in Mhz | - -### Memory - -| variable | type | Unit | required? | default | description | -|-------------|---------|------|-----------|---------|--------------------------------------------------------------------------| -| name | string | N/A | no | unknown | The name of the CPU. | -| vendor | string | N/A | no | unknown | The vendor of the CPU | -| arch | string | N/A | no | unknown | the micro-architecture of the CPU | -| count | integer | N/A | no | 1 | The amount of cpus of this type used by the host | -| memorySize | integer | Byte | yes | N/A | The number of cores in the CPU | -| memorySpeed | Double | ? | no | -1 | The speed of each core in Mhz. PLACEHOLDER: this currently does nothing. | - -### Power Model - -| variable | type | Unit | required? | default | description | -|-----------------|--------|------|-----------|----------|-------------------------------------------------------------------------------| -| vendor | string | N/A | yes | N/A | The type of model used to determine power draw | -| modelName | string | N/A | yes | N/A | The type of model used to determine power draw | -| arch | string | N/A | yes | N/A | The type of model used to determine power draw | -| totalPower | Int64 | Watt | no | max long | The power draw of a host when using max capacity in Watt | -| carbonTracePath | string | N/A | no | null | Path to a carbon intensity trace. If not given, carbon intensity is always 0. | - -## Examples - -In the following section, we discuss several examples of topology files. Any topology file can be verified using the -JSON schema defined in [schema](TopologySchema). - -### Simple - -The simplest data center that can be provided to OpenDC is shown below: - -```json -{ - "clusters": [ - { - "hosts": [ - { - "cpu": - { - "coreCount": 16, - "coreSpeed": 1000 - }, - "memory": { - "memorySize": 100000 - } - } - ] - } - ] -} -``` - -This creates a data center with a single cluster containing a single host. This host consist of a single 16 core CPU -with a speed of 1 Ghz, and 100 MiB RAM memory. - -### Count - -Duplicating clusters, hosts, or CPUs is easy using the "count" keyword: - -```json -{ - "clusters": [ - { - "count": 2, - "hosts": [ - { - "count": 5, - "cpu": - { - "coreCount": 16, - "coreSpeed": 1000, - "count": 10 - }, - "memory": - { - "memorySize": 100000 - } - } - ] - } - ] -} -``` - -This topology creates a datacenter consisting of 2 clusters, both containing 5 hosts. Each host contains 10 16 core -CPUs. -Using "count" saves a lot of copying. - -### Complex - -Following is an example of a more complex topology: - -```json -{ - "clusters": [ - { - "name": "C01", - "count": 2, - "hosts": [ - { - "name": "H01", - "count": 2, - "cpus": [ - { - "coreCount": 16, - "coreSpeed": 1000 - } - ], - "memory": { - "memorySize": 1000000 - }, - "powerModel": { - "modelType": "linear", - "idlePower": 200.0, - "maxPower": 400.0 - } - }, - { - "name": "H02", - "count": 2, - "cpus": [ - { - "coreCount": 8, - "coreSpeed": 3000 - } - ], - "memory": { - "memorySize": 100000 - }, - "powerModel": { - "modelType": "square", - "idlePower": 300.0, - "maxPower": 500.0 - } - } - ] - } - ] -} -``` - -This topology defines two types of hosts with different coreCount, and coreSpeed. -Both types of hosts are created twice. - - -### With Units of Measure - -Aside from using number to indicate values it is also possible to define values using strings. This allows the user to define the unit of the input parameter. -```json -{ - "clusters": [ - { - "count": 2, - "hosts" : - [ - { - "name": "H01", - "cpuModel": - { - "coreCount": 8, - "coreSpeed": "3.2 Ghz" - }, - "memory": { - "memorySize": "128e3 MiB", - "memorySpeed": "1 Mhz" - }, - "powerModel": { - "modelType": "linear", - "power": "400 Watts", - "maxPower": "1 KW", - "idlePower": "0.4 W" - } - } - ] - } - ] -} -``` |
