非常に原始的な並列探索が動いた!
探索コードをclassで囲う処理を以前やってましたが、
その後bitboard化したら改修してる部分がそのままでしたので、かなり時間がかかりました。
その後も、スレッド投入の時点で変数の破壊(?)などがあり、
コードを見直し、見直し、結局、月曜日の半分は消えてました(´・ω・`)ショボーン
が、なんとか動いたので気分は祝杯モノです(゚Д゚ )ウマー
といっても、とりあえず動かしてみたに近いので、効率は考慮してません。
並列探索の分割は、ルートのみです。
ルートのPVノードはCPU0でシングル探索して、
カットノードだけをCPU0とCPU1で並列探索(NullWindow探索)
(途中でPVが入れ替わったら、またPVをシングル探索)
このやり方だと、カットノードのどちらかが先に探索が終わっても、
両方終わるのを待つので、あまり効率が良くないです。
また、ルート以降の探索内部で分割はしてません。
(そもそもルートでは分割しない方がいいって話も、YSS掲示板で以前ありましたが……)
反復深化9手までそれぞれ探索させてみましたが、
探索の経路が違うので、ほとんど比較にならないと思いますが、
2Core: nps=134.63K
1Core: nps=114.72K
ほとんどnps変わらないっす(´・ω・`)ショボーン
あと、ハッシュのロックはやってませんが、いまのところ壊れてないみたい(^^;
大事なのはまずは動くことっすよ。
効率は徐々に上げていきましょう。
2並列CPU探索(NPSは高くなったけど探索時間は増加してるっちゅーねん)
----------------------------------------------- 2Core: nps=134.63K ----------------------------------------------- read OK:'csa\matiid1.csa' 10手目 先手 ▼v銀v飛 9 8 7 6 5 4 3 2 1 ---------------------------+ v香 飛 ・ 角 ・ ・ ・v桂v香|一 ・ ・v金v歩 ・ ・ ・ ・ ・|二 v桂v金v玉 ・ 馬v銀v歩 歩v歩|三 ・v銀 ・ ・v歩 ・ ・v歩 ・|四 v歩 ・ ・ ・ ・ 銀 ・ ・ ・|五 ・ 歩v歩 ・ ・ ・ ・ ・ ・|六 歩 ・ ・ ・ ・ ・ 歩 ・ 歩|七 香 金 金 ・ ・ ・ ・ ・ ・|八 王 桂 ・ ・ ・ ・ ・ 桂 香|九 ---------------------------+ △ 歩 相手の最善手:(-278) gen:61 △43角成(802)△74歩打(782)△72角成(668) org_retval=802 threat_retval=-278 # 1 0.1s +802 △43角成 # 2 0.1s +775 △43角成▼71飛打 # 2 0.1s +782 △72角成▼同王 # 3 0.2s +911 △72角成▼同王△91飛成▼77歩成△同金 # 3 0.2s +1414 △43角成▼65飛打△64銀打▼同飛△同馬▼同王 # 4 0.3s +1423 △43角成▼92香△54馬▼63金 # 5 0.6s +1619 △43角成▼92香△54馬▼63歩△同馬▼同金△同馬▼同王 # 5 0.6s +3911 △74歩打▼同王△72角成▼82金△同飛成▼85桂 # 6 0.8s +2407 △74歩打▼同王△72角成▼82歩打△91飛成▼77歩成△同金 # 7 1.3s +2847 △74歩打▼同王△72角成▼94銀打△91飛成▼34銀△54銀▼75銀 # 8 4.5s +2696 △74歩打▼同王△72角成▼82歩打△91飛成▼73金△同馬▼同王△43馬 ▼64銀打 # 9 20.5s +4560 △74歩打▼同王△72角成▼82飛打△64金打▼75王△82飛成▼66王△83 龍▼57王△84龍 20.5s 優勢(+4560) △74歩打▼同王△72角成▼82飛打△64金打▼75王△82飛成▼66王△83 龍▼57王△84龍 4( 1213)* 5( 4548)* 6( 4330)* 7( 11590)*** 8( 25255)***** 9( 40368)******** 10( 62108)************* 11( 69334)************** 12( 41300)********* 13( 53558)*********** 14( 10382)*** 15( 12887)*** 16( 3020)* 17( 1)*
シングルCPU探索
----------------------------------------------- 1Core: nps=114.72K ----------------------------------------------- read OK:'csa\matiid1.csa' 10手目 先手 ▼v銀v飛 9 8 7 6 5 4 3 2 1 ---------------------------+ v香 飛 ・ 角 ・ ・ ・v桂v香|一 ・ ・v金v歩 ・ ・ ・ ・ ・|二 v桂v金v玉 ・ 馬v銀v歩 歩v歩|三 ・v銀 ・ ・v歩 ・ ・v歩 ・|四 v歩 ・ ・ ・ ・ 銀 ・ ・ ・|五 ・ 歩v歩 ・ ・ ・ ・ ・ ・|六 歩 ・ ・ ・ ・ ・ 歩 ・ 歩|七 香 金 金 ・ ・ ・ ・ ・ ・|八 王 桂 ・ ・ ・ ・ ・ 桂 香|九 ---------------------------+ △ 歩 相手の最善手:(-278) gen:61 △43角成(802)△74歩打(782)△72角成(668) org_retval=802 threat_retval=-278 # 1 0.1s +802 △43角成 # 2 0.1s +775 △43角成▼71飛打 # 2 0.1s +782 △74歩打▼同金△72角成▼同王△91飛成 # 2 0.1s +877 △43馬▼87歩打 # 3 0.2s +1236 △43馬▼63銀打△91飛成 # 3 0.2s +1414 △43角成▼65飛打△64銀打▼同飛△同馬▼同王 # 4 0.3s +1423 △43角成▼92香△54馬▼63金 # 4 0.4s +1619 △43馬▼92香△54馬▼63歩 # 5 0.7s +1517 △43馬▼63銀打△91飛成▼77歩成△同金 # 5 1.0s +1650 △43角成▼87歩打△64銀打▼74王△87金▼77歩成 # 6 1.8s +1723 △43角成▼87歩打△同金▼92香△54馬▼12香 # 7 5.2s +1918 △43角成▼63銀打△91飛成▼74金△54銀▼64銀△52馬 # 7 5.5s +3405 △74歩打▼同王△72角成▼92銀打△91飛成▼73金△92龍▼72金 # 8 7.0s +2721 △74歩打▼同王△72角成▼82歩打△91飛成▼73金△同馬▼同王△43馬 ▼77歩成 # 9 12.1s +4560 △74歩打▼同王△72角成▼82飛打△64金打▼75王△82飛成▼66王△83 龍▼57王△84龍 12.1s 優勢(+4560) △74歩打▼同王△72角成▼82飛打△64金打▼75王△82飛成▼66王△83 龍▼57王△84龍 4( 3123)* 5( 14586)**** 6( 18359)***** 7( 28375)******* 8( 32539)******** 9( 39864)********** 10( 39032)********** 11( 47025)************ 12( 27641)******* 13( 45572)*********** 14( 8099)** 15( 10349)*** 16( 1872)*
おかしいと思ったら、二つのスレッドが同じCPUで動いてた orz