-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft: Update core assignment algorithm in benchexec/resources.py #892
base: main
Are you sure you want to change the base?
Commits on Jan 13, 2023
-
Assigmnment algorithm redesign
Charlie committedJan 13, 2023 Configuration menu - View commit details
-
Copy full SHA for 3bee91d - Browse repository at this point
Copy the full SHA 3bee91dView commit details
Commits on Jan 16, 2023
-
Added spreading of runs to assigment algorithm
Charlie committedJan 16, 2023 Configuration menu - View commit details
-
Copy full SHA for 327d882 - Browse repository at this point
Copy the full SHA 327d882View commit details
Commits on Feb 2, 2023
-
Merge branch 'main' into resources-update-core-assignment
Charlie committedFeb 2, 2023 Configuration menu - View commit details
-
Copy full SHA for 30fe0db - Browse repository at this point
Copy the full SHA 30fe0dbView commit details
Commits on Feb 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6ee6ef3 - Browse repository at this point
Copy the full SHA 6ee6ef3View commit details -
Configuration menu - View commit details
-
Copy full SHA for bb281b0 - Browse repository at this point
Copy the full SHA bb281b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for f540424 - Browse repository at this point
Copy the full SHA f540424View commit details -
This method adds a "root" hierarchy level, if the system topology doesnt have one. Necessary for iterating through the whole topology.
Configuration menu - View commit details
-
Copy full SHA for 59c6e7d - Browse repository at this point
Copy the full SHA 59c6e7dView commit details -
now chooses the right starting core for the next thread
Configuration menu - View commit details
-
Copy full SHA for 52fec71 - Browse repository at this point
Copy the full SHA 52fec71View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2c2a2f - Browse repository at this point
Copy the full SHA e2c2a2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcf7e34 - Browse repository at this point
Copy the full SHA fcf7e34View commit details -
Configuration menu - View commit details
-
Copy full SHA for ce795b6 - Browse repository at this point
Copy the full SHA ce795b6View commit details
Commits on Feb 8, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7f06e78 - Browse repository at this point
Copy the full SHA 7f06e78View commit details -
Configuration menu - View commit details
-
Copy full SHA for 869554e - Browse repository at this point
Copy the full SHA 869554eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 212e25d - Browse repository at this point
Copy the full SHA 212e25dView commit details -
Configuration menu - View commit details
-
Copy full SHA for fab1fca - Browse repository at this point
Copy the full SHA fab1fcaView commit details
Commits on Feb 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8be832e - Browse repository at this point
Copy the full SHA 8be832eView commit details
Commits on Feb 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c69d56d - Browse repository at this point
Copy the full SHA c69d56dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 45e5446 - Browse repository at this point
Copy the full SHA 45e5446View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7257975 - Browse repository at this point
Copy the full SHA 7257975View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b06ee8 - Browse repository at this point
Copy the full SHA 7b06ee8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d07ad8 - Browse repository at this point
Copy the full SHA 8d07ad8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9a0a940 - Browse repository at this point
Copy the full SHA 9a0a940View commit details
Commits on Feb 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for db390c2 - Browse repository at this point
Copy the full SHA db390c2View commit details
Commits on Feb 22, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e2c1e9c - Browse repository at this point
Copy the full SHA e2c1e9cView commit details
Commits on Apr 18, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8cce256 - Browse repository at this point
Copy the full SHA 8cce256View commit details
Commits on Apr 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7eacff1 - Browse repository at this point
Copy the full SHA 7eacff1View commit details
Commits on Apr 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for ecc82cc - Browse repository at this point
Copy the full SHA ecc82ccView commit details
Commits on Apr 25, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 943aaeb - Browse repository at this point
Copy the full SHA 943aaebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5af1a05 - Browse repository at this point
Copy the full SHA 5af1a05View commit details
Commits on May 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 81e1cb8 - Browse repository at this point
Copy the full SHA 81e1cb8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 12d98e6 - Browse repository at this point
Copy the full SHA 12d98e6View commit details
Commits on May 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for de87686 - Browse repository at this point
Copy the full SHA de87686View commit details -
Configuration menu - View commit details
-
Copy full SHA for ec4d37f - Browse repository at this point
Copy the full SHA ec4d37fView commit details
Commits on May 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a7128fd - Browse repository at this point
Copy the full SHA a7128fdView commit details
Commits on May 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1eee161 - Browse repository at this point
Copy the full SHA 1eee161View commit details
Commits on May 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0678ac6 - Browse repository at this point
Copy the full SHA 0678ac6View commit details
Commits on May 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 91eb8e1 - Browse repository at this point
Copy the full SHA 91eb8e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9133f1a - Browse repository at this point
Copy the full SHA 9133f1aView commit details -
Configuration menu - View commit details
-
Copy full SHA for cb63077 - Browse repository at this point
Copy the full SHA cb63077View commit details -
Configuration menu - View commit details
-
Copy full SHA for 199092e - Browse repository at this point
Copy the full SHA 199092eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4dccc5c - Browse repository at this point
Copy the full SHA 4dccc5cView commit details
Commits on May 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for d4e9cd4 - Browse repository at this point
Copy the full SHA d4e9cd4View commit details -
3
Configuration menu - View commit details
-
Copy full SHA for c90ba59 - Browse repository at this point
Copy the full SHA c90ba59View commit details
Commits on Jun 1, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7fa011d - Browse repository at this point
Copy the full SHA 7fa011dView commit details -
Configuration menu - View commit details
-
Copy full SHA for b0a9077 - Browse repository at this point
Copy the full SHA b0a9077View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2848667 - Browse repository at this point
Copy the full SHA 2848667View commit details -
Configuration menu - View commit details
-
Copy full SHA for fcbddda - Browse repository at this point
Copy the full SHA fcbdddaView commit details
Commits on Jun 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for fbf8f5e - Browse repository at this point
Copy the full SHA fbf8f5eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 25f7831 - Browse repository at this point
Copy the full SHA 25f7831View commit details
Commits on Jun 15, 2023
-
Refactoring: generic mapping function added, coreSet filter for HT si…
…blings mapping added
Configuration menu - View commit details
-
Copy full SHA for 4b5c084 - Browse repository at this point
Copy the full SHA 4b5c084View commit details -
Configuration menu - View commit details
-
Copy full SHA for fc342a7 - Browse repository at this point
Copy the full SHA fc342a7View commit details
Commits on Jun 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b9046d9 - Browse repository at this point
Copy the full SHA b9046d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8dd1b26 - Browse repository at this point
Copy the full SHA 8dd1b26View commit details
Commits on Jun 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0689df5 - Browse repository at this point
Copy the full SHA 0689df5View commit details
Commits on Jun 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 54c8071 - Browse repository at this point
Copy the full SHA 54c8071View commit details -
Configuration menu - View commit details
-
Copy full SHA for b125edc - Browse repository at this point
Copy the full SHA b125edcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 60a33c1 - Browse repository at this point
Copy the full SHA 60a33c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02bf24e - Browse repository at this point
Copy the full SHA 02bf24eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6cd17ea - Browse repository at this point
Copy the full SHA 6cd17eaView commit details
Commits on Jun 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a136fec - Browse repository at this point
Copy the full SHA a136fecView commit details
Commits on Jul 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 72106ce - Browse repository at this point
Copy the full SHA 72106ceView commit details
Commits on Dec 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4ae8420 - Browse repository at this point
Copy the full SHA 4ae8420View commit details
Commits on Jan 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4cf26e0 - Browse repository at this point
Copy the full SHA 4cf26e0View commit details -
Remove type checks, Python encourages duck typing
Also turn value checks into asserts, as this is an internal method. This fixes complaints from Ruff.
Configuration menu - View commit details
-
Copy full SHA for 2f3f964 - Browse repository at this point
Copy the full SHA 2f3f964View commit details
Commits on Feb 14, 2024
-
Add some assertions about structure and content of hierarchy_levels
This helps us to be more convinced that the data structures created by the unit tests are the same as in real use.
Configuration menu - View commit details
-
Copy full SHA for 53702f9 - Browse repository at this point
Copy the full SHA 53702f9View commit details -
Refactoring: Don't pass siblings_of_core around
This is redundant because hierarchy_levels[0] is the same and there is only effort to keep the two in sync.
Configuration menu - View commit details
-
Copy full SHA for d045bc5 - Browse repository at this point
Copy the full SHA d045bc5View commit details -
Simplify creation of hierarchy levels
- First create the final list of hierarchy levels, then create the VirtualCore objects. Previously one level was potentially created afterwards and needed adjustments to the VirtualCore objects. - Always insert root level and rely on the filter that we use anyway to remove it if necessary. This is the same strategy that we use for the siblings_of_core level and thus easier to follow.
Configuration menu - View commit details
-
Copy full SHA for a00ede6 - Browse repository at this point
Copy the full SHA a00ede6View commit details -
Refactoring: Move creation of VirtualCores into get_cpu_cores_per_run
All the information in these instances is also present in hierarchy_levels, it is just a more convenient way to access it. Creating it locally makes it easier to write tests.
Configuration menu - View commit details
-
Copy full SHA for 1e5c166 - Browse repository at this point
Copy the full SHA 1e5c166View commit details -
Restore tests for core allocation from main branch
Because the tests were changed significantly together with the implementation of the core allocation in this branch, it is hard to see whether the tests still test the same things. But we want regression tests that ensure that the new allocation behaves in the same way. So we restore the old tests and keep the new tests in a separate file until we are sure that there are no regressions, and then we can unify the test suites. For now the old tests fail due to API changes, this will be adapted next.
Configuration menu - View commit details
-
Copy full SHA for b9e1f5d - Browse repository at this point
Copy the full SHA b9e1f5dView commit details -
Perform technical adjustments to old test suite for core allocation
This makes most of the tests succeed, but some still fail. Potentially some further adjustments are needed, but there is also one regression (https://github.com/sosy-lab/benchexec/pull/892/files#r1229136970).
Configuration menu - View commit details
-
Copy full SHA for ce10795 - Browse repository at this point
Copy the full SHA ce10795View commit details -
Remove a test that is no longer relevant
The new get_cpu_distribution method has no information about partial physical cores anymore, this is checked outside of it.
Configuration menu - View commit details
-
Copy full SHA for ef13d2a - Browse repository at this point
Copy the full SHA ef13d2aView commit details -
Temporarily disable some tests that need to be investigated or fixed
It is better to have CI green to be able to notice further regressions.
Configuration menu - View commit details
-
Copy full SHA for deae4ac - Browse repository at this point
Copy the full SHA deae4acView commit details -
Fix crash for machines with a single NUMA node in get_closest_nodes
Also add unit tests for this function.
Configuration menu - View commit details
-
Copy full SHA for fd58f75 - Browse repository at this point
Copy the full SHA fd58f75View commit details -
Configuration menu - View commit details
-
Copy full SHA for f657e9a - Browse repository at this point
Copy the full SHA f657e9aView commit details -
Also do not use "raise Exception", use assert to encode coding assumptions.
Configuration menu - View commit details
-
Copy full SHA for 8b55c58 - Browse repository at this point
Copy the full SHA 8b55c58View commit details -
Configuration menu - View commit details
-
Copy full SHA for d0a558b - Browse repository at this point
Copy the full SHA d0a558bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 64aa7e5 - Browse repository at this point
Copy the full SHA 64aa7e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for bd1f11a - Browse repository at this point
Copy the full SHA bd1f11aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 46a8d42 - Browse repository at this point
Copy the full SHA 46a8d42View commit details -
Configuration menu - View commit details
-
Copy full SHA for 490d20a - Browse repository at this point
Copy the full SHA 490d20aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e299c3 - Browse repository at this point
Copy the full SHA 5e299c3View commit details -
Use standard string format for logging, not f-strings
Only the standard format is lazy.
Configuration menu - View commit details
-
Copy full SHA for 3a46391 - Browse repository at this point
Copy the full SHA 3a46391View commit details -
Configuration menu - View commit details
-
Copy full SHA for 316a64e - Browse repository at this point
Copy the full SHA 316a64eView commit details -
Refactor get_generic_mapping function
- Function name starting with "read" to indicate it reads from kernel. - Parameters in better order. - Identifier naming according to Python standard. - Actually use generic identifiers in a generic function and not names that are specific to one use case. - Also replace all trivial callers with a single function.
Configuration menu - View commit details
-
Copy full SHA for b952ece - Browse repository at this point
Copy the full SHA b952eceView commit details -
Improve frequency_filter function
- Crucial constants should be present only once, documented, and defined in a central place. - Reading from the system and logic should be separate such that the latter is testable. - For reading from the system we can use an existing helper method. - Add tests.
Configuration menu - View commit details
-
Copy full SHA for 70ab415 - Browse repository at this point
Copy the full SHA 70ab415View commit details -
Avoid uses of defaultdict in resources.py
Uses of plain dicts may catch errors in callers earlier. Furthermore, some of the functions even returned a defaultdict in some cases and a plain dict in other cases. The return type should be consistent. With dict.setdefault() the use of a plain dict is almost as convenient as a defaultdict.
Configuration menu - View commit details
-
Copy full SHA for 665bf2c - Browse repository at this point
Copy the full SHA 665bf2cView commit details -
Refactoring: Remove allCpus parameter from check_distribution_feasibi…
…lity It is not really necessary.
Configuration menu - View commit details
-
Copy full SHA for 81f2b35 - Browse repository at this point
Copy the full SHA 81f2b35View commit details -
Configuration menu - View commit details
-
Copy full SHA for 289b780 - Browse repository at this point
Copy the full SHA 289b780View commit details -
Fix broken check for missing HT sibling cores
We always want the user to allow us to use entire physical cores. This check was broken, because forbidden sibling cores were already removed from the data structure before the check. Furthermore, cores forbidden via cgroups and via the --allowedCores parameter were treated somehow differently, but the effect should be exactly the same.
Configuration menu - View commit details
-
Copy full SHA for 52afd65 - Browse repository at this point
Copy the full SHA 52afd65View commit details -
Restructure reading of siblings information
So far we read the information about the hyperthreading hierarchy level differently from the other levels. This made the code more difficult to understand, and the way how the ids in the hierarchy_levels[0] dict were chosen differed from the other levels. But we can also read this information in the same way as for the other levels, so let's do this. We still also need to use the previous way of reading all siblings from a given list of cores, but we can also simplify that and the separation of concerns still provides an understandability benefit.
Configuration menu - View commit details
-
Copy full SHA for 9b5ad74 - Browse repository at this point
Copy the full SHA 9b5ad74View commit details -
Support arbitrary many cache hierarchy levels for core allocation
The allocation algorithm already supports an arbitrary number of levels, so we can future proof the allocation and read all information about cache levels that the kernel provides. We can also use the assumption that caches are named the same across all cores, and read the cache names only once instead of separately for every core.
Configuration menu - View commit details
-
Copy full SHA for 4a64142 - Browse repository at this point
Copy the full SHA 4a64142View commit details -
This method actually has nothing to do with "sub" units (children), it just takes a set of cores and a level and groups the cores as appropriate for the level. So the names should reflect that.
Configuration menu - View commit details
-
Copy full SHA for a949fda - Browse repository at this point
Copy the full SHA a949fdaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 12fcb40 - Browse repository at this point
Copy the full SHA 12fcb40View commit details
Commits on Aug 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2404d62 - Browse repository at this point
Copy the full SHA 2404d62View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2bc4d20 - Browse repository at this point
Copy the full SHA 2bc4d20View commit details
Commits on Sep 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9636ee0 - Browse repository at this point
Copy the full SHA 9636ee0View commit details
Commits on Sep 22, 2024
-
added more flexible way to to generate layer data for tests
To allow easier generation of new tests (where we ideally can automatically generate tests for a large number of (also weird) CPU configurations), it's desireable to be able to specify arbitrary layers more or less directly, without having to create new test classes. The final goal is to be able to generate machine configurations given a single argument (or two arguments: layer configuration as a list and total core count), so we can utilize pytest to write easily maintainable test cases.
Configuration menu - View commit details
-
Copy full SHA for 2cc163b - Browse repository at this point
Copy the full SHA 2cc163bView commit details
Commits on Sep 30, 2024
-
remove redundant sorting and removal of duplicate layers
As the new method already keeps the layers in the correct order and doesn't create duplicate layers, we can remove those parts from the code
Configuration menu - View commit details
-
Copy full SHA for d0d01cd - Browse repository at this point
Copy the full SHA d0d01cdView commit details
Commits on Oct 1, 2024
-
After showing that the new layer generation code is equivalent to the existing one, we can remove the old code with the hardcoded layers and use the new code.
Configuration menu - View commit details
-
Copy full SHA for cab9c90 - Browse repository at this point
Copy the full SHA cab9c90View commit details
Commits on Oct 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4073a2b - Browse repository at this point
Copy the full SHA 4073a2bView commit details
Commits on Nov 26, 2024
-
preparations to remove fixed xxxCoresPerRun methods
To be able to remove the fixed functions (and replace them with one which takes arbitrary numbers of cores), all calls to the existing methods are redirected to a new method. This removes all direct references to mainAssertValid, allowing us to refactor the code without having to modify each test at the same time.
Configuration menu - View commit details
-
Copy full SHA for 41d7a0d - Browse repository at this point
Copy the full SHA 41d7a0dView commit details -
changed calls to assertValid to mainAssertValid
Currently, there are two different kinds of assert statements in the code - assertValid, which is quite straightforward, and mainAssertValid, which performs additional checks. As the additional checks in mainAssertValid only further constrain when a test passes the assertion, we safely can change the existing calls to assertValid.
Configuration menu - View commit details
-
Copy full SHA for dd06fcb - Browse repository at this point
Copy the full SHA dd06fcbView commit details -
Revert "changed calls to assertValid to mainAssertValid"
This reverts commit dd06fcb.
Configuration menu - View commit details
-
Copy full SHA for 6a0ad66 - Browse repository at this point
Copy the full SHA 6a0ad66View commit details
Commits on Nov 27, 2024
-
directly derivate TestCpuCoresPerRun_singleCPU_HT from TestCpuCoresPe…
…rRun This also adds the required values which were inherited from TestCpuCoresPerRun_singleCPU With this, all classes are derivated from TestCpuCoresPerRun, allowing us to use decorators more easily later
Configuration menu - View commit details
-
Copy full SHA for 0b5c853 - Browse repository at this point
Copy the full SHA 0b5c853View commit details
Commits on Nov 30, 2024
-
add decorator to dynamically add test cases for any amount of CPUs used
Currently, all tests are limited to 1-4, 8 CPUs used with adding test cases taking a bit of work. This decorator dynamically adds a test case to test if the actual assignment matches the expected assignment to a test class. It doesn't use the fixed versions of xxxCoresPerRun, which allows us to remove them later entirely.
Configuration menu - View commit details
-
Copy full SHA for c02635d - Browse repository at this point
Copy the full SHA c02635dView commit details -
added decorator based assert statements to first batch of tests
Note that one test is commented out, as the decorator unexpectedly fails where the actual test succeeds for at this time unknown reasons. This commit adds redundant tests - this is temporary, as commits in the near future commits will remove the old testing logic, which the decorator replaces.
Configuration menu - View commit details
-
Copy full SHA for ff3f469 - Browse repository at this point
Copy the full SHA ff3f469View commit details
Commits on Dec 1, 2024
-
fixed bug in preexisting testsuite
In the existing testsuite, an overwritten test_fourCoresPerRun method actually used the values of the 3 cores version.
Configuration menu - View commit details
-
Copy full SHA for a593279 - Browse repository at this point
Copy the full SHA a593279View commit details -
uncommented test, as it is returning the correct result
In this case, the preexisting testsuite had a bug, which explains why the results differed from the new decorator based one
Configuration menu - View commit details
-
Copy full SHA for c820ccf - Browse repository at this point
Copy the full SHA c820ccfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 67c7df8 - Browse repository at this point
Copy the full SHA 67c7df8View commit details -
removed redundant testing logic
As the decorator based tests are identical with the existing code and also all pass, we can remove the old testing logic
Configuration menu - View commit details
-
Copy full SHA for 0fcb39b - Browse repository at this point
Copy the full SHA 0fcb39bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 93199de - Browse repository at this point
Copy the full SHA 93199deView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b5b96f - Browse repository at this point
Copy the full SHA 9b5b96fView commit details
Commits on Dec 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e7c3b0a - Browse repository at this point
Copy the full SHA e7c3b0aView commit details