Comments (3)
This is also a problem if several runs should be executed with few cores but much memory, such that for example the cores for all runs are taken from the first NUMA region, but not enough memory is available in that region.
from benchexec.
To handle multiple nodes per socket we can alter the cores_of_package
to cores_of_region
in resources.py
.
benchexec/benchexec/resources.py
Line 88 in 0775a32
Therefore instead of finding physical packages of core, we find memory regions for each core
memory_regions = []
for core in allCpus:
coreDir = '/sys/devices/system/cpu/cpu{0}/'.format(core)
memory_regions.append(_get_memory_banks_listed_in_dir(coreDir))
And correspondingly we build a cores_of_region
mapping instead of cores_of_package
benchexec/benchexec/resources.py
Lines 90 to 91 in 0775a32
for core, region in zip(allCpus, memory_regions):
cores_of_region[region].append(core)
Now using cores_of_region
shall not affect the distribution for systems with single node per socket(or package) and for systems with multiple NUMA regions the algorithm shall split the socket into different groups each with their own different NUMA region.
This shall improve core assignment as runs shall be split accross memory regions instead of packages, thus ensuring that all the memory regions are used equally.
from benchexec.
Sounds good. Please make sure that the code would still work for systems that have multiple packages per NUMA node (we do not know such systems, but they could exist). In this case, actual packages should be used, of course (we will always use whatever is more fine granular: NUMA nodes or packages).
from benchexec.
Related Issues (20)
- Feature Request: Replication of CI/CD pipelines via GitHub workflows HOT 3
- Remove warnings logged for XYPlot while running the JS test suite HOT 2
- Id filter is removed when other filters are used HOT 1
- Add Reset Button to the scatter and quantile plot webpage HOT 3
- adding a reset button to the scatter and quantile plot webpage
- When exactly is data written to disk by a process contained in the memory measurement? HOT 10
- hyperlink is not visible in info page HOT 4
- SLURM: questions about job scheduling and BenchExec run representation HOT 2
- Filters for left-most column remain disabled after clearing Task Filter HOT 6
- ImportError: No module named 'XXXX' HOT 5
- progress bar support HOT 3
- BenchExec not working after upgrading from Ubuntu 23.10 to 24.04 HOT 6
- How to prepare cgroups v2 manually for BenchExec? HOT 6
- Guard Cgroups against non-existent path HOT 2
- Running inside an interactive container HOT 19
- Docker base image HOT 4
- URL manipulation in HTML tables fails for tables in paths with spaces HOT 1
- Command-line verbs for test_tool_info and check_cgroups HOT 1
- Tagging Properties and Filtering HOT 2
- Improvements to Documentation HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from benchexec.