Skip to content
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

Provide a better solution for non deterministic allocation behavior #273

Open
GoogleCodeExporter opened this issue May 19, 2015 · 0 comments

Comments

@GoogleCodeExporter
Copy link

Currently caliper will aggressively check for non deterministic allocation 
behavior and fail the measurement when non determinism is detected.

This can be partially worked around by setting 
instrument.allocation.options.trackAllocations=false
which simply reduces the amount of data that caliper tracks and thus limits the 
kinds of non determinism that can be detected.

On the one hand a non deterministic benchmark is a bad thing since it makes 
your measurements suspect so users should try to eliminate it (i.e. make the 
benchmark perform the exact same amount of work on each rep).  However, not all 
non-determinism (of allocation behavior) can be eliminated.  For example:

In multithreaded benchmarks, lock contention will cause allocations and is 
inherently non deterministic.
Lazy initialization of data is a common pattern and its possible that not all 
such initialization can be triggered in warmup.
and others

Caliper should try to support such use cases.

One proposal would be for the AllocationWorker to be configured to work like 
the RuntimeWorker and instead of subtracting a baseline measurement to remove 
overheads just run a large number of reps to minimize them.  This could be 
configurable via something like
instrument.allocation.options.strategy

Original issue reported on code.google.com by lu...@google.com on 16 Aug 2013 at 4:22

@GoogleCodeExporter GoogleCodeExporter added Priority-Medium type=defect Bug, not working as expected labels May 19, 2015
@netdpb netdpb added component: runner P4 type=addition A new feature and removed type=defect Bug, not working as expected labels Sep 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants