Implements Virtualization overhead modelling#357
Merged
DanteNiewenhuis merged 11 commits intoJul 15, 2025
Merged
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #357 +/- ##
============================================
+ Coverage 63.00% 63.02% +0.01%
Complexity 51 51
============================================
Files 357 361 +4
Lines 12560 12642 +82
Branches 1307 1317 +10
============================================
+ Hits 7914 7968 +54
- Misses 4192 4210 +18
- Partials 454 464 +10 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Extends the Parquet export functionality to support an arbitrary number of GPUs. This change introduces a new function `withGpuColumns` to `ComputeExportConfig` that dynamically generates the necessary export columns based on the number of GPUs. The existing hardcoded GPU columns are replaced by a new `gpuColumns` function that generates a set of export columns based on the index of the GPU. This enhancement allows users to collect detailed telemetry data for each GPU present in the simulated environment, improving the accuracy and granularity of performance analysis.
Refactors the GPU statistics reporting mechanism to provide a single, aggregated view instead of a list of individual statistics. This change simplifies data access and reduces complexity in downstream processing, allowing for clearer and more efficient analysis of GPU usage. The task export columns are updated to reflect this change.
Changes the flow distribution mechanism to leverage a factory for creating distributors based on specified policies. This enhances modularity and allows for easy switching between different distribution strategies (e.g., MaxMinFairness, FixedShare) without modifying core components. The previous implementation used a hardcoded `FlowDistributor` and now uses `FlowDistributorFactory` to obtain the distributor based on the specified distribution policy.
This commit introduces configurable flow distribution policies for CPU and GPU resources within the OpenDC compute topology. It allows users to specify different distribution strategies, such as MAX_MIN_FAIRNESS, EQUAL_SHARE, and FIXED_SHARE, for managing resource allocation among virtual machines. This configuration is exposed via the topology JSON specification to allow users to experiment with the effect of these different policies. A new test case validates the correct behavior of the EQUAL_SHARE distribution policy.
Adds flow distribution policies for CPU and GPU resources, including EqualShare and FixedShare, to optimize resource allocation. Also includes test cases for the different distribution policies.
Introduces support for specifying GPU virtualization overhead models in the topology configuration. This enhancement enables users to simulate the performance impact of virtualization on GPU resources, including: - No overhead - Constant overhead: A fixed percentage overhead. - Share-based overhead: Overhead is proportional to the number of VMs. Adds corresponding test cases to ensure the correct application of different overhead models.
963b1f2 to
7904fca
Compare
DanteNiewenhuis
approved these changes
Jul 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
** This PR depends on the PR 355 **
Summary
Implements performance degradation through virtualization for GPUs. Offers 3 different models, No virtualization overhead as the default, Constant performance degradation, with an optionally customizable percentage overhead. And a share based overhead, proportionally to the number of consumer attached to the GPU.
Implementation Notes ⚒️
External Dependencies 🍀
Breaking API Changes⚠️
Simply specify none (N/A) if not applicable.