十万枚のボードを5次元接続する場合の詳細です。頭の体操、というわけで。
・ ボードの番号を5桁の十進数「00000」~「99999」で表します。
・ ケーブルは、どこかに文字「X」を挿入した4桁の十進数で表します。例えば、「X1234」、「012X4」、「0123X」等です。
・ それぞれのケーブルには、「X」の部分を0~9の数字に置き換えたボードが10枚接続されます。これで、
ボード十万枚、ケーブル5万本の、5次元マトリックス接続が完成します。
ボード間通信のアルゴリズムは、前回も書きましたけど、まとめると次のようになります。
・ 送るべきボード番号と自分のボード番号を比較する。
・ もしもそれが一致したら、自分のボード内で処理する。
・ ボード番号が一致しない場合、
- 自分のボード番号の、送り先と異なる桁の数字のどれか一つを送り先の同じ桁の数字に置き換えたボードにメッセージを送る。
- この時、複数の送信先候補がある場合は、それらのボードの忙しさを問い合わせ、最も暇そうなボードを選んでそこに送信する。
一般にm桁のn進数でボード番号を表示することにすれば、一本のケーブルにn枚のボードを接続するm次元接続を表すことができます。ボードの総数はnのm乗、ケーブルの本数はnのm-1乗のm倍となります。
あと、CPU の負荷を分散するため、密に接続されたニューロンは、異なるボードに散らしておくべきと書きましたが、中継段数を減らすため、できるだけ、同じケーブルに接続されたボードに置くようにすべきですね。