私は、異なるコアで複数の入力を同時に処理するために、C++でアプリケーションを作成するためのアーキテクチャを研究しています。各入力は同時に1つのコアで処理されます。コア上の各プロセスは、同じフィルタが処理されます。例:filter1.apply()、filter2.apply()およびfilter3.apply()。以下のように、4つの入力の4つのコアのプロセスが示されています。アーキテクチャまたはデザインパターンはこのアプリケーションに適していますか?
[core 1] [core 2] [core 3] [core 4] | | | | V V V V input1 input2 input3 input4 | | | | V V V V filter1 filter1 filter1 filter1 | | | | V V V V filter2 filter2 filter2 filter2 | | | | V V V V filter3 filter3 filter3 filter3 | | | | V V V V output1 output2 output3 output4
このアーキテクチャに適しているかどうかはわかりません。あなたが私にいくつかのアーティファクト(ドキュメントやサンプルアプリケーション)を与えて、さらに読むことができれば、素晴らしいことでしょう。
ありがとうございます。
@Joachim:エディションに感謝。実際には、私もそれを良くしていました:) – olidev
ちょうど副次的なものとして、あなたが何とか1つのフィルターにフィルターシーケンスをコンパイルできたら、それは同じシーケンスをいつもやっているからです物事 - OpenGLの表示リストのようなビット。 –
フィルタを1つのフィルタでコンパイルするのは、関数のスコープ(行数)が非常に大きいためにうまくいきません。将来このアーキテクチャで新しいフィルタを追加する柔軟性を持たせたいと考えています。たとえば、フィルタ4とフィルタ5が追加された場合、filter1.apply()、filter2.apply()、filter3.apply()、filter4.apply()、filter5.apply()という名前を呼び出しただけです。 – olidev