-
Notifications
You must be signed in to change notification settings - Fork 44
Phase concurrent #56
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
Phase concurrent #56
Conversation
This version is for testing. It executes
benchmark 0 - 20% procs - parallel write - ior easy
benchmark 1 - 40% procs - parallel read 1 MB - rnd1MB read
benchmark 2 - 40% procs - md-workbench for concurrent usage
It does provoke errors in the md-workbench cleanup phase and extra output. These are not score relevant, though.
|
I believe a subset of the patch is useful as this prepares the parallel execution and anyone can use it for creating a meaningful parallel benchmark from IO500. [concurrent] Note that it was run with 5 procs, hence, the overall score is calculated with weighting as follows: Increasing proc counts will first increase for the last benchmark, then the second, then the first. |
|
Isn't md-workbench itself already a concurrent IO workload? I think with the built-in workloads of IOR and mdtest plus a hard stonewall timer it would be possible to generate arbitrary small/large/random read/write + create/stat/find/unlink workloads as needed. It definitely has some interesting potential as both a stress test and as a way of measuring the over all capabilities of the storage system for more "real world" production workloads where there are dozens of jobs doing uncoordinated IO. This ratio should definitely be configurable, at least during testing, even if we eventually require a specific ratio for submission. There would likely also need to be some coordination between the workloads (i.e. it isn't possible to read from files that haven't been written yet), so there may need to be an unmeasured "warmup" time, or possibly this is still included, but the read workload cannot start until some fraction of the runtime has elapsed (e.g. 25%) to create/write the files. |
|
The purpose is to simulate a "used system" where some nodes run a parallel write, others a random read and users work interactively. Note that here there is no coordination between workloads in this phase necessary. It simply runs three benchmarks at the same time. All of them use the artifacts created before. We will evaluate the influence of this on an isolated system. Missing features:
|
…y -e -E flag to find.
… into separate file.
gflofst
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you check this versus the latest changes. There are merge conflicts now.
Resolved. I still would like these to be in the code, as it is the "extended" version, it doesn't affect ranking or such, but it is great to have for testing! |
|
I think the concurrent test can fail Then you will hit Without |
Updating all necessary code.
|
Can you try it again? This bug should have been fixed. |
|
Thank you! Works very well now 👍 |
adilger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Julian, I don't have a major objection to including a new experimental phase into the next benchmark release, but this patch series is very messy. There are many patches which are just bugfixes to the previous patch because it missed a few lines of change, and it contains a significant merge in the middle of the series.
Rather than dragging all of this baggage into the main repository, it would be better to rebase the series to the tip of the io500 repository and squash all of the bugfix patches into the patch that introduced the bug(s). That would leave 3-4 complete patches that implement isolated functionality.
|
I close this issue now in favor of the new merge request #93. |
For the sake of discussion, added a phase where multiple benchmarks are executed.
It requires at least 5 procs and executes:
benchmark 0 - 20% procs - parallel write - ior easy
benchmark 1 - 40% procs - parallel rnd1MB read
benchmark 2 - 40% procs - md-workbench for concurrent usage
It does provoke errors in the md-workbench cleanup phase and extra output. These are not score-relevant, though.
The score is computed based on the geo-mean of the individual procs, weighted by proc counts involved in the individual benchmark. It is only included in the extended mode run.