CHIA Plot Setting (その2)
(この記事は 2021年6月 くらいの情報です)
CHIA の Plot の設定の最適解をざっくり探る旅、第2回。
第1回(単一実行での検証)はこちら。
検証をしているうちに、暗号資産が30%以上も下落したり、Mainnnet が Pool をやるといったけど始まってなかったり(笑)いろいろ動乱の時代ですね。
同時実行数による差異
余程理由がない限り、実際の Plotting は 1台の PC で 1並列 でやるってことは無いと思います。
ちなみに、うちのメインの Plotting 機は
・i9-9900K / 64GB
・1 Plotting あたり 4スレッド / 4096MB
※ 8スレッドでやってたらいつのまにか全プロセスが Phase-1 で詰まってたので下げた
・1st-Cache: NVMe(Gen3) 2TB × 2 各 5並列
・2nd-Cache & 最終出力先: NAS(RAID0 を2系統作って使い分け)
でやってます。1つ 8-12時間くらいです。
全部で 10並列なので、平均で 1時間/Plot くらい。
環境によっている色々あると思うので、どういう構成だとどういう結果が出てくるかを検証してみたいと思います。
なお、以下の検証では次の条件で実行しています
・8スレッド / 4096MB
・2nd-Cache 及び最終出力先は全て同一の SATA-HDD (WD101EFAX)
・3回実行した結果を記載
・表の一番下は、各ストレージで単独実行した時の所要時間
最初と最後は並列数に偏りが出るので、全てが同時動作している 2回目の結果を参考にするとよいと思います。
# note さん、表に対応してくれないかなぁ…Excel から直接貼り付けできたら素敵。
1つの NVMe(Gen3) で同時実行
1本の NVMe-SSD に対して同時に2つの Plotting をかけてみました。
1つの時に比べて 10%強の速度低下がみられます。
Phase-4 の HDD の負荷が大きいとはいえ、全体に遅くなってはいますね。
とはいえ、全体としてみると 4時間半/Plot が 2時間半/Plot になっているので 1.8倍速くらいです。
開始時間をずらせばもう少し早くなりそう。
NVMe と SATA で同時実行
NVMe と SATA な SSD でそれぞれ2本ずつ同時に動かしてみました。
グラフわかりづらいですが、NVMe でも並列によって SATA-SSD の単独よりも遅くなるという結果になりました。
そして、SATA-SSD の並列時の速度低下が目立ちます 50%低下。
NVMe も2並列の時の倍以上の速度低下が見えます。
Phase-4 が遅いので 2nd Cache を分散できればもう少し早くできそうです。
とはいえ、4並列にした効果で 1.7時間/Plot くらいに高速化できていますね。
NVMe と SATA で同時実行(時差開始)
同じフェースが重なると書き込みや CPU の負荷で効率があまり良くないので実践的ではないと思われます。
なので、フェーズをずらすために各ストレージに対して2回目を 7200秒(2時間)遅らせて開始させてみました。
つまり 1-1 の2本を同時に開始して、2時間後に 2-1 の2本を開始しています。
効果ありですね。同じリソースで 10% くらい高速化できています。
ここでキモになるのは
・Phase-1 最初の集中書き込み
・Phase-1 の CPU スレッド使用率
・Phase-4 の 2nd Cache への書き込み
をどう分散させるか、ということになるかと思います。
単一実行の時にも確認したけど、Phase-3 は 2nd Cache よりも 1st Cache の読み込み性能のが重要な感じ。
あれ?これ 1.5時間/Plot くらいで作れてるから、10並列もかける必要なくね???
ってのが分かってくるのが検証の楽しさ。
あとで実際に並列数下げて試してみよう。。。
-- 2021/6/10 追記
2本の NVMe にそれぞれ3並列で6本(4T/4GB/2nd & 最終は 1GbE の NAS)かけたところ、片方は 6.5時間、もう片方は 7時間となりました(ガチ SSD の性能差です)。
これ、出力先を SATA-SSD にすれば 6時間切る = 1時間/Plot 切るんじゃね???
今のままでも 1.2時間/Plot くらいなので、とりあえずしばらくは6並列にすることにします。
HDD での並列実行
ちょっと着眼点を変えて HDD での Plotting を試してみました。
NVMe をまるまる Plotting に使える人よりも、余った USB-HDD を使える人の方が多いと思うので、この結果にも意味があるかなと思います。
# 実はこの記事の公開が遅くなったのはここの検証が数日かかった為。HDD 遅すぎる上に一度途中で止まってしまってやり直したので。
SATA 1台: WD120EFAX(5400RPMクラス?)
USB3.0 3台: WD20EZRX / ST2000DM001(7200RPM) / WD40EZRX
で実行しています。
ST2000DM001 を順番の最後に持ってきた方が見やすかったな。
SSD と比べるとがっつり遅いです。倍くらい時間かかる。
これを「倍も」と思うか「倍しか」と思うかですね。
重視するのが時間か価格か体積かで違ってきます。
3回目を見ると、並列実行での負荷の影響が見えますね(早いやつから終わっていくので遅いのは最後並列数が下がる)
HDD 同士の比較だと回転数がモノを言う感じでしょうか。
WD120EFAX の本当の回転数はいくつなんだろうね?
単体試験で振動がひどかった WD20EZRX はここでも激烈に遅いです。5年くらい放置してた FireWire のケースから発掘したものなのでほんともうダメなのかもしれん…
グラフが意味わからんw
ので、HDD 毎に分けてみます。
単独のを実線にしてみたけど、結局全部同じに見える(笑)
センスないな、俺。
そして、画像横に並べたいよ note さん。
単体と2回目のやつだけを抜き出してみましょう。
綺麗だけど、もう何が何だか…
・元が速いもの程並列時の落ち込みが激しい(多分対象 HDD 以外の要因)
・SATA でも USB3.0 でも変わらないように見える、つまり外付けでも OK
というような結果が得られた感じです。
ということは 500GB~2TB くらいのやっすい中古 HDD を手に入れて USB3.0 でのんびり回す、というのも実用的ということです。
これなら 1000~2500円/台 くらいで手に入るので、ケースをどうにかすれば金額的にはかなりリーズナブルに Plotting できます。
時間かかるけど。
まとめ
検証めっちゃ楽しいです(笑)
理系人間であることを実感する瞬間。
まぁ、ほぼほぼ待ち時間なんですがね。
そして、やはり長くなったので、まとめは別記事にします。
しました。