Author

Topic: Overclocking - Hardware error rate vs. Hash rate tradeoff (Read 765 times)

newbie
Activity: 17
Merit: 0
Quick and dirty Java code if anyone interested.

Code:
package com.btctoronto.antminer.s1;

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class FindS1sEffHashrate {
public static void main(String[] args) {
  try {
    WebDriver wdDriver = new HtmlUnitDriver();
    //Get login page
    wdDriver.get("http://192.168.1.102/"); //Put your S1's IP here.

    //Find the username and password input fields and enter your values
    WebElement weUsername = wdDriver.findElement(By.className("cbi-input-user"));
    weUsername.clear();
    weUsername.sendKeys("root");
    WebElement wePassword = wdDriver.findElement(By.className("cbi-input-password"));
    wePassword.clear();
    wePassword.sendKeys("YourPrettyComplicated(IHope)Password");
    wePassword.submit();

    //Go to Miner Status page and pull the required data
    WebElement weMinerStatus = wdDriver.findElement(By.linkText("Miner Status"));
    String sLink = weMinerStatus.getAttribute("href");
    wdDriver.get(sLink);
    double fGHs = Double.parseDouble(wdDriver.findElement(By.id("cbi-table-1-ghsav")).getText().replaceAll(",", ""));
    long fHWE = Long.parseLong(wdDriver.findElement(By.id("cbi-table-1-hw")).getText().replaceAll(",", ""));
    long fDiffA = Long.parseLong(wdDriver.findElement(By.id("cbi-table-1-diffaccepted")).getText().replaceAll(",", ""));
    long fDiffR = Long.parseLong(wdDriver.findElement(By.id("cbi-table-1-diffrejected")).getText().replaceAll(",", ""));
    double fEffGHs = 1.0 * (fDiffA + fDiffR) / (fDiffA + fDiffR + fHWE) * fGHs;

    //Display the data
    System.out.println("Miner has been running for: " + wdDriver.findElement(By.id("cbi-table-1-elapsed")).getText());
    System.out.println("Reported GH/s: " + fGHs);
    System.out.println("HW errors: " + fHWE);
    System.out.println("Accepted difficulty: " + fDiffA);
    System.out.println("Rejected difficulty: " + fDiffR);
    System.out.println("Effective hash rate: " + fEffGHs);
    } catch (NoSuchElementException e) {
      e.printStackTrace();
    }
  catch (Exception e) {
      // TODO: handle exception
    }
}
}

BTC TO
newbie
Activity: 23
Merit: 0
I had the same doubt, so I wrote a small Java program that calculates the "effective" GH/s for the S1 based on this formula based on the values reported by the S1:
Code:
EffGHs = (DiffA + DiffR) / (DiffA + DiffR + HWE) * GHs
Where:
  • EffGHs = Effective GH/s
  • DiffA = DiffA reported by the S1
  • DiffR = DiffR reported by the S1
  • HWE = HW reported by the S1
  • GHs = GH/S(avg)reported by the S1

I let the miner run for about a week with each setting and then calculate this value. So far by best value is 193.8396 GH/s for a frequency of 381.25 (5e05 freq value) and a timeout of 37.

BTC TO


Thanks for the formula! I've got a spreadsheet going to calculate this. Next step will be writing a program to automatically pull this from the cgminer API on the miner.
newbie
Activity: 17
Merit: 0
I had the same doubt, so I wrote a small Java program that calculates the "effective" GH/s for the S1 based on this formula based on the values reported by the S1:
Code:
EffGHs = (DiffA + DiffR) / (DiffA + DiffR + HWE) * GHs
Where:
  • EffGHs = Effective GH/s
  • DiffA = DiffA reported by the S1
  • DiffR = DiffR reported by the S1
  • HWE = HW reported by the S1
  • GHs = GH/S(avg)reported by the S1

I let the miner run for about a week with each setting and then calculate this value. So far by best value is 193.8396 GH/s for a frequency of 381.25 (5e05 freq value) and a timeout of 37.

BTC TO
newbie
Activity: 23
Merit: 0
Check your return from the pool, not what the miner says.

All that matters is the return from the pool vs the cost of the extra energy used.

If you make more than its costs then its worth while overclocking.

The problem is that I have no baseline to check against.

Also, since I'm on Bitminter (PPLNS) it is hard to run for a while at one setting and then change to another to compare because of the varying CDF.
hero member
Activity: 490
Merit: 500
I calculate it as 2x the HW error rate to account for rejects too.
legendary
Activity: 3234
Merit: 1221
Check your return from the pool, not what the miner says.

All that matters is the return from the pool vs the cost of the extra energy used.

If you make more than its costs then its worth while overclocking.
newbie
Activity: 23
Merit: 0
Hi all!

I have an AntMiner S1 that I have overclocked to 375MHz and I am getting some hardware errors (plus one ASIC is showing an error) but my hash rate is running about 10GH/s higher than when it was not overclocked. My hardware error rate is running around 0.25%. I had it overclocked to 400MHz and my error rate was running around 5.5%.

I'm just wondering if given my current error rate that I would be better off sacrificing the 10GH/s for a nearly zero error rate.

TIA!
Jump to: