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

Add support for automated benchmarking #54

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

clbr
Copy link
Contributor

@clbr clbr commented Jan 14, 2014

This allows easy integration into benchmarking scripts; previously you'd need to kill it with a signal and then try to find the line.

The endless benchmarking mode is still supported, but now you can optionally specify the amount of rounds, and the total result is averaged over all these rounds.

@clbr
Copy link
Contributor Author

clbr commented Jan 27, 2014

Ping.

@pooler
Copy link
Owner

pooler commented Jan 27, 2014

Sorry for the late reply. I started looking into this but then I got distracted by other urgent matters.

But let's get to the point. I have doubts about this being the most proper way to implement automated benchmarking, for various reasons.

  • Averaging over all rounds is probably not what we want when benchmarking, given that on many systems the first round can be significantly slower than subsequent ones (think about CPUs waking up from idle state, or adjusting their clock frequency).
  • I'm not even sure letting it run for more than one round makes sense, given that one can simply adjust the scan time to make rounds last longer, and that we are only interested in the final result.
  • The current hash rate reporting system is very basic, and cannot provide a reliable total hash rate when running more than one mining thread. Basing automated benchmarking on such a system can lead to wildly wrong results.

Given the last point above, I'd rather postpone the implementation of this feature until the current reporting system is replaced with something more reliable.

@clbr
Copy link
Contributor Author

clbr commented Jan 27, 2014

On Mon, 27 Jan 2014 02:52:08 -0800
pooler [email protected] wrote:

  • The current hash rate reporting system is very basic, and cannot provide a reliable total hash rate when running more than one mining thread. Basing automated benchmarking on such a system can lead to wildly wrong results.

Given the last point above, I'd rather postpone the implementation of this feature until the current reporting system is replaced with something more reliable.

How so? I run with 6 cores (= 6 threads), and it gives reliable results
repeatedly.

@pooler
Copy link
Owner

pooler commented Jan 27, 2014

In my experience, the results are only acceptable under certain conditions. For instance, Intel CPUs that support hyper-threading can give particularly unreliable results.
The root cause of this problem is that miner threads are (by design) not synchronized, so in general the thread hash rates do not refer to the same time span.

@clbr
Copy link
Contributor Author

clbr commented Jan 27, 2014

On Mon, 27 Jan 2014 03:51:10 -0800
pooler [email protected] wrote:

In my experience, the results are only acceptable under certain conditions. For instance, Intel CPUs that support multithreading can give particularly unreliable results.
The root cause of this problem is that miner threads are (by design) not synchronized, so in general the thread hash rates do not refer to the same time span.

Wouldn't the averaging help that? The average of, say, 10 rounds would
absorb any volatility both in the first round and that of variable
round timing.

@pooler
Copy link
Owner

pooler commented Jan 27, 2014

Wouldn't the averaging help that? The average of, say, 10 rounds would absorb any volatility both in the first round and that of variable round timing.

To some extent, but as I said I don't think that's the most proper way to do it. I would rather have just one round and make sure that the thread hash rates refer more or less to the same time span, and above all, that none is missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants