問題タブ [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++ - cilkplus を使用して gcc で cilkscreen/cilkview を実行しようとしています
現在、cilkscreen を使用して cilk で競合状態を見つけようとしています。ただし、次の問題があります。
私は何を間違っていますか?ダウンロードしたディレクトリhttps://www.cilkplus.org/downloadを参照するように PATH をダウンロードして設定しました。64ビットでubuntu 13.10を実行しています。Cilkplus 自体は問題なく動作しています。
arrays - Cilk の配列表記は並列に実行されますか?
すなわち。為に
それは100のスレッドを作成しようとしますか? それともforループをするのと同じですか?
並列化されていると思っていましたが、テストしたところ、そうは見えません。
複数のスレッドを使用する方法はありますか、それとも配列表記だけですか?
cuda - CUDA ライブラリを Cilk++ にリンクする方法
Intel の Cilk++ と Nvidia の CUDA を使用してハイブリッド プログラムを開発しようとしています。Cuda コード (libtest.so) から共有ライブラリを作成しました。そして、Cilk++ プログラムとリンクして、一部の作業を GPU にオフロードできるようにしたいと考えています。しかし、cilk++ プログラムをコンパイルすると、この cuda ライブラリとリンクできず、次のようなエラーが発生します。
ファイル: test.cu
ファイル: main.cilk
以前は Cilk ライブラリを CUDA コードにリンクしていましたが、今はその逆が必要です。CUDA を Cilk とリンクすることはできますか? もしそうなら、私は何が欠けていますか?
c - インテル® Xeon Phi を使用した組み込み関数は、自動ベクトル化よりも優れたパフォーマンスを発揮しますか?
Intel Xeon Phi は、「IMCI」命令セット
を使用して提供します。私はそれを使用して、次のように「c = a*b」を実行しました。
そして、パフォーマンスをテストします。N SIZE が 1048576 の場合、
0.083317 秒のコストが必要です。パフォーマンスを自動ベクトル化と比較したい
ので、他のバージョン コードは次のようになります。
このバージョンのコストは 0.025475 秒 (0.002285 以下の場合もありますが、理由はわかりません)
_Cilk_for を #pragma omp parallel for に変更すると、パフォーマンスが低下します。
では、このような答えなら、なぜ組み込み関数を使用する必要があるのでしょうか?
私はどこかで間違いを犯しましたか?
コードを最適化するための良い提案を誰かに教えてもらえますか?
performance - 再帰スキャン アルゴリズムを使用して Cilk 並列処理を実装するにはどうすればよいですか?
再帰スキャン (プレフィックス サム) アルゴリズムを実装しました。これを以下に示します。ここでは、2 のべき乗から 27 乗までのサイズのランダムなリストを単純に生成し、正確さを単純なシーケンシャル スキャンと比較してチェックします。できます。
では、並列化してみたいと思います。ちょっと流行に敏感な気分なので、Cilk の実装をハックしました。チャンク削減の適切なスキャンをオフセットとして使用して、1) リダクションと 2) 各チャンクの再帰スキャンを並列化するために、2 つの主要な for ループを置き換えるだけです。そのように見えます。
そしてそれはうまくいきます!まあ、それは正しい結果を返します。期待していた性能には達していません。元のパフォーマンスは
シングル スレッド アプリケーションの場合、ただし Cilk バージョンのパフォーマンスはさらに悪く、次のランタイムで
私は 24 コアのマシンを使用しているため、ここで期待するスピードアップは明らかに見られません。私が最初に考えたのは、Cilk が再帰を誤って処理し、オーバーサブスクリプションを引き起こしているということでしたが、Cilk は特に再帰をうまく処理するはずです。これを適切に実装する方法に関するヒントはありますか? 一番下の for ループ (すべてを解放) と最後から 2 番目のループ セットの内側の for ループ (配列に結合) に cilk_for を追加しようとしましたが、パフォーマンスがさらに低下しました。
どんなアドバイスでも大歓迎です。
ただし、ここで説明する Belloch の並列スキャン アルゴリズムに切り替えるように言わないでください。私はすでに Cilk でそれを実装しており、非常にうまく機能しました。そのパフォーマンスをこの再帰的なソリューションと一致させることができるかどうかを確認したいと思います。
linux - CentOS での Cilkplus-GCC のコンパイル
CentOS 7 でインテル CilkPlus をコンパイル中にエラーが発生しました。
config.log を投稿できます (この投稿には少し大きすぎました - 役に立つ場合は投稿します)
コンソール出力の最後の行は次のとおりです。
誰でも私を助けることができますか?これを修正する方法がわかりません。