問題タブ [parallel-for]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Parallel.For での StringBuilder のスレッド セーフ
私は構造体を作成し、そのメソッドAStruct
をオーバーライドしました。ToString()
次に、いくつかを返し、AStruct
それらをリストに入れるための並列を作成したので、 a を使用しStreamWriter
てそれらを出力できます。
問題は、出力ファイルに AList の 7/8 行しか出力されないのに対し、AList は実際には 10 個の要素すべてを取得していることです。これは StringBuilder のスレッドセーフに関係しているのだろうか。すべての行が出力されない理由を誰かが説明できますか?
c++ - Intel TBB 並列ループ スレッド ID
TBB 並列ループ本体でスレッド ID を確認するにはどうすればよいですか?
基本的に必要なのは、オブジェクトのスレッドごとのコピーであるため、スレッド ID でインデックス付けされた配列にそれらを含めると考えました。
OSネイティブサービスではなく、これを行うポータブルTBBの方法を探しています。
matlab - parfor の Matlab sim コマンド
parfor
さまざまなデータを持つ多くのコアでSimulink モデルをループで実行したいと考えています。ただし、for ループのみを使用すると結果が得られるのに対し、sim
使用すると結果が得られませんでした。parfor
それは単純に[t,u]
からを取得しworkspace1
、伝達関数n{1}/d{1}
を考慮してから を計算EqFracInt
しworkspace2
ます。
私のコードの問題のある部分は
値を取得できませんでしたPGRs
。エラーの内容と解決方法を教えてください。
c++11 - forループの順次および並列で「続行」するための共通キーワード
シーケンシャルfor
ループでは、 を呼び出すことで現在の反復を中断できますcontinue
。同様に、Concurrency::parallel_for
ループでは、ラムダ関数を呼び出すスレッドである現在の反復を で中断できますreturn
。
ときどき、ループをデバッグし、parallel_for
それをシーケンシャルにし、 を に変更するのを忘れなければreturn
ならないことがあります。continue
これは、void
関数内ではコンパイラが文句を言わないためです。これにより、追跡が非常に困難なエラーが発生することがあります。
Visual C++ 2013 では、両方のループに同じキーワード/マクロ/… を使用するメカニズムが提供されているのだろうか。これは可能ですか?
c# - Parallel.For Iterations の異なるスレッド アフィニティ
7 つのコアを使用する (または 1 つのコアから離れる) には並列 for ループの反復が必要ですが、8 つの (すべての) コアを使用するために別の反復が必要で、以下のコードを試しました:
これは、両方の反復で 255 を出力します。したがって、parallel.for ループが単一のスレッドを使用しているか、1 つの設定で他の反復アフィニティも設定されています。もう 1 つの問題は、これは遅延の影響を受けやすいアプリケーションによるものであり、このすべてのアフィニティ設定によって 1 ~ 15 ミリ秒の遅延が追加されることです。
スレッドを明示的に使用する必要がありますか? また、アフィニティは 1 回だけ設定する必要がありますか?
編集:スレッドバージョンを試しましたが、同じことが起こります。明示的な 2 つのスレッドでも、両方とも 255 をコンソールに書き込みます。現在、このコマンドはスレッドではなくプロセス用のようです。
OpenCL コンテキストは、1 回の反復で CPU でのカーネル実行に最大コア数を使用しています。1 ~ 2 個のコアを使用してバッファーをコピーし、コマンドをデバイスに送信するその他の反復。cpu が opencl によって使用される場合、すべてのコアが使用され、デバイスはバッファーをコピーするのに十分な時間を確保できません。デバイスの分裂は、この問題を解決するよりも難しいようです。
c++11 - rocksdb イテレータの並列化
私のイテレータコード:
反復の順序は重要ではありませんが、不要な要素を反復しないように、ループを壊すことが重要です。いつブレークするかを知るために、要素が意味のある順序でソートされているという事実を利用しています。callback
長い時間がかかる可能性があります。
だから私がやりたいことの疑似コードは
concurrency::parallel_for_each を適用しようとしましたが、rocksdb api には適合しないようです。
同時反復を実装するにはどうすればよいでしょうか?
c++ - OpenMp for ループの並列化
次のコードを OpenMP で並列化してみます。
ただし、SpeedUp は常に約 1.0 (+- 0.05) です。可能なすべてのスケジューリング (auto、dynamic、static、guided )、さまざまなチャンク サイズ、collapse なし、collapse(2) を試しました。ランタイムはまったく変化しません...
私のせいがどこにあるのか、理由を説明できる人はいますか?
自動化された for ループ コンパイラの並列化が原因でしょうか?
アドバイス/ヒントをよろしくお願いします!
アップデート:
必要に応じて検証可能な例。
解決済み:
ばかげた間違い ... /openmp の代わりに /MP-Flag (Build with Multiple Processes) を設定していました。現在、SpeedUp は約 2.0 です :)
申し訳ありませんが、ご協力いただきありがとうございます。