summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator
AgeCommit message (Collapse)Author
2025-03-27Support carbon forecasting in timeshift (#327)Sacheendra Talluri
* Remove task from scheduler bookkeeping after failure * Support carbon forecasting in timeshift * Register scheduler and carbonmodel in context * Preliminary working task stopping; carbon intensity bug * Working carbon based stop. Two timeshift thresholds * Add a pause state task and guest * Move task stopper to allocation spec * Start tracking num pauses
2025-03-24Added embodied carbon to hosts (#326)Dante Niewenhuis
2025-03-24Updated AllocationPolicy input (#324)Dante Niewenhuis
2025-03-22Shift task execution to the valley of carbon emissions (#323)Sacheendra Talluri
* Move shifted task execution to the valley of carbon emissions * Remove error from compute service * spotless apply * Run scheduling cycle everytime carbon intensity updates
2025-03-20Renamed SimChainWorkload to VirtualMachine (#320)Dante Niewenhuis
* Renamed SimChainWorkload.java to VirtualMachine.java * Renamed SimChainWorkload.java to VirtualMachine.java * Renamed SimChainWorkload.java to VirtualMachine.java * Renamed SimChainWorkload.java to VirtualMachine.java * Renamed SimChainWorkload.java to VirtualMachine.java
2025-03-20Adds load shifting over time (#319)Sacheendra Talluri
* Start time shifting * Existing experiments work with new columns * Remove unused traces dir * Update java to 21 LTS and jacoco to be compatible * Minimal working timeshifting * Timeshift scheduler linked as carbon receiver * Add basic tests for timeshift scheduler * Run spotless apply * Modify tarce format tests to support new fields * Change all mentions of java 19 to 21 * Add a deferAll option to workload to make all tasks deferrable * Run spotless apply * Copy traces from resources in web dockerfile
2025-03-18Made some changes to improve RAM of OpenDC (#318)Dante Niewenhuis
2025-03-18Fixed memorizing scheduler with correct last elem check (#317)Sacheendra Talluri
* Fixed memorizing scheduler with correct last elem check * Fix spotless complaints
2025-03-18Performance updates (#314)Dante Niewenhuis
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-10added embodied carbon (#303)Dante Niewenhuis
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-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-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-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-26Connected the cpu power model given by the topology.json to SimCpu.java (#274)Dante Niewenhuis
* Connected the cpu power model given by the topology.json to SimCpu.java * ran spotless
2024-11-26Streamlined the FlowNetwork for better performance (#273)Dante Niewenhuis
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-06Fixed small problem with tasks that are too large to schedule never ↵Dante Niewenhuis
finishing. (#264)
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-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-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-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-04-29Fixed several cpu related bugs, changed input topology (#226)Dante Niewenhuis
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-05Cpu fix (#208)Dante Niewenhuis
* Updated the topology format to JSON. Updated TopologyReader.kt to handle JSON filed. Added documentation for the new format. * applied spotless kotlin * small update * Updated for spotless apply * Updated for spotless apply
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-02-16Metric update (#205)Dante Niewenhuis
* Updated metrics to consistently be ms * Updated metrics to consistently be ms * Updated metric documentation on the site * Updated some tests to work with the updated metrics
2024-02-14Updated metrics and parquet output (#195)Dante Niewenhuis
* Updated metrics and parquet output * fixed typos
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
2023-12-14Updated tests to run successfully (#187)Dante Niewenhuis
* made sure all tests run * fixed typo * executed spotlessApply * added back web-server tests * updated SimTraceWorkloadTest * commented CapelinRunneer and GreenifierRunner tests * commented one SimTraceWorkloadTest * altered codecov execution * changed codecov
2023-11-14Updated TraceReader, Simulation now continues until all tasks are doneDante Niewenhuis
2022-11-27refactor(compute/service): Do not split interface and implementationFabian Mastenbroek
This change inlines the implementation of the compute service into the `ComputeService` interface. We do not intend to provide multiple implementations of the service. In addition, this approach makes more sense for a Java implementation.
2022-11-27refactor(compute/api): Do not suspend in compute APIFabian Mastenbroek
This change updates the API interface of the OpenDC Compute service to not suspend execution using Kotlin Coroutines. The suspending modifiers were introduced in case the ComputeClient would communicate with the service over a network connection. However, the main use-case has been together with the ComputeService, where the suspending modifiers only frustrate the user experience when writing experiments. Furthermore, with the advent of Project Loom, it is not necessarily a problem to block the (virtual) thread during network communications.
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.