summaryrefslogtreecommitdiff
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-03Removed a bug in MaxMinFlowDistributor. (#376)Dante Niewenhuis
* Small update to the FLowDistributor
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-17Updated the performance of multi-resource simulation (#369)Dante Niewenhuis
* Updated the multi-resource system from maps to arrays 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-24Uncommented code (#361)Dante Niewenhuis
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-19Removing gh-pages site from master branch (#338)Dante Niewenhuis
* Removing site from master branch * Updated README.md
2025-05-16Updated website documentation (#334)Dante Niewenhuis
* Updated website documentation * Updated some documentation and fixed links * small updates * small updates
2025-04-09Use failure model in checkpoint tests (#332)Sacheendra Talluri
2025-04-04Small update to the snapshot (#330)Dante Niewenhuis
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-21Fixed a small bug that made idle host consume no energy at the start (#322)Dante Niewenhuis
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-19add how to for using intellij (#305)vincent van beek
2025-03-18Made some changes to improve RAM of OpenDC (#318)Dante Niewenhuis
2025-03-18Unit System v2 (#243)Alessio Leonardo Tomei
* Separated `Time` unit into `TimeDelta` and `TimeStamp` + small fixes Addition and subtruction between `Timestamp`s is not allowed, but any other `Unit` operation/comparison is. `TimeDelta`s can be added/subtructed to/form `Timestamp`s. Deserialization of `Timestamp`: - `Number` -> interpreted as millis from Epoch - `Instant` (string representation) -> converted to Timestamp - `Duration` (string representation) -> interpreted as duration since Epoch (warn msg is logged) Deserialization of `TimeDelta` is the same as `Time` was before, with the diference that when an `Instant` is converted to an timedelta since Epoch a warning message is logged. * Unit System v2 - Merged `BoundedPercentage` and `UnboundedPercentage` - Overrided all operation defined in `Unit` in all subclasses to avoid as much as possible value classes being boxed in bytecode. If units are used as generics (hence also functions defined in Unit<T>) they are boxed (as double would if used as generic). - All units companions now subclass `UnitId`, and can be used as keys (e.g `Map<UnitId, idk>`), while offering `max` `min` and `zero` methods. - Division between the same unit now returns `Percentage` - Added `Iterable<T>.averageOfUnitOrNull(selector (T) -> <specific unit>)` - `ifNeg0ThenPos0()` now is optional and not invoked on every constructor - Now methods in `Unit<T>` are all abstract, forcing override and avoid boxing in some cases - Added `@UnintendedOperation` and `UnitOperationException` for methods that must be defined but are not intended for use (e.g. `Timestamp` + `Timestamp`)
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-03-06Small update to the README (#311)Dante Niewenhuis
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-17Fixed bugs (#304)Dante Niewenhuis
2025-02-10added embodied carbon (#303)Dante Niewenhuis
2025-02-06Added a way to execution the release and publish scripts directly from ↵Dante Niewenhuis
github (#302)
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-31Updated the FlowEventQueue to be easier to understand (#299)Dante Niewenhuis
2025-01-24Updated all out of date github actions (#298)Dante Niewenhuis