OpenDC2 is no longer being developed
This page documents OpenDC2. OpenDC3 can still run OpenDC2 experiment files with opendc --legacy run, but new features are only added to OpenDC3. See the OpenDC3 documentation, or Migrating to OpenDC3.
Host
A host is a machine on which tasks run. It has a CPU and memory, and can have a GPU.
| Field | Type | Default | Description |
|---|---|---|---|
name | string | "Host" | Name of the host. |
count | integer | 1 | The number of identical hosts to create. |
cpu | CPU | required | The CPU of the host. |
memory | Memory | required | The memory of the host. |
gpu | GPU | no GPU | The GPU of the host. |
cpuPowerModel | Power model | linear, 200 W idle, 400 W max | Power draw of the CPU. |
gpuPowerModel | Power model | linear, 200 W idle, 400 W max | Power draw of the GPU. |
cpuDistributionPolicy | Distribution policy | MAX_MIN_FAIRNESS | How the CPU is shared between tasks. |
gpuDistributionPolicy | Distribution policy | MAX_MIN_FAIRNESS | How the GPU is shared between tasks. |
CPU
| Field | Type | Default | Description |
|---|---|---|---|
coreCount | integer | required | The number of cores per CPU. |
coreSpeed | Frequency | required | The speed of each core. |
count | integer | 1 | The number of CPUs in the host. |
vendor | string | "unknown" | The vendor of the CPU. |
modelName | string | "unknown" | The model of the CPU. |
arch | string | "unknown" | The micro-architecture of the CPU. |
Memory
| Field | Type | Default | Description |
|---|---|---|---|
memorySize | Data size | required | The amount of memory. |
memorySpeed | Frequency | unspecified | The speed of the memory. |
vendor | string | "unknown" | The vendor of the memory. |
modelName | string | "unknown" | The model of the memory. |
arch | string | "unknown" | The memory technology. |
GPU
| Field | Type | Default | Description |
|---|---|---|---|
coreCount | integer | required | The number of cores per GPU. |
coreSpeed | Frequency | required | The speed of each core. |
count | integer | 1 | The number of GPUs in the host. |
memorySize | Data size | unspecified | The memory of each GPU. |
memoryBandwidth | Data rate | unspecified | The memory bandwidth of each GPU. |
vendor | string | "unknown" | The vendor of the GPU. |
modelName | string | "unknown" | The model of the GPU. |
architecture | string | "unknown" | The micro-architecture of the GPU. |
virtualizationOverHeadModel | Virtualization overhead | NONE | The performance lost when the GPU is shared. |
Example
A host with a 4-core CPU and a GPU, whose GPU is shared in fixed shares:
{
"name": "DualGpuHost",
"cpu": { "coreCount": 4, "coreSpeed": "2 GHz" },
"memory": { "memorySize": "128 GiB" },
"cpuPowerModel": { "modelType": "linear", "idlePower": "100 W", "maxPower": "200 W" },
"cpuDistributionPolicy": { "type": "MAX_MIN_FAIRNESS" },
"gpu": {
"coreCount": 2,
"coreSpeed": "2 GHz",
"virtualizationOverHeadModel": { "type": "CONSTANT", "percentageOverhead": 0.25 }
},
"gpuPowerModel": { "modelType": "linear", "idlePower": "100 W", "maxPower": "200 W" },
"gpuDistributionPolicy": { "type": "FIXED_SHARE", "shareRatio": 0.5 }
}