summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-03-30attempt to fix the deploy of the new UI setup (#394)vincent van beek
2026-03-27Add import topology (#393)vincent van beek
* add a the posibility to import and export topogies in JSON format * fix web-runner integration, there were several bugs and mismatches between new implementations in OpenDC and the UI
2026-03-27add prefabs for racks (#392)vincent van beek
* add prefabs for racks
2026-03-26Use Quarkus Quinoa for serving web UI (#391)vincent van beek
* refactor(web): Migrate to Quarkus 3 This commit updates the OpenDC web server to use Quarkus 3, which changes annotations to use the Jakarta namespace for annotations. * refactor(web): Configure runtime variables for web UI This commit updates the web UI to propagate runtime variables via the next-runtime-env package. Before, we would need to replace the variables in the generated sources by Next.js, next-runtime-env works by loading a JavaScript file when opening the OpenDC web UI which contains the configuration of the web app. * refactor(web): Migrate to Quarkus Quinoa This commit updates the OpenDC web server to make use of Quarkus Quinoa for serving the web UI. This allows us to deprecate the complex Quarkus extension for serving the web UI. * refactor(web): Move web UI into Quarkus web app This commit moves the web UI into the Quarkus web server module to ensure we follow Quarkus Quinoa's conventions. * refactor(web): Merge Quarkus extension into single module This commit merges the existing Quarkus extensions into a single module to prevent build complexity. * refactor(web): Migrate web proto to Java This commit migrates the web protocol to Java and removes the dependency on Jandex Gradle. * refactor(web): Migrate to Quarkus 3 This commit updates the OpenDC web server to use Quarkus 3, which changes annotations to use the Jakarta namespace for annotations. * enable DB schema migration on DEV server * webui is not needed anymore * remove MAINTAINERS is depricated * fix quarkus.quinoa properties * revert properties change, install npm in docker image to allow building the frontend * pin postgres version, this is a best practice. Fix some properties the old ones are depricated. Added properties for local testing * fix build error * :opendc-web:opendc-web-proto:spotlessApply * fix database schema --------- Co-authored-by: Fabian Mastenbroek <mail.fabianm@gmail.com>
2026-03-13Merge pull request #389 from ↵Radu Nicolae
vlogic/add-feature-to-check-available-memory-on-simhosts Refactor `SimHost` for improved memory tracking, error handling, and …
2026-03-13minor fixvincent
2026-03-13add tests for the new memory check featurevincent
2026-03-13Refactor `SimHost` for improved memory tracking, error handling, and task ↵vincent van beek
state management.
2026-01-09Fixed a bug that caused tasked to run much longer when supply was changed ↵Dante Niewenhuis
during runtime. (#386)
2025-11-26Fixed a small bug in the reading of workflows (#382)Dante Niewenhuis
* Fixed a small bug in the reading of workflows * small update * Pushing workload files needed for ExperimentCliTest 3
2025-11-13Updated the checkpointModel and OnUpdate of SimTraceWorkload (#380)Dante Niewenhuis
2025-11-04Memory update (#379)Dante Niewenhuis
* Updated the memory usage of Tasks. Still in Progress. * Merged Task and ServiceTask -> Currently not fully working!!! * Fixed bugs that made the merger between Task and ServiceTask not work well. * Updated jdk version for Dockerfile * Removed ServiceFlavor.java and Task.kt
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`)