特定のアルゴリズムをテストするためのテスト プラットフォームをコーディングする必要があります。システムは、入力と 3 次元によって定義可能であると想定されています。ネットワーク オン チップと同様に、それらを接続するためのノードとリンクの両方の要素があります。ノード間の次元とリンクのために、どのデータ構造を使用するかを理解するのに苦労しました - array[x][y][z] のような 3 次元配列は、リンクを追加するときに欠点のあるポインターとして扱いにくいです。ノードを接続します (構造内にいくつかの null 値の穴を残します)。二分探索木はグリッド型なので実現が難しいです。このため、リンクを実装しやすいリンクリストを作成することを考えました。(最終的なテスト プラットフォームは、以下のプレゼンテーションのようなものになるはずです) ここでは、通信スケジュールが含まれているため、すべてのリンクもマッピングされています。
01-------02-------03
| \ | \ | \
| 10----|--11----|--12
| | \ | | \ | | \
| | 19-|--|--20-|--|--21
04-------05-------06 | |
| \ | | \| | | \| |
| 13----|--14----|--15 |
| | \| | | \| | | \|
| | 22-|--|--23-|--|--24
07-------08-------09 | |
\| | \| | \| |
16-------17-------18 |
\| \| \|
25-------26-------27
この種のタスクに適した C++ の構造のタイプについて、どなたか助けていただけないでしょうか。完成したプログラムは、x、y、z の次元パラメーターが与えられると、そのような構造を生成できるはずです。
現在、大まかなアウトラインは次のようになります
>class Node{
> public:
> Link* north;
> Link* east;
> Link* south;
> Link* west;
> Link* up;
> Link* down;
> //will contain a node specific scheduler
>}
>
>class Link{
>
> Node* A;
> Node* B;
> //will contain a link specific scheduler
>}
編集 22.01.2013
まず第一に、3 次元ネットワーク オン チップ タイプのマルチプロセッサ システムをシミュレートするテスト プラットフォームとして。このシステムが満たさなければならないタスクは、特定のアルゴリズムをテストして、タスクをこれらのノード (各ノードがプロセッサ コアに接続されている場所) にマップできるようにすることです。これに照らして、私が述べたようにテスト専用であるため、メモリ消費は問題にならない可能性があります。このため、システムにはノードとリンクの両方が必要です。同時に(リンク上の通信は他のすべての通信をブロックします。これが、クラスタイプのノード/リンクにスケジューラーが含まれると書いた理由です)