0

3 つの関数からなる簡単な計算プログラムを作成しています。

最初の f1() は、ある種のデータを生成し、それをバッファー (ベクターまたはキューなど) に格納します。

2 番目の f2() はそのデータを取得し、そのデータに対していくつかの計算を行い、結果を別のバッファーに格納します。

3 番目の関数 f3() は、f2() の結果を視覚化 (プロット、レポートなどを作成) します。

この 3 つの機能は、シングル コア マシンで同時に実行する必要があります。PARFOR ループと matlabpool について知っています。ただし、スレッド (ワーカー) の最大数 = min(8, 'マシン内のコア数') を作成できます。シングルコアマシンのmatlabでいくつかのスレッドを作成する解決策はありますか?

4

1 に答える 1

0

ご覧のとおり、いくつかのオプションがあります。

  1. 独自のスレッドを作成します。基本的に、関数を継続的に呼び出すのは 1 つのループだけです。
  2. オブザーバー パターンを使用して、依存する入力が変更されたら結果を更新します (実際にはスレッド化でもありますが、関数が既に評価された入力を再計算しないようにします)。
  3. マシンでいくつかの matlab プロセスを開始し、何らかのプロトコル (ポートまたはファイル) を介してデータを送受信します。
于 2013-01-21T12:37:12.110 に答える