私は並列化のための1つの作業ソリューションを持っています。ただし、並列化によって実行時間は非常にわずかに改善されます。私はそれが私が新しい事実から来て、ループ内のいくつかの変数を削除すると思います。私はスタックを作成したいと思いますが、Commandクラスは抽象クラスであり抽象クラスでなければなりません。その問題を回避するために私は何ができますか?どのようにこれらの非常に長いループに費やした時間を改善するか???openMPとの並列化 - スタックまたはヒープ変数
#pragma omp parallel for reduction(+:functionEvaluation)
for (int i=rowStart;i<rowEnd+1;i++)
{
Model model_(varModel_);
model_.addVariable("i", i);
model_.addVariable("j", 1);
Command* command_ = formulaCommand->duplicate(&model_);
functionEvaluation += command_->execute().toDouble();
delete command_;
}
この問題は、他の場所にもある可能性があります。アドバイスを歓迎!!
ありがとうございます。
にはコマンドプールがありますか?コマンドをpreaallocateする? – Anycorn
あなたはもっと正確になりますか? command_は、ループ内に割り当てられたスタックであるmodel_に応じて作成されています。もっと説明したり、1行のコードを書くことができますか?ありがとう!! – octoback