summaryrefslogtreecommitdiff
path: root/opendc-compute
AgeCommit message (Collapse)Author
2025-10-17Updated FlowDistributor to use arrays for suppliers instead of maps (#378)Dante Niewenhuis
2025-10-14Improved the performance by removing many invalidates from FlowNodes (#377)Dante Niewenhuis
* Updated the UpDatedConsumer to boolean array * Updated SimTraceWorkload to not invalidate when the next fragment is started. * Removed as much invalidates as possible
2025-10-02Changed the input of "nature" to a boolean to safe space and make loading ↵Dante Niewenhuis
faster. (#375)
2025-10-02Improved FilterScheduler using a constantly sorting array (#374)Dante Niewenhuis
Updated FilterScheduler.kt for performance using a constantly sorted Array
2025-09-26Converted maps in the FlowDistributor to Arrays for performance (#373)Dante Niewenhuis
* Updated the flowDistributor to use arrays instead of maps to improve performance. * Small cleanup
2025-09-26Fixed a small bug that caused duplications in usedHosts in the ↵Dante Niewenhuis
FilterScheduler.kt (#372)
2025-09-25Updated FilterScheduler for performance (#371)Dante Niewenhuis
* Updated FilterScheduler for performance
2025-09-16updated workflow implementation for performance (#368)Dante Niewenhuis
* Updated the workflow system for performance. Added workflow specific tests.
2025-09-15Implements fixes to run m100 traces with GPUs (#362)Niels Thiele
* Updated output format to reduce size * using sum of gpu capacities instead of single max * passing provisioned GPU cores to host view * fix supply update trigger * fixing floating point error, leading to negative demand * fixing double mismatch, due to floating point in precision * adding additional check if demand can be satisfied in the simple way * adds workload invalidation if remaining duration for all resources is 0 * invalidating flow distributors after demand update * spotless apply * updating tests * exporting power consumption of compute resources directly from gpu instead of PSU * using big decimal to avoid floating point in-precision * rolls back to pass-through version of PSU, before GPU implementation * places flowdistributor between PSU and compute resources * adds check to avoid null exception if supply is pushed without demand * fixing task id type * Adds memorizing GPU scheduler * adds boundary for negative remaining work * implemented tests for GPU scheduler filter * Revert "Updated output format to reduce size" This reverts commit 7171de8e0512a863df4962f64560ac7bad1fb48d. * spotless aply --------- Co-authored-by: DanteNiewenhuis <d.niewenhuis@hotmail.com>
2025-07-22Updated workload schema (#360)Dante Niewenhuis
2025-07-16Added Workflows (#359)Dante Niewenhuis
* Implemented Workflows for OpenDC
2025-07-15Implements Virtualization overhead modelling (#357)Niels Thiele
2025-07-15Add configurable resource distribution at host level (#355)Niels Thiele
2025-07-15multi gpu support (#351)Niels Thiele
2025-06-22Implemented Single GPU Support & outline of host-level allocation policies ↵Niels Thiele
(#342) * renamed performance counter to distinguish different resource types * added GPU, modelled similar to CPU * added GPUs to machine model * list of GPUs instead of single instance * renamed memory speed to bandwidth * enabled parsing of GPU resources * split powermodel into cpu and GPU powermodel * added gpu parsing tests * added idea of host level scheduling * added tests for multi gpu parsing * renamed powermodel to cpupowermodel * clarified naming of cpu and gpu components * added resource type to flow suplier and edge * added resourcetype * added GPU components and resource type to fragments * added GPU to workload and updated resource usage retrieval * implemented first version of multi resource * added name to workload * renamed perfomance counters * removed commented out code * removed deprecated comments * included demand and supply into calculations * resolving rebase mismatches * moved resource type from flowedge class to common package * added available resources to machinees * cleaner separation if workload is started of simmachine or vm * Replaced exception with dedicated enum * Only looping over resources that are actually used * using hashmaps to handle resourcetype instead of arrays for readability * fixed condition * tracking finished workloads per resource type * removed resource type from flowedge * made supply and demand distribution resource specific * added power model for GPU * removed unused test setup * removed depracated comments * removed unused parameter * added ID for GPU * added GPUs and GPU performance counters (naively) * implemented capturing of GPU statistics * added reminders for future implementations * renamed properties for better identification * added capturing GPU statistics * implemented first tests for GPUs * unified access to performance counters * added interface for general compute resource handling * implemented multi resource support in simmachine * added individual edge to VM per resource * extended compute resource interface * implemented multi-resource support in PSU * implemented generic retrieval of computeresources * implemented mult-resource suppport in vm * made method use more resource specific * implemented simple GPU tests * rolled back frquency and demand use * made naming independent of used resource * using workloads resources instead of VMs to determine available resource * implemented determination of used resources in workload * removed logging statements * implemented reading from workload * fixed naming for host-level allocation * fixed next deadline calculation * fixed forwarding supply * reduced memory footprint * made GPU powermodel nullable * maded Gpu powermodel configurable in topology * implemented tests for basic gpu scheduler * added gpu properties * implemented weights, filter and simple cpu-gpu scheduler * spotless apply * spotless apply pt. 2 * fixed capitalization * spotless kotlin run * implemented coloumn export * todo update * removed code comments * Merged PerformanceCounter classes into one & removed interface * removed GPU specific powermodel * Rebase master: kept both versions of TopologyFactories * renamed CpuPowermodel to resource independent Powermodel Moved it from Cpu package to power package * implementated default of getResourceType & removed overrides if possible * split getResourceType into Consumer and Supplier * added power as resource type * reduced supply demand from arrayList to single value * combining GPUs into one large GPU, until full multi-gpu support * merged distribution policy enum with corresponding factory * added comment * post-rebase fixes * aligned naming * Added GPU metrics to task output * Updates power resource type to uppercase. Standardizes the `ResourceType.Power` enum to `ResourceType.POWER` for consistency with other resource types and improved readability. * Removes deprecated test assertions Removes commented-out assertions in GPU tests. These assertions are no longer needed and clutter the test code. * Renames MaxMinFairnessStrategy to Policy Renames MaxMinFairnessStrategy to MaxMinFairnessPolicy for clarity and consistency with naming conventions. This change affects the factory and distributor to use the updated name. * applies spotless * nulls GPUs as it is not used
2025-06-20Task now saves the hostName of connected host, until a new Host is selected. ↵Dante Niewenhuis
(#347)
2025-06-16integrated M3SA, updated with tests and CpuPowerModelsRadu Nicolae
2025-05-20Fixed bug when not providing a Carbon Model (#339)Dante Niewenhuis
2025-05-16Updated website documentation (#334)Dante Niewenhuis
* Updated website documentation * Updated some documentation and fixed links * small updates * small updates
2025-04-02Separate timeshift into an interface and add it to memorizing (#329)Sacheendra Talluri
* Separate timeshift into an interface and add it to memorizing * Run spotless apply * Remove random from memorizing sched test * Record time on task termination * spotless apply
2025-03-29Fixed a small problem with getForeCast (#328)Dante Niewenhuis
* Fixed a small problem with carbon forecasts that would cause problems when the simulation would leave the coverage of the carbon Trace * Fixed a small problem with carbon forecasts that would cause problems when the simulation would leave the coverage of the carbon Trace * Fixed a bug * spotless applied
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-21WorkloadLoader fix (#321)Dante Niewenhuis
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-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-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-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-06Fixed small problem with tasks that are too large to schedule never ↵Dante Niewenhuis
finishing. (#264)
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