問題タブ [cilk]
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++ - 内部および外部並列処理
内部並列処理と外部並列処理の違いは何ですか? 1 つのソリューション (ビジュアル スタジオ) に 2 つのプロジェクトがある場合、内部または外部で並列処理をどのように定義できますか?
ありがとう
openmp - スレッド数と時間結果の一貫性
私はxeon phiプログラミングを学ぼうとしています。
私はこのコードを CPU で実行しており、コプロセッサーで実行したい部分にオフロード プラグマを使用しています。
私はCPUでコンパイルしていて、 offloads を使用しているので、次を使用しています:
スレッド番号を指定するため。
私の問題:
1) コードを実行すると、常に 40 個のスレッドが使用されていることが示されます。
2)コンパイルせずにコードを何度も実行すると、異なる時間結果が得られます。
コード:
私はコンパイルしています:
c++ - 機能をグラフィックカードにオフロードすることは可能ですか?
C++ マルチスレッド アプリケーションを使用しており、Intel HD グラフィックスを使用して、パフォーマンスを向上させ、合計 CPU 使用率を減らしたいと考えています。
私はCILKを使用していません。(アプリケーションは純粋な C++ で書かれています)
次のリンクを読みました: Intel(R) Graphics Technology に計算をオフロードする方法
しかし、グラフィック カードに書き込まれた関数またはスレッドを処理する方法が見つかりませんでした。
出来ますか ?関数 (またはスレッド) を Intel HD Graphics にオフロードするために Intel コンパイラを使用する方法はありますか?
ありがとう
c++ - intel parallel X studio をインストールして Cilk libarry を使用する
Intel studio をインストールし、Visual Studio 2013 を使用しています。thread を使用するプログラムを作成したいと考えています。Intel でコンパイルしたいので、次の手順を実行しました。
- 空のプロジェクトを作成します
- cpp ソースを右クリックして Intel コンパイラの使用を選択し、選択したファイルに Intel C++ の使用を選択し、 All configuration を選択した後、On Ok ボタンをクリックします。
- 次に、プロジェクトを右クリックし、Intel Compiler Item から Intel c++ を使用して選択します。
- 念のため、プロパティ マネージャーに移動して構成マネージャーを確認します。プラットフォームは X64 である必要があります。さらに、私は c/c++ 、最適化 [Intel c++] または一般的な [Intel c++] で見ます。
したがって、すべての設定は正しく行われていると思いますが、Cilk/cilk.h を使用してコードを記述すると、これらのエラーが発生します。
これがコードです
cilk_for の代わりに _Cilk_for を使用しようとしましたが、問題は解決しませんでした。
誰が問題が何であるか教えてもらえますか?
c++ - cilk を使用してフィボナッチを計算する正しい方法は何ですか?
cilk を学んでいる間、私は 2 つの反対の例で反論しました。
反対は、これらの 2 行にあります。
最初のサイトには次のように書かれています。
fib()
空の継続が作成されるため、2 番目の再帰呼び出しに cilk_spawn 属性を追加する必要はありません。
- なぜだか分からない?
- 正しい方法は何ですか?(spawn コマンドを 2 つ使用するか、1 つだけ使用するか?)
c++ - cilk プログラムのコンパイル中に「error expected an expression」が表示される理由
Linux、Eclipse、Intel コンパイラ V14 を使用しています。
基本的なフィボナッチの例をコンパイルしようとしています:
そしてコンパイルエラーが発生します:
私は使用しようとしました:
しかし、同じエラー..
c++ - エラー: 'int' の前にプライマリ式が必要です
私が使用している: gcc --version gcc (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2
次のプログラムをコンパイルしようとしています。
しかし、次のエラーが発生します。
なにが問題ですか ?
ありがとう
c++ - Cilk Plus でスレッドセーフでないリソースのプールを編成する方法 (ワーカーごとに 1 つのリソース)?
Cilk Plus を使用して並列化したいシリアル コードがあります。nts
メイン ループは、異なるデータ セットに対して処理関数を繰り返し呼び出すため、外部ライブラリによって提供されるクラス (たとえば ) にカプセル化された非スレッド セーフ リソースの使用を除いて、反復は互いに独立しています。これはファイル名を取り、それに対して I/O を行います。
OpenMP を使用している場合は、スレッドと同じ数のリソースを含むリソースのプールを作成し、スレッド ID に従ってこれらのリソースにアクセスします。
Cilk Plus を使用すると、 API__cilkrts_get_nworkers()
と__cilkrts_get_worker_number()
API を使用して同様のことができますが、Intel フォーラムの複数の投稿から、これは問題に対する間違った解決策であると考えられており、正しい解決策はホルダー ハイパーオブジェクトを使用することであることがわかりました。
ワーカー スレッドと同じ数のビューだけを作成したいという点を除けば、ホルダー ソリューションは確かに見栄えがします。つまり、3 つのワーカー スレッドの場合、3 つのオブジェクトが必要であり、それ以上は必要ありません。正当な理由は、私が言うように、リソースはサードパーティのライブラリによって提供され、構築するのに非常に費用がかかり、後で結果のファイルを処理する必要があるため、少ないほど良いということです.
残念ながら、ワーカーごとにビューを作成して同期まで保持するのではなく、所有者が私が理解できないロジックに従ってビューを作成および破棄していることを発見しました。影響を与える方法はないようです。この動作。
ホルダーを私が望むように動作させることは可能ですか? そうでない場合、私の問題に対する慣用的な Cilk Plus ソリューションは何でしょうか?
ホルダーを調査するために使用したプログラムは次のとおりです。1 回の実行でテスト マシンに最大 50 個のビューが作成され、一見ランダムに割り当てられて破棄されることに注意してください。