データ テーブルの行ごとに繰り返し実行して結果を返すスクリプトがあります。I は、テーブル内の各セルの操作に分割できないため、各反復は、データ テーブル内の各行の値に対応する結果のベクトルを返します。
dt=current data table();
nr=n rows(dt);
result=J(nr, 1, .)
/*
script body assigns values to result vector
*/
result;
この操作を数百回または数千回反復する必要があり、各反復には約 0.5 秒かかります。返されたすべての結果をマトリックスにまとめ、さらに要約します。生成される結果の順序は重要ではありません。
これを並列化/マルチスレッド化できれば、はるかに高速に実行できます。
構文を持つ Parallel Assign() 関数を使用したいと思います。私がする必要があるのは、グローバル変数を作成することだと思いますresult_matrix = []、それを Parallel Assign() で使用されるローカル関数に渡し、式の最後に結果へのベクトル結果_行列。結果行列持つでしょう番号行とn_iterations列。
</CODE></PRE>
<P>これを行う方法に関する提案。最終的に行う必要があるのは、各行の平均結果を計算することです<STRONG>結果行列</STRONG>データ テーブルの各行に割り当てられた値を取得します。つまり、</P>
<PRE><CODE class=" language-jsl">final_result_vector = V Mean(results_matrix`);