summaryrefslogtreecommitdiff
path: root/opendc-experiments
AgeCommit message (Collapse)Author
2021-06-24simulator: Re-implement performance interference modelFabian Mastenbroek
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.
2021-06-24format: Remove performance interference from trace readersFabian Mastenbroek
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.
2021-06-21simulator: Re-organize compute simulator moduleFabian Mastenbroek
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.
2021-06-21exp: Enable interpreter sharing across hostsFabian Mastenbroek
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.
2021-06-17faas: Rename opendc-serverless to opendc-faasFabian Mastenbroek
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.
2021-06-16exp: Fix power tracking for energy experimentsFabian Mastenbroek
This change fixes an issue where the power in the energy experiments is always reported as zero due to the changes in commit 652b869.
2021-06-15exp: Fix execution of energy experimentsFabian Mastenbroek
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.
2021-06-11simulator: Integrate power subsystem with compute subsystemFabian Mastenbroek
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.
2021-06-09build: Eliminate most Hadoop dependenciesFabian Mastenbroek
This change eliminates all Hadoop dependencies that are not necessary for Parquet to work correctly. As a result, the number of dependencies should now be greatly reduced, which in turn leads to less artifacts that need to be retrieved at build time.
2021-06-09exp: Use LocalOutputFile for Parquet writersFabian Mastenbroek
This change updates the Parquet writers used in the Capelin experiments to use our OutputFile implementation for local files, to reduce our dependency on Apache Hadoop.
2021-06-09exp: Use LocalInputFile for Parquet readersFabian Mastenbroek
This change updates the Parquet readers used in the Capelin experiments to use our InputFile implementation for local files, to reduce our dependency on Apache Hadoop.
2021-06-03exp: Remove Jupyter Notebook from Energy experimentsFabian Mastenbroek
This change removes the Jupyter Notebook that was shipped with the initial version of the Energy21 experiments. At the moment, it is not up to date anymore and we will probably move the plotting facility to the web interface.
2021-06-03simulator: Split CPUFreq subsystem in compute simulatorFabian Mastenbroek
This change splits the functionality present in the CPUFreq subsystem of the compute simulation. Currently, the DVFS functionality is embedded in SimBareMetalMachine. However, this functionality should not exist within the firmware layer of a machine. Instead, the operating system should perform this logic (in OpenDC this should be the hypervisor). Furthermore, this change moves the scaling driver into the power package. The power driver is a machine/firmware specific implementation that computes the power consumption of a machine.
2021-06-02simulator: Start consumers directly from workloadFabian Mastenbroek
This change updates the SimWorkload interfaces to allow implementations to start consumers for the machine resource providers directly.
2021-06-02simulator: Add uniform interface for resource metricsFabian Mastenbroek
This change adds a new interface to the resources library for accessing metrics of resources such as work, demand and overcommitted work. With this change, we do not need an implementation specific listener interface in SimResourceSwitchMaxMin anymore. Another benefit of this approach is that updates will be scheduled more efficiently and progress will only be reported once the system has reached a steady-state for that timestamp.
2021-06-01simulator: Centralize resource logic in SimResourceInterpreterFabian Mastenbroek
This change introduces the SimResourceInterpreter which centralizes the logic for scheduling and interpreting the communication between resource consumer and provider. This approach offers better performance due to avoiding invalidating the state of the resource context when not necessary. Benchmarks show in the best case a 5x performance improvement and at worst a 2x improvement.
2021-05-18chore: Address deprecations due to Kotlin 1.5Fabian Mastenbroek
This change addresses the deprecations that were caused by the migration to Kotlin 1.5.
2021-05-18build: Update to Kotlin 1.5.0Fabian Mastenbroek
2021-05-09exp: Add explanation about experimental nature of moduleFabian Mastenbroek
2021-05-09exp: Implement TensorFlow distribution strategiesWenchen Lai
2021-05-09exp: Model TensorFlow compute devicesWenchen Lai
2021-05-09exp: Add simple network model for TensorFlow experimentsWenchen Lai
2021-05-09exp: Add environments for TensorFlow experimentsWenchen Lai
This change adds the experimental environments that are being used for the TensorFlow on OpenDC experiments.
2021-05-09exp: Add environment reader for TensorFlow experimentsWenchen Lai
This change adds a reader for the environment/topology format that is used for the TensorFlow experiments in OpenDC.
2021-05-09exp: Add model of TensorFlow Keras APIWenchen Lai
This change adds a model of TensorFlow's Keras API to OpenDC.
2021-05-09exp: Add TensorFlow experiment setupWenchen Lai
This change adds the initial experiment setup for the TensorFlow on OpenDC experiments.
2021-05-09serverless: Add support for custom termination policiesSoufiane Jounaid
This change adds support for custom termination policies for function instances. This allows the user to build different strategies for downscaling function instances after they become idle.
2021-05-07build: Use Gradle version catalogFabian Mastenbroek
This change adds support for the Gradle version catalog feature in our build configuration. This allows us to have a single file, gradle/libs.versions.toml, which contains all the dependency versions used in this project.
2021-05-06build: Prevent publishing application modulesFabian Mastenbroek
This change updates the Gradle build configuration so that the application modules (as opposed the libraries) are not published onto Maven Central.
2021-05-06build: Use type-safe project accessorsFabian Mastenbroek
This change updates the build scripts to use type-safe project accessors when specifying build dependencies between modules.
2021-05-05exp: Add support for experiment configurationFabian Mastenbroek
This change adds support for configuring the experiments via configuration files using the TypeSafe config library. In the future, we will also integrate support for configuration into the harness.
2021-05-05harness: Extend Harness CLI with classpath optionsFabian Mastenbroek
This change adds support for appending libraries to the classpath when searching for experiments to run using the OpenDC Harness command line interface.
2021-05-05harness: Split harness into separate modulesFabian Mastenbroek
This change splits the OpenDC Experiment Harness into separate modules. This prevents users from pulling in unnecessary dependencies when depending on the harness API.
2021-05-04exp: Fix aggregation of power drawFabian Mastenbroek
This change fixes the aggregation of the power draw metric. Previously, if the power draw did not change between collection cycles, the power draw would be reported as zero. This change uses OpenTelemetry Views to collect the latest value of the power draw each cycle.
2021-04-25build: Migrate to flat project structureFabian Mastenbroek
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.