1足す1が2にならない世界

近頃カーネマンにハマっているので認知バイアス関係なんだけど,

非線形なものに対する直感ってのは慣れていないと難しい。

 

ロケットブースターを2倍にしてもロケットの加速度は2倍にならないし,エンジン馬力を2倍にしても車の最高速度は2倍にならない。力学に詳しい人なら前者が少し増えるだけ,後者は√2倍が精々ってのがすぐ思いつくが素人さんはそうはいかない。通常の3倍の移動速度ってものを類似の推進系で作り出すのは非常に困難なものと理解できる。

 

計算機の世界でも20年以上前からクラスタリングは実用化されているし,普及PCでも十数年前からマルチコアが一般的である。アムダールの法則を持ち出すまでもなく,2倍のリソースで2倍の計算速度が得られないことは自明である。

 

また,俗な考え方だが5万円のPCは10万円のPCの半分のパフォーマンスってことは稀だし,20万円のPCは10万円のさらに倍のパフォーマンスを期待できるわけではない。ただ,特例的なソフトウェアの実行においては有効に働く場合が結構ある。要するにそういう設計がなされているということだ。この価格レンジを外れた場合はあまり起こりえない事象なので,所謂PCのコストパフォーマンス層と言える。知識のない人が購入するならこの層にしておけってやつだ。

とはいえ,2倍の計算速度が出る計算機は2倍以上の効果があることが多い。結果が早く得られることにより次の決断を早めることは何よりも有効な場合が多い。たとえばコンピュータ将棋である。

 

”質の悪い評価関数の場合、探索量が2倍になったところでR50~80ぐらいしかあがらないだろうと言われています。逆に質の良い評価関数の場合、R100~150ぐらい上がるのではないかと言われています。”

並列化による棋力の向上について - ひよこ将棋、はじめました。

 

GPS将棋は700台構成ですが、Puella αが700台使えたらどうなるか?GPS将棋は、700台構成で確実に棋力が上がることを示しました。Puella αだと、おそらく200?300程度上がるでしょう。”

現状認識@2013年4月: A級リーグ指し手1号

 

他にも激指の横山先生は32コアの並列で6~7倍の高速化が見込めると発表されていたり,GPS将棋では疎結合クラスタは密結合のクラスタの2倍の台数で同程度の効果が得られると書かれている。

 

1足す1が2にならない世界。密結合32倍のコアで6~7倍と言うのは直感的に少し少ないように思われるが,同時期のGPS将棋では密結合4ノードと疎結合8ノードが同適度で2倍強という発表もあり妥当な数字かと思われる。

 

”NスレッドでやってもN倍の効率アップにはならず、√N倍程度の効率アップにしかならない。実際は、√Nよりは少し効率が良いようだが、ともかく、そういう状況だ。”

将棋ソフトの並列探索は何故難しいのですか? | やねうら王 公式サイト

 

密結合4コアだと1コアの2倍くらいの速度は期待していいくらいのイメージだ。疎結合で立方根だろうか。電気代を考えると1コアで2倍の時間使うのが経済性が良いだろうが対戦では時間は固定リソースである。しかも,これは実装がうまくいった例である。

並列計算には個々の計算同士がうまく通信し合ってこそ有効に働く。上記に書かれたコンピュータ将棋の世界だと共有メモリに置換表という情報を共有することで重複した局面の再探索をしないことで高効率化が図られている。

上記疎結合の700台では立方根の約9倍程度のパフォーマンスは恐らく出ないだろうとの見込みが示されている。これは根本的な情報共有の問題である。

 

ところで,考えてみて欲しい。私も直感的に思った。700台のPCを使って10倍の速度が出ないのはちょっと勿体無いのではないかと。

4コアで2倍ってのももう少し位いや,3倍超えて欲しい気がする。

なんとかならんもんだろうかと考えている。難問である。

 

(要約すると)新しい並行計算の手法を思いついて実装したのだが,あまりうまくいっていない。そんなことより評価関数(