問題タブ [cilk-plus]

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 に答える
202 参照

c - Intel 配列表記のベクトル演算

Intelのドキュメントでは、配列の乗算と加算などを行うかどうかを明確にしていません:

それは次のことをしますか:

また

大規模な配列の場合、パフォーマンスに大きな違いがあります。このようなベクトル操作が STL ベクトルを使用していつ行われるかを知る限り、前者は行われます。

回答ありがとうございます!

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

c++ - Cilk Plus Array Notation を使用して、`if` ブロック ステートメント内で `__sec_implicit_index` を使用することは可能ですか?

icc私の目標は、Cilk Plus Array Notation と Intel のコンパイラ バージョンを使用して、暗黙的なインデックス値に基づいて条件付きで配列に値を割り当てることです13.1.3 20130607

次のコードを検討してください。

このコードは正常にコンパイルされますが、実行しようとすると次のエラーが発生します。

注:これはリンク エラーのように見えるかもしれませんが、そうではありません。次のコードは正常にコンパイルおよび実行されるためです (条件は削除されています)

それで、私の質問: Cilk Plus Array Notation を使用して、以下の条件付きコードの動作を達成することは可能ですか?

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

gcc - gcc-cilkplus をダウンロードするより迅速な方法はありますか?

C++ で並列アプリケーションを作成しようとしていますが、この理由からインテル Cilk-Plus ライブラリーを使用することにしました。

私の問題は、g ++の拡張機能をダウンロードして自分のマシンでコンパイルしようとしているだけですが、これには時間がかかります。インテル® Cilk™ ライブラリーのインストール・ドキュメント で説明されているように、コンパイラー・ソースを入手してコンパイルしようとしています。私は実際に GCC 4.9 リリースを目指しています。

SVNを試しています...

使用してみsvnましたが、これは非常に遅く、何度もプログラムが失敗し、壊れたところから再起動する必要があります。

GITを試しています...

git を試すと、さらに悪化します。コマンドは実行されますが、プログラムは失敗し、サーバー側にいくつかの壊れたものがあることを教えてくれます...彼らのgitリポジトリは整形式ではないと思います。

ブルートフォース: WGET

そこで、頭をニワトリに切り取り、以下を使用して直接再帰的にダウンロードすることにしましたwget

昨日からダウンロードしています...ダウンロードする気のないtarballがありますか、それともwget進行状況情報なしでダウンロードする必要がありますか? ありがとうございました

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

unix - GCC-CilkPlus 4.9 のコンパイルに関する問題

x86_64 RHEL マシン (CentOS 6.4) で、並列マルチコア プラットフォームをターゲットとするアプリケーションをコンパイルするためのIntel CilkPlus (v4.9) モジュールを使用して GCC コンパイラをコンパイルしようとしています。

インストールについては、 GNU GCC Docに従っています。これは、CilkPlus 拡張機能を備えた GCC と非常によく似ています。私は特に、前述のドキュメントの前提条件構成のセクションに十分な注意を払うことに重点を置いていました。

1) ダウンロード

手順ページで指定されているように、このスナップショットを使用して必要なものをすべてダウンロードしました。ダウンロードは成功し、tar も解凍されました。フォルダの名前を として変更し、ディレクトリの下に置きました。cilkplus-gcc$HOME

また、別のディレクトリを作成しました。$HOME/b-gccここから、コマンドを実行してからconfigureコマンドを実行しmakeます。これにより、同じディレクトリにインストールすることができなくなります (すべてを別のディレクトリに構築することを奨励するこの手順にとって望ましくないことです)。

2) 初期設定

ドキュメントで指定されているように$HOME/cilkplus-gcc/contrib、インストール プロセス (つまり、GCC のコンパイル) に必要な 3 つの最も重要なライブラリをビルドするために、ディレクトリに移動しました。

  • GMP:$HOME/cilkplus-gcc/contrib/gmp-4.3.2ディレクトリにあります。
  • MPFR:$HOME/cilkplus-gcc/contrib/mpfr-2.4.2ディレクトリにあります。
  • MPC:$HOME/cilkplus-gcc/contrib/mpc-0.8.1ディレクトリにあります。

MPFR は GMP に依存し、MPC は GMP と MPFR の両方に依存するため、出現順にビルドします。必要なすべてのファイルをディレクトリに配置したかった$HOME/cilkplus-gccので、これらのライブラリのインストーラーにすべてを$HOME/cilkplus-gcc/contrib/tmpディレクトリに配置するように指示しました。そう:

直接の結果として、私のディレクトリはディレクトリ、、およびそれらの 3 つのライブラリで$HOME/cilkplus-gcc/contrib/tmp満たされています。libincludesharebin

3) インストール

すべてをコンパイルするのに忙しくなります。ディレクトリに移動し、$HOME/b-gccそこから次のコマンドを発行します。

構成はスムーズに進み、現在のフォルダー ( ) に make が作成されます$HOME/b-gcc。作成する時間と私が発行する時間: sudo make.

2分でこのエラーが発生します

g++ -c -g -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -fno-common -DHAVE_CONFIG_H -I. -Ic-family -I/home/andry/cilkplus-gcc/gcc -I/home/andry/cilkplus-gcc/gcc/c-family -I/home/andry/cilkplus-gcc/gcc/../include - I/home/andry/cilkplus-gcc/gcc/../libcpp/include -I/home/andry/cilkplus-gcc/contrib/tmp//include -I/home/andry/cilkplus-gcc/contrib/tmp/ /include -I/home/andry/cilkplus-gcc/contrib/tmp//include -I/home/andry/cilkplus-gcc/gcc/../libdecnumber -I/home/andry/cilkplus-gcc/gcc/. ./libdecnumber/bid -I../libdecnumber -I/home/andry/cilkplus-gcc/gcc/../libbacktrace /home/andry/cilkplus-gcc/gcc/c-family/cppspec.c -o c-ファミリー/cppspec.3 : * [specs] エラー 127 make 3 : ディレクトリ /home/andry/b-gcc/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory/home/andry/b-gcc を離れます make 1 : * [stage1-bubble] エラー 2 make 1 : ディレクトリ `/home/andry/b-gcc' を離れます

しかし、/usr/local/libフォルダーを確認すると、そこにあることがはっきりとわかりますlibiconv.so.2! -liconvしたがって、インストール手順(つまり、GCCコンパイル自体)がライブラリを見つけることができないことを理解しています(フラグが表示されているため、明確に参照されています)。したがって、すべてを削除して、変更したコマンド$HOME/b-gccを発行します。configure

再度発行sudo makeすると、以前のエラーは発生しなくなり、時間が経過します。5/6 分後、次のエラーが表示されます。

x86_64-unknown-linux-gnu-ar をチェックしています... ar x86_64-unknown-linux-gnu-lipo をチェックしています... リポ x86_64-unknown-linux-gnu-nm をチェックしています... /home/andry/b -gcc/./gcc/nm x86_64-unknown-linux-gnu-ranlib をチェックしています... ranlib x86_64-unknown-linux-gnu-strip をチェックしています... ストリップ ln -s が機能するかどうかをチェックしています... はい、チェックしていますx86_64-unknown-linux-gnu-gcc... /home/andry/b-gcc/./gcc/xgcc -B/home/andry/b-gcc/./gcc/ -B/home/andry/cilkplus- install/x86_64-unknown-linux-gnu/bin/ -B/home/andry/cilkplus-install/x86_64-unknown-linux-gnu/lib/ -isystem /home/andry/cilkplus-install/x86_64-unknown-linux- gnu/include -isystem /home/andry/cilkplus-install/x86_64-unknown-linux-gnu/sys-include
オブジェクト ファイルのサフィックスをチェックしています... 詳細については、config.log で構成: エラー: を /home/andry/b-gcc/x86_64-unknown-linux-gnu/libgcc': configure: error: cannot compute suffix of object files: cannot compile See 参照してください。2を作る: * [configure-stage1-target-libgcc] エラー 1 make 2 : ディレクトリ /home/andry/b-gcc' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory/home/andry/b-gcc を離れています'

まあ、かなり奇妙なものです...だから私はチェック$HOME/b-gcc/x86_64-unknown-linux-gnu/libgcc/config.logしました(関連する抜粋を表示します):

-isystem /home/andry/cilkplus-install/x86_64-unknown-linux-gnu/sys-include
-c -g -O2 conftest.c >&5 /home/andry/b-gcc/./gcc/cc1: エラー中共有ライブラリを読み込んでいます: libmpc.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません configure:3593: $? = 1 構成: 失敗したプログラムは: | /* confdefs.h */ | #define PACKAGE_NAME "GNU C ランタイム ライブラリ" | #define PACKAGE_TARNAME "libgcc" | #定義 PACKAGE_VERSION "1.0" | #define PACKAGE_STRING "GNU C ランタイム ライブラリ 1.0" | #定義 PACKAGE_BUGREPORT "" | #define PACKAGE_URL " http://www.gnu.org/software/libgcc/ " | /* confdefs.h を終了します。*/ | | | 整数 | メイン () | { | | | ; | | 0 を返します。| | } configure:3607: エラー: /home/andry/b-gcc/x86_64-unknown-linux-gnu/libgcc': configure:3610: error: cannot compute suffix of object files: cannot compile See詳しくは config.log を参照してください。

エラーは基本的に次のとおりです。

/home/andry/b-gcc/./gcc/cc1: 共有ライブラリの読み込み中にエラーが発生しました: libmpc.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルやディレクトリはありません

しかし、私はすでに(構成中に)検索に行くように言いませんでしlibmpc.so.2$HOME/cilkplus-gcc/contrib/tmpか???

どうすれば物事を成し遂げることができますか?

どうすればこれを乗り越えることができますか? ありがとうございました

0 投票する
5 に答える
4210 参照

c++ - Intel TBB と CilkPlus の比較

Intel x86_64 マシンを対象とする C++ で、時間のかかるシミュレーションを開発しています。少し調べたところ、並列化を可能にする興味深いライブラリが 2 つ見つかりました。

ドキュメントに記載されているように、どちらもマルチコア プロセッサでの並列処理を対象としていますが、どちらが最適かはまだわかっていません。私の知る限り、Cilkplus は並列処理を容易にするために 3 つのキーワードを実装するだけです (これにより、これらのキーワードをサポートするために GCC が再コンパイルされます)。一方、TBB は、より優れた並列開発を促進するための単なるライブラリです。

どちらをお勧めしますか?

CilkPlus のインストールで多くの問題が発生していることを考慮してください (まだ試していて、まだ悲鳴を上げています)。それで、最初にTBBをチェックする必要があるのではないかと考えていました。Cilkplus は TBB より優れていますか? あなたは何をお勧めします?

それらは互換性がありますか?

CilkPlus のインストールを完了する必要があります (まだこれを祈っています)。TBB を一緒に使用することは可能でしょうか? 彼らは一緒に働くことができますか?CiclkPlus と TBB の両方で SW 開発を経験した人はいますか? 彼らと一緒に働くことをお勧めしますか?

ありがとうございました

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

parallel-processing - 多項式乗算 CilkPlus

cilk_for を使用して、このコードの並列 cilk コードを作成しようとしています。

シリアルコード:

例えば:

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

c++ - cilkplus を使用して gcc で cilkscreen/cilkview を実行しようとしています

現在、cilkscreen を使用して cilk で競合状態を見つけようとしています。ただし、次の問題があります。

私は何を間違っていますか?ダウンロードしたディレクトリhttps://www.cilkplus.org/downloadを参照するように PATH をダウンロードして設定しました。64ビットでubuntu 13.10を実行しています。Cilkplus 自体は問題なく動作しています。