非常に原始的な並列探索が動いた!

探索コードを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