| Age | Commit message (Collapse) | Author |
|
This change splits the App container into separate pages, as a starting
point for removing much of the unnecessary state from Redux.
|
|
This pull request updates the OpenDC frontend to use Next.js 11.
* Upgrade to Next.js 11
* Enable React Strict mode
* Enable ESLint
* Fix ESLint issues
|
|
|
|
|
|
|
|
This pull request updates the web runner to remove its hard dependency on a
direct database connection. Instead, it now communicates via the REST API.
* Add endpoint for scheduling simulation jobs
* Create simple API client for web runner
* Remove direct database connection from web runner
* Improve validation of API input/output data
Implements #144
|
|
This change updates the web runner to not require direct database access
for scheduling simulation jobs. Instead, the runner polls the public
REST API for available jobs and reports its results through there.
|
|
This change adds support for restricting API scopes in the OpenDC API
server. This is necessary to make a distinction between runners and
regular users.
|
|
This change adds an API endpoint for simulation jobs which allows API
consumers to manage simulation jobs without needing direct database
access that is currently needed for the web runner.
|
|
This change adds stricter validation of data that enters and leaves the
database. As a result, we clearly separate the database model from the
data model that the REST API exports.
|
|
This change updates the Swagger UI configuration to pass the Auth0
audience to the authorization URL in order to obtain a valid JWT token.
|
|
This change addresses some issues in the OpenAPI schema for the
datacenter topology.
|
|
This change enables React Strict Mode via Next.js configuration in order
to highlight potential problems with the web application.
|
|
|
|
This change updates the build workflow to trigger on pushes to the
master branch. We previously removed this trigger to reduce the number
of CI builds when merging changes into the master branch.
However, with the integration of Codecov as well as the caching steps in
the workflow, it makes sense to build every push to the master branch.
|
|
This change updates the Kotlin version used in the Gradle build to
version 1.5.20. For more details, see
https://kotlinlang.org/docs/releases.html#release-details.
|
|
This pull request re-implements the performance interference model to integrate
with the uniform resource model in OpenDC. This forms the basis for other forms
of resource interference (e.g., network or disk).
* Add interface for resource interference in uniform resource
model (`opendc-simulator-resources`)
* Remove dependency on performance interference model from trace readers
* Re-implement the performance interference model on top of the interface
in the uniform resource model.
**Breaking API Changes**
* The original performance interference model classes are removed
* The SC20 trace and environment related readers have moved to the Capelin experiments module.
* Changes to the interfaces in `opendc-format`.
Implements #103
|
|
This change updates reimplements the performance interference model to
work on top of the universal resource model in
`opendc-simulator-resources`. This enables us to model interference and
performance variability of other resources such as disk or network in
the future.
|
|
This change updates the trace reader implementation to remove their
dependency on the performance interference model. In a future commit, we
will instead pass the performance interference model via the
host/hypervisor.
|
|
This change introduces an interface for modelling performance
variability due to resource interference in systems where resources are
shared across multiple consumers.
|
|
This change adds initial support for storage devices in the OpenDC
simulator. Currently, we focus on local disks attached to the machine.
In the future, we plan to support networked storage devices using the
networking support in OpenDC.
|
|
This change adds support for networking in the simulator.
As outlined in #84, the network model doesn't model individual packets,
but instead considers dynamic flows between network devices.
This pull request adds the bare-minimum implementation necessary to model network traffic.
In the future, we will add advanced functionality such as routing and other L3 concepts.
* Add core model for network simulation
* Add model for network adapter that attaches to machine
* Add virtual network switch to bridge traffic between hosts.
|
|
This change updates the Github Actions Gradle workflows in order to
improve the runtime performance of these workflows. We have now enabled
build caching as well as parallel builds to speed up the build process.
Moreover, we now cache the Gradle wrapper.
|
|
This change adds a virtual network switch to the OpenDC networking
module. Currently, the switch bridges the traffic equally across all
ports. In the future, we'll also add routing support to the switch.
|
|
This change bridges the compute and network simulation module by
adding support for network adapters in the compute module. With these
network adapters, compute workloads can communicate over the network
that the adapters are connected to.
|
|
This change re-organizes the classes of the compute simulator module to
make a clearer distinction between the hardware, firmware and software
interfaces in this module.
|
|
This change adds a basic framework as basis for network simulation support
in OpenDC. It is modelled similarly to the power system that has been
added recently.
|
|
This pull request implements several optimizations in the resource interpreter implementation.
* Interpreter is now shared across hosts in experiments
* Interpreter allocations are pooled where possible
* Resource lifecycle concept is eliminated
* Optimized flag management in interpreter
|
|
This change updates the resources module to reduce the number of object
allocations in the interpreter's hot path. This in turn should reduce
the GC pressure.
|
|
This change optimizes the internal flag management used in the
SimResourceContextImpl to use bitwise flags instead of enums. This
approach simplifies the implementation immensely and reduces the number
of branches.
|
|
This change removes the AutoCloseable interface from the
SimResourceProvider and removes the concept of a resource lifecycle.
Instead, resource providers are now either active (running a resource
consumer) or in-active (being idle), which simplifies implementation.
|
|
This change updates the SimResourceInterpreter implementation to pool
the allocations of the Update objects. This reduces the amount of
allocations necessary in the hot path of the simulator.
|
|
This change updates the SimResourceContextImpl to optimize the access to
the remainingWork property, which is required by many calls in the hot
path.
|
|
This change enables the experiments to share the SimResourceInterpreter
across multiple hosts, which allows updates to be scheduled efficiently
for all machines at the same time. This is especially beneficial if the
machines operate on the same time slices.
|
|
This change adds the CPU frequency scaling governors including the conservative and on-demand governors that are found in the Linux kernel.
# Implementation Notes
* A `ScalingPolicy` has been added to aid the frequency scaling process.
|
|
This change adds the CPU frequency scaling governors that are found in
the Linux kernel, which include the conservative and on-demand governor.
|
|
This change updates the project dependencies to follow the latest
available version where possible.
|
|
This change renames the opendc-serverless module to opendc-faas to
better distinguish between the two terms (Serverless and FaaS) and be
clearer about the intent of the module.
The opendc-faas module holds the code for the FaaS platform on top of
OpenDC. Although this is one approach of doing serverless, serverless
can also entail other services that will not be covered by this module.
|
|
This change fixes an issue where the power in the energy experiments is
always reported as zero due to the changes in commit 652b869.
|
|
This change upgrades the Gradle build system to version 7.1.
|
|
This change fixes the execution of the Energy21 experiments which failed
due to various changes in the OpenDC codebase. First, the directory
structure is now required to be pre-generated before the writer starts
writing the experiment output. Second, we must include the configuration
of the Capelin experiment in this experiment in order to workaround an
issue with harness filtering.
|
|
This pull request adds a subsystem to OpenDC for modelling power components in datacenters,
such as UPSes, PDUs and PSUs.
These components also take into account electrical losses that occur in real-world scenarios.
- Add module for datacenter power components (UPS, PDU)
- Integrate power subsystem with compute subsystem (PSU)
- Model power loss in power components
**Breaking API Changes**
1. `SimBareMetalMachine.powerDraw` is replaced by `SimBareMetalMachine.psu.powerDraw`
|
|
This pull request adds a subsystem to OpenDC for modelling power components in datacenters,
such as UPSes, PDUs and PSUs.
These components also take into account electrical losses that occur in real-world scenarios.
- Add module for datacenter power components (UPS, PDU)
- Integrate power subsystem with compute subsystem (PSU)
- Model power loss in power components
**Breaking API Changes**
1. `SimBareMetalMachine.powerDraw` is replaced by `SimBareMetalMachine.psu.powerDraw`
|
|
This change introduces power loss to the PSU component.
|
|
This change adds a new model for the UPS to the OpenDC simulator power
subsystem.
|
|
This change integrates the power subsystem of the simulator with the
compute subsystem by exposing a new field on a SimBareMetalMachine, psu,
which provides access to the machine's PSU, which in turn can be
connected to a SimPowerOutlet.
|
|
This change adds a model for power loss to the Power Distribution Unit
(PDU) model in OpenDC.
|
|
This change adds a new module for simulating power components in
datacenters such as PDUs and UPSes. This module will serve as the basis
for the power monitoring framework in OpenDC and will future integrate
with the other simulation components (such as compute).
|
|
This change introduces a memory resource which can be used to model
memory usage. The SimMachineContext now exposes a memory field of type
SimMemory which provides access to this resource and allows workloads to
start a consumer on this resource.
|
|
This pull request attempts to remove the dependency of the simulator on Apache Hadoop
which is pulled in as a consequence of using parquet-mr.
The reason for removal is that Apache Hadoop does not work natively on Windows
without user intervention, which makes adoption on this platform more difficult.
* Add Windows as CI target for the OpenDC simulator
* Use `LocalInputFile` for Parquet reader usages
* Use `LocalOutputFile` for Parquet writer usages
* Remove Apache Hadoop as dependency of OpenDC.
|