非常にCPU負荷の高い(プロクセスされた)科学用ソフトウェアを作成していますが、/o境界)。計算集約的なタスクを実行しているときに効率的にデータをディスクに保存する
これに並列化(OpenMP)を追加していますが、ディスクへの書き込みのニーズにどのように対処するのが最適なのでしょうか。 HDDがシミュレーションを待つ必要はありません(これは現在行われています)。
私はこのために「ベストプラクティス」を探していますが、スピードは私が最も気にするものです(これは非常に長いシミュレーションです)。 1は、CPUバウンド(シミュレーション)で、もう1つはIOバウンドである:
おかげ 〜アレックス
まず思考:シミュレーションは二つの方法がありますので、別のプロセスを持つ
は、ディスクへの実際の書き込みを行います(ライティングファイル)。これは複雑に聞こえる。
おそらくパイプ/バッファ?私はこれらのことに少し慣れているので、おそらくそれが可能な解決策になるかもしれません。
私は、1ウェイパイプは私がその後行く方法だと思います。私はあまりにもひどくブロッキングの問題にぶつかるとは思わない。 theres多くのデータが生成されていない、私はちょうどスレッドを分離したい。 それほど多くのデータを生成していたのであれば、実際にどれくらい保持する必要があるか再考したいと思います。 – machinaut