問題タブ [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.

0 投票する
1 に答える
454 参照

c++ - 内部および外部並列処理

内部並列処理と外部並列処理の違いは何ですか? 1 つのソリューション (ビジュアル スタジオ) に 2 つのプロジェクトがある場合、内部または外部で並列処理をどのように定義できますか?

ありがとう

0 投票する
1 に答える
101 参照

openmp - スレッド数と時間結果の一貫性

私はxeon phiプログラミングを学ぼうとしています。

私はこのコードを CPU で実行しており、コプロセッサーで実行したい部分にオフロード プラグマを使用しています。

私はCPUでコンパイルしていて、 offloads を使用しているので、次を使用しています:

スレッド番号を指定するため。

私の問題:

1) コードを実行すると、常に 40 個のスレッドが使用されていることが示されます。

2)コンパイルせずにコードを何度も実行すると、異なる時間結果が得られます。

コード:

私はコンパイルしています:

0 投票する
1 に答える
1168 参照

c++ - 機能をグラフィックカードにオフロードすることは可能ですか?

C++ マルチスレッド アプリケーションを使用しており、Intel HD グラフィックスを使用して、パフォーマンスを向上させ、合計 CPU 使用率を減らしたいと考えています。

私はCILKを使用していません。(アプリケーションは純粋な C++ で書かれています)

次のリンクを読みました: Intel(R) Graphics Technology に計算をオフロードする方法

しかし、グラフィック カードに書き込まれた関数またはスレッドを処理する方法が見つかりませんでした。

出来ますか ?関数 (またはスレッド) を Intel HD Graphics にオフロードするために Intel コンパイラを使用する方法はありますか?

ありがとう

0 投票する
1 に答える
110 参照

c++ - intel parallel X studio をインストールして Cilk libarry を使用する

Intel studio をインストールし、Visual Studio 2013 を使用しています。thread を使用するプログラムを作成したいと考えています。Intel でコンパイルしたいので、次の手順を実行しました。

  1. 空のプロジェクトを作成します
  2. cpp ソースを右クリックして Intel コンパイラの使用を選択し、選択したファイルに Intel C++ の使用を選択し、 All configuration を選択した後、On Ok ボタンをクリックします。
  3. 次に、プロジェクトを右クリックし、Intel Compiler Item から Intel c++ を使用して選択します。
  4. 念のため、プロパティ マネージャーに移動して構成マネージャーを確認します。プラットフォームは X64 である必要があります。さらに、私は c/c++ 、最適化 [Intel c++] または一般的な [Intel c++] で見ます。

したがって、すべての設定は正しく行われていると思いますが、Cilk/cilk.h を使用してコードを記述すると、これらのエラーが発生します。

ここに画像の説明を入力

これがコードです

cilk_for の代わりに _Cilk_for を使用しようとしましたが、問題は解決しませんでした。

誰が問題が何であるか教えてもらえますか?

0 投票する
2 に答える
249 参照

c++ - cilk を使用してフィボナッチを計算する正しい方法は何ですか?

cilk を学んでいる間、私は 2 つの反対の例で反論しました。

  1. インテルから

  2. ウィキ(またはネットの他の例)から:

反対は、これらの 2 行にあります。

最初のサイトには次のように書かれています。

fib()空の継続が作成されるため、2 番目の再帰呼び出しに cilk_spawn 属性を追加する必要はありません。

  1. なぜだか分からない?
  2. 正しい方法は何ですか?(spawn コマンドを 2 つ使用するか、1 つだけ使用するか?)
0 投票する
2 に答える
1092 参照

c++ - cilk プログラムのコンパイル中に「error expected an expression」が表示される理由

Linux、Eclipse、Intel コンパイラ V14 を使用しています。

基本的なフィボナッチの例をコンパイルしようとしています:

そしてコンパイルエラーが発生します:

私は使用しようとしました:

しかし、同じエラー..

0 投票する
2 に答える
1373 参照

c++ - エラー: 'int' の前にプライマリ式が必要です

私が使用している: gcc --version gcc (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2

次のプログラムをコンパイルしようとしています。

しかし、次のエラーが発生します。

なにが問題ですか ?

ありがとう

0 投票する
1 に答える
118 参照

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 個のビューが作成され、一見ランダムに割り当てられて破棄されることに注意してください。