ここまで来たら、もう調べてみましょう!
technical.cityの総合ベンチマークスコアは
です。5倍くらい性能差があります。
Chia FAQの記述によると、「プロットフィルターを通過するときのルックアップの速度は5秒未満、できれば2秒未満である必要があることに注意してください。実際に報酬を獲得すると、ドライブはこれらよりも多くのルックアップを実行する必要があるため、ルックアップが高速に行われることが重要です」とのことです。2秒以内、もしくは2秒台を目指したいところです。5秒以上かかっているとWARNINGがログに出力されます。
今回調査に使用した Python scriptです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import pandas import matplotlib.pyplot as plt import numpy as np import re path = 'debug_harvester 210908 celeron warning.log' #path = 'debug_harvester 210910-1 i7-3770.log' with open(path, encoding="utf-8") as f: logdata = f.readlines()[:6000] # 同数条件で比較したいから、最初の6000行のみ使う # WARNING時のレスポンスタイム warning_time = [] for line in logdata: # 取り出す数値を小数点以下一桁で切ることでBINS化 result = re.match('.*WARNING.*took: (\d+.\d)\d+.*', line) if result: # 粗いBINS化なので0.05補正して棒グラフを中央に warning_time.append(float(result.group(1))+0.05) # 通常のレスポンスタイム lookup_time =[] for line in logdata: # 正規表現でひっかけます result = re.match('.*proofs. Time: (\d+.\d)\d+ s', line) if result: # 粗いBINS化なので0.05補正して棒グラフを中央に lookup_time.append(float(result.group(1))+0.05) # 全体グラフ fig, ax = plt.subplots() b=40 # 20 or 40 程よく見栄えが良い方を使う ax.hist(lookup_time, alpha=0.5, bins=b, label='normal') ax.hist(warning_time, alpha=0.5, label='warning') ax.set_xlim([0, 10]) # x軸設定 ax.set_xticks([0,1,2,3,4,5,6,7,8,9,10]) #ax.set_ylim([0, 20]) # y軸設定 ax.legend() plt.show() # ヒストグラム20個以下クローズアップ fig, ax = plt.subplots() b=40 # 20 or 40 程よく見栄えが良い方を使う ax.hist(lookup_time, alpha=0.5, bins=b, label='normal') ax.hist(warning_time, alpha=0.5, label='warning') ax.set_xlim([0, 10]) # x軸設定 ax.set_xticks([0,1,2,3,4,5,6,7,8,9,10]) ax.set_ylim([0, 20]) # y軸設定 ax.legend() plt.show() |
ヒストグラムのBINSはうまく調整できてません。見た目で 20 か 40 を使い分けてください。
1 |
> python lookup-time-count.py |
で実行です。
まずは問題なし版。問題ないように見えて、完全に2秒に収まりきってないことがバレました。
次にWARNING版。
WARNING版の分布はなんとも奇妙です。正常ログ出力の中にも9秒台があってWARNINGになってないようです。さらに3秒から9秒がくっは朽ちたいになっているのも奇妙です。当たる可能性が出てくると、一気にルックアップ回数が増えて、いきなり9秒台が出るのでしょうか・・・。CPU性能差は5倍くらいありますので、Celeron-3855U:9秒台がCore i7-3770:2秒あたりに入ってくる可能性もありそうです。