summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base/src
AgeCommit message (Collapse)Author
2025-03-14Added more battery policies (#312)Dante Niewenhuis
* some updates * Updates * Added comments and renamed variables * Ran Spotless
2025-02-18Added the option to select which files to export. (#307)Dante Niewenhuis
* Added the option to select which files to export. * Updated documentation
2025-02-06updated logging and added logging for batteries (#301)Dante Niewenhuis
* Updated logging * removed DoubleThresholdBatteryPolicy.java
2025-02-03Added Batteries (#300)Dante Niewenhuis
* Batteries are implemented. Small problem with the deletion when running larger workloads. Added mock files for the Battery implementation. Updated the Carbon Model to allow for multiple receivers of CarbonIntensity * Implemented batteries in OpenDC. * Spotless applied
2025-01-24Added Fragment scaling (#296)Dante Niewenhuis
* Added maxCpuDemand to TraceWorkload, don't know if this will be needed so might remove later. Updated SimTraceWorkload to properly handle creating checkpoints Fixed a bug with the updatedConsumers in the FlowDistributor Implemented a first version of scaling the runtime of fragments. * small update * updated tests to reflect the changes in the checkpointing model * Updated the checkpointing tests to reflect the changes made * updated wrapper-validation-action * Applied spotless
2025-01-23Added sampleFraction and submissionTime to the workloadSpec (#295)Dante Niewenhuis
* Added sampleFraction and submissionTime to the workloadSpec * Removed commented code
2025-01-22Simplified the WorkloadLoader into a single class that can be extended when ↵Dante Niewenhuis
new workload types are added (#294)
2025-01-17added carbon tests (#292)Dante Niewenhuis
* Initial push * Added carbon tests * spotless * small update to test * Updated build file * Updated build file * small test * small update * Test * Test * Updated CarbonTraces to UTC. updated the tests accordingly * spotless
2025-01-16Add support for schedulers which can receive task state change updates (#290)Sacheendra Talluri
* Change scheduler API to include task removal and add tests * Check if memorizing schduler works with the whole system * Spotless apply * Expand function name and improve documentation
2025-01-10Fixed a small bug in the Power Source (#289)Dante Niewenhuis
* Fixed a small bug which caused the PowerSource to not always report the correct energy usage * spotless
2025-01-10Restructured Testing files (#287)Dante Niewenhuis
2025-01-07Updated the FlowDistributor (#285)Dante Niewenhuis
* Updated the FlowDistributor to work in more cases and be more performant. * Removed old FlowDistributor
2024-12-06Renamed Multiplexer to FlowDistributor (#282)Dante Niewenhuis
* Restructured opendc-simulator-flow. Renamed Multiplexer to FlowDistributor. * spotless applied * Added FlowDistributor topologies back
2024-12-06refactored the MultiplexerTest to not need parquet files anymore (#281)Dante Niewenhuis
2024-12-06Added 9 new tests specifically testing the Multiplexer. This assumes the ↵Dante Niewenhuis
Multiplexer is using MaxMinFairness given that this is currently the default and only fairness available in OpenDC. (#280)
2024-11-29Multiplexer update (#278)Dante Niewenhuis
* Fixed the Multiplexer.java to properly divide the supply over the different consumers. Fixed a bug where fragments were being loaded in reversed order. * Optimized the Multiplexer.java, by only updating the supply of the consumer that updated its demand when possible.
2024-11-29Fixed a bug where fragments were being loaded in reversed order. (#276)Dante Niewenhuis
2024-11-26Streamlined the FlowNetwork for better performance (#273)Dante Niewenhuis
2024-11-19Small update to trace-based failure models (#271)Dante Niewenhuis
* Added startPoint to TraceBasedFailureModel.kt, this decides where in the trace, the model should start. Added repeat to TraceBasedFailureModel.kt. This decides if the trace should be repeated when finished * spotless applied * Fixed some issues with the failure shuffling * applied spotless
2024-11-07Fixed power source bug (#265)Dante Niewenhuis
* Fixed a small bug making the power source not update energy usage properly * small update to the test
2024-11-05Documentation update (#261)Dante Niewenhuis
* Updated a lot of documentation, added a new get-started tutorial. * Applied Spotless * Applied Spotless Java * Added bitbrains workload to site
2024-11-03Rewritten the Carbon model (#260)Dante Niewenhuis
2024-11-01Updated computeService to force the simulation to stop when all tasks are ↵Dante Niewenhuis
finished (#259)
2024-10-30Added power sources to OpenDC (#258)Dante Niewenhuis
* Added power sources to OpenDC. In the current form each Cluster has a single power source that is connected to all hosts in that cluster * Added power sources to OpenDC. In the current form each Cluster has a single power source that is connected to all hosts in that cluster * Ran spotless Kotlin and Java
2024-10-29Updated all floats to Doubles (#257)Dante Niewenhuis
* Updated tests Changed all floats into doubles to have consistency over the whole framework Made a small update to the multiplexer to better push through supply and demand Fixed small typo Updated M3SA paths. fixed merge conflicts Removed unused components. Updated tests. Improved checkpointing model Improved model, started with SimPowerSource implemented FailureModels and Checkpointing First working version midway commit first update All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. * Updated test memory
2024-10-25Rewrote the FlowEngine (#256)Dante Niewenhuis
* Removed unused components. Updated tests. Improved checkpointing model Improved model, started with SimPowerSource implemented FailureModels and Checkpointing First working version midway commit first update All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. * fixed merge conflicts * Updated M3SA paths. * Fixed small typo
2024-10-25M3SA - Multi-Meta-Model Simulation Analyzer (#251)Radu Nicolae
* (feat) demo files are now ignored * integrating m3sa changes with opendc * gitignore ignores demo * m3sa linked, tested, works 🎉🎆 * linting & checks fully pass * m3sa documentation (re...)added * package.json added, a potentail solution for Build Docker Images workflow * (fix) opendc-m3sa renamed to opendc-experiments-m3sa * (feat) Model is now a dataclass * (fix) package and package-lock reverted as before the PR, now they mirror the opendc master branch * (fix) Experiments renamed to experiment * branch updated with changes from master branch * trying to fix the build docker image failed workflow * trying to fix the build docker image failed workflow * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#37) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#38) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#39) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * [TEMP](feat) m3saCli decoupled from experimentCli * spotless and minor refactoring * (feat)[TEMP] decoupling m3sa from experiment * spotless applied * documentation resolved * requirements.txt added * path to M3SA is now provided as a parameter to M3SACLI * spotless applied * (fix) python environment variables solved, output analysis folder solved * documentation changed and matching the master branch doc * package-lock reverted * package-lock reverted --------- Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com>
2024-09-16All simulation are now run with a single CPU and single MemoryUnit. multi ↵Dante Niewenhuis
CPUs are combined into one. This is for performance and explainability. (#255)
2024-09-12Added max number of failures (#254)Dante Niewenhuis
* Added a max failure for tasks. If tasks fail more times, they get cancelled * Added maxNumFailures to the frontend * Updated tests
2024-09-10rewritten the checkpointing model (#250)Dante Niewenhuis
* Updated the checkpointing system to use SimTrace. The checkpoint model can now also scale, which means the interval between checkpoints can increase or decrease over time. * spotless kotlin * Fixed tests * spotless apply
2024-09-05Sim trace update (#249)Dante Niewenhuis
* Started on reimplementing the SimTrace implementation * updated trace format. Fragments now do not have a deadline, but a duration. The Fragments are executed in order.
2024-08-29Renamed Scenario to Experiment. A Scenario is now defined as a single setup. ↵Dante Niewenhuis
An experiment is a set of Scenarios. (#247)
2024-08-27Renamed input files and internally server is changed to task (#246)Dante Niewenhuis
* Updated SimTrace to use a single ArrayDeque instead of three separate lists for deadline, cpuUsage, and coreCount * Renamed input files to tasks.parquet and fragments.parquet. Renamed server to task. OpenDC nows exports tasks.parquet instead of server.parquet
2024-08-22Refactored exporters. Allows output column selection in scenario (#241) (#241)Alessio Leonardo Tomei
2024-07-31updated ScenarioFactory and ScenarioSpec (#239)Dante Niewenhuis
* Initial Push * Refactored the cartesian implementation of ScenariosSpec.kt * Fixed typo * Some small updates * ran spotless
2024-07-12Merged experiment-scenario and experiment-base by moving ScenarioCli.kt to ↵Dante Niewenhuis
experiment-base. Renamed the distribution of experiment-base to OpenDCScenarioRunner (#236)
2024-06-17Fixed CPU limit problem (#234)Dante Niewenhuis
* Fixed a problem which caused the CPU limit to be much lower than it should be. AllocationPolicy is now properly exposed to the user * Fixed tests * spotless kotlin
2024-05-07Revamped failure models (#228)Dante Niewenhuis
2024-05-01Output folder structure (#225)Radu Nicolae
* unversioned demo - removed from git history unversioned filed pushed spotless applied code cleaned up commit before pr spotless applied setupOutputFolder moved before getting the scenarios specific topology added pretty tracking given scenarios are kept track by id code runnable output name for scenario updated python folder and src document connected simulationOutputFolder structure prepared base for python script integration in simulations output contents into a folder defined by the simulation name output contents into a folder defined by the simulation name * bugs with trackr.json (id not showing) solved. outputting bug also solved (now we use the output folder indicated in scenario.json input file) * spotless applied, ready for PR * var -> val in Scenario * ScenarioWriter package naming repaired
2024-04-29Reworked Scenario.kt to consist of only specifications. The Specs are turned ↵Dante Niewenhuis
into objects when the scenario is being executed by ScenarioRunner.kt (#227)
2024-04-29Fixed several cpu related bugs, changed input topology (#226)Dante Niewenhuis
2024-04-22returned the carbon traces to the scenarioSpec (#223)Dante Niewenhuis
2024-04-22Updated the power models and added tests (#222)Dante Niewenhuis
* Updated the power models and added tests * Updated test topologies
2024-04-22Merged scenario and portfolio (#220)Radu Nicolae
* sync with the master branch * rebase * multimodel - simulation is currently run as many times as you can see a model * factory method - handles models without given params * removed redundant flags * modelType * flags removed * implemented output into a folder * multimodel ipynb setup - to be implemented and also ran as a python script, when the simulation occurs * towards a mutimodel python implementation - issue observed - the saved files have same data? * json parsing handles now lists for topology, workloads, allocaitonPolicies, powerModels * scenarioFile inputs lists, and creates multiple combinations of scenarios * multi-model prediction repaired, now we predict using multiple models * commit before removing powerModel from scenario * commit after removing powerModel from scenario * commit after removing powerModel from scenario (and actually running) * powermodels now can output their name and full name (with min and max) * now we can select where to output (seed or output folder) * input files - clear naming + output naming improved * minimal changes * all tests passing + json files from tests updated to the new json format * json files from topology now accept only one power model (instead of list) * json files from topology now accept only one power model (instead of list) * multi and single input from tests updated to match the format * tests passed locally * spotless applies * demo folder removed
2024-04-17Added support for carbon traces (#218)Dante Niewenhuis
* Started with the carbon trace implementation * Moved the carbon trace system to the proper folders
2024-04-11Added absolute timestamp based on the given workload to the output files (#215)Dante Niewenhuis
2024-03-19Scenario and Portfolio update (#209)Dante Niewenhuis
* Initial commit * Implemented a new systems of defining and running scenarios / portfolios. Scenarios and Portfolios can now be defined using JSON files similar to topologies. This allows user to define experiments without changing any KotLin code. * Ran spotlessApply
2024-03-05Updated package versions, updated web server tests. (#207)Dante Niewenhuis
* Updated all package versions including kotlin. Updated all web-server tests to run. * Changed the java version of the tests. OpenDC now only supports java 19. * small update * test update * new update * updated docker version to 19 * updated docker version to 19
2024-01-08refactored opendc-experiment-compute (#190)Dante Niewenhuis
* removed experiment-compute and integrated all components into opendc-compute * updated workflow gradle file * removed unneeded code
2022-11-13refactor: Replace use of CoroutineContext by DispatcherFabian Mastenbroek
This change replaces the use of `CoroutineContext` for passing the `SimulationDispatcher` across the different modules of OpenDC by the lightweight `Dispatcher` interface of the OpenDC common module.