| Age | Commit message (Collapse) | Author |
|
This change updates the project structure to become flattened.
Previously, the simulator, frontend and API each lived into their own
directory.
With this change, all modules of the project live in the top-level
directory of the repository. This should improve discoverability of
modules of the project.
|
|
This change adds a power model for optimizing the mean squared error
to the available power models in OpenDC.
|
|
This change fixes and issue where a SimWorkload was being re-used across
simulation runs. Given that SimWorkload is stateless, this may cause
strange issues.
|
|
This change introduces the SimProcessingUnit which represents a
simulated processing unit which the user can control during the workload
execution.
|
|
This change adds the asymptotic power model that is used in GreenCloud
to the available power models in OpenDC.
|
|
This change adds an experiment for the OpenDC Energy project, which
tests various energy models that have been implemented in OpenDC.
|
|
This change fixes an issue in SimTraceWorkload where the CPU usage was
not divided across the cores, but was instead requested for all cores.
|
|
This change updates the logic in SimAbstractMachine to only propagate
usages when the value has changed.
|
|
This change removes the StateFlow speed property on the
SimResourceSource, as the overhead of emitting changes to the StateFlow
is too high in a single-thread context. Our new approach is to use
direct callbacks and counters.
|
|
|
|
This change updates the power models by fixing some of the documentation
and adding toString() methods.
|
|
This change adds a model implementing Dynamic Voltage Frequency Scaling
(DVFS) to OpenDC.
|
|
This pull request resolves issue #91 by adopting the industry-standard OpenTelemetry standard
for collecting traces and metrics in OpenDC simulations:
* Metrics will now be exposed through OpenTelemetry's metrics API
* `opendc-telemetry` provides complementary code to support
gathering telemetry in OpenDC.
**Breaking API Changes**
* `opendc-tracer` has been removed.
* `EventFlow` and all usages of it have been removed.
* `opendc-experiments-sc18` has been removed for now, but a
suitable replacement will follow soon.
|
|
This change enables the use of the interpolation model testing on the results of the SPEC benchmark.
|
|
This change integrates the OpenTelemetry Metrics API in the OpenDC
Compute Service implementation. This replaces the old infrastructure for
gathering metrics.
|
|
This change moves the power models from the `opendc-compute-simulator`
to the `opendc-simulator-compute` module, since it better fits the scope
of the models and allows them to be re-used for other purposes.
|
|
This change adds support for transforming the resource commands emitted
by the resource consumers. The SimResourceForwarder is modified to also
support transforming the resource commands.
|
|
This change re-enables support for VM usage metrics by adding an adapter
for SimResourceConsumer instances that can export the consumer speed.
|
|
This change removes the generic resource constraint (e.g., SimResource)
and replaces it by a simple capacity property. In the future, users
should handle the resource properties on a higher level.
This change simplifies compositions of consumers and providers by not
requiring a translation from resource to capacity.
|
|
This change changes the consumer and context interfaces to expose the
provider capacity and remaining work via the context instance as opposed
to only via the callback. This simplifies aggregation of resources.
|
|
This change re-designs the SimResourceConsumer interface to support in
the future capacity negotiation. This basically means that the consumer
will be informed directly when not enough capacity is available, instead
of after the deadline specified by the consumer.
|
|
This change implements the CPU energy model with p-states from iCanCloud/E-mc2:
- Only pushed a portion of the code for discussion as not sure if the idea is
on track.
- Inline comments have been added, and formal documents will follow once the
model is finalized.
- The p-state power consumptions are currently hard-coded in a companion
object, which should be improved in the next PR(s).
**Breaking Changes**
- CpuPowerModel: directly interact with the machine it is measuring.
- SimBareMetalMachine: expose the speeds of its CPU cores and its clock
instant.
|
|
This change moves the hypervisor implementations to the
opendc-simulator-resources module and makes them generic to the resource
type that is being used (e.g., CPU, disk or networking).
|
|
This change adds a generic framework for modeling resource consumptions and
adapts opendc-simulator-compute to model machines and VMs on top of
this framework.
This framework anticipates the addition of additional resource types
such as memory, disk and network to the OpenDC codebase.
|
|
This change separates the cloud compute layer in OpenDC (e.g., Server)
from the bare-metal layer (e.g., Node), such that Node and
BareMetalDriver are unaware of the existence of Server and co.
|
|
This change allows users to select the hypervisor scheduler to use when
deploying hypervisors onto bare-metal machines.
|
|
This change adds a new hypervisor implementation that supports virtual
machine that have exclusive access to resources (e.g., CPU).
|
|
This change converts the low-level workload model to be pull-based. This
reduces the overhead that we experienced with our previous co-routine
based approach.
|
|
This change updates the workflow service to delegate the resource
scheduling logic to the virtualized resource provisioner.
|
|
|
|
This change reimplements the performance interference model originally
implemented for the SimpleVirtDriver class, for SimHypervisor.
|
|
This change updates the remainder of the codebase to use the
opendc-simulator-compute module for the simulation of workloads.
|
|
This change adds an implementation of the VirtDriver interface that uses
the functionality provided by the opendc-simulator-compute module.
|
|
This change adds an opendc-simulator-compute module which contains
interfaces related to simulating compute workloads. For future changes,
we intend to decouple the simulation part from the opendc-compute
module.
|