問題タブ [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.
c - Intel 配列表記のベクトル演算
Intelのドキュメントでは、配列の乗算と加算などを行うかどうかを明確にしていません:
それは次のことをしますか:
また
大規模な配列の場合、パフォーマンスに大きな違いがあります。このようなベクトル操作が STL ベクトルを使用していつ行われるかを知る限り、前者は行われます。
回答ありがとうございます!
c++ - Cilk Plus Array Notation を使用して、`if` ブロック ステートメント内で `__sec_implicit_index` を使用することは可能ですか?
icc
私の目標は、Cilk Plus Array Notation と Intel のコンパイラ バージョンを使用して、暗黙的なインデックス値に基づいて条件付きで配列に値を割り当てることです13.1.3 20130607
。
次のコードを検討してください。
このコードは正常にコンパイルされますが、実行しようとすると次のエラーが発生します。
注:これはリンク エラーのように見えるかもしれませんが、そうではありません。次のコードは正常にコンパイルおよび実行されるためです (条件は削除されています)。
それで、私の質問: Cilk Plus Array Notation を使用して、以下の条件付きコードの動作を達成することは可能ですか?
gcc - gcc-cilkplus をダウンロードするより迅速な方法はありますか?
C++ で並列アプリケーションを作成しようとしていますが、この理由からインテル Cilk-Plus ライブラリーを使用することにしました。
私の問題は、g ++の拡張機能をダウンロードして自分のマシンでコンパイルしようとしているだけですが、これには時間がかかります。インテル® Cilk™ ライブラリーのインストール・ドキュメント で説明されているように、コンパイラー・ソースを入手してコンパイルしようとしています。私は実際に GCC 4.9 リリースを目指しています。
SVNを試しています...
使用してみsvn
ましたが、これは非常に遅く、何度もプログラムが失敗し、壊れたところから再起動する必要があります。
GITを試しています...
git を試すと、さらに悪化します。コマンドは実行されますが、プログラムは失敗し、サーバー側にいくつかの壊れたものがあることを教えてくれます...彼らのgitリポジトリは整形式ではないと思います。
ブルートフォース: WGET
そこで、頭をニワトリに切り取り、以下を使用して直接再帰的にダウンロードすることにしましたwget
。
昨日からダウンロードしています...ダウンロードする気のないtarballがありますか、それともwget
進行状況情報なしでダウンロードする必要がありますか? ありがとうございました
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
満たされています。lib
include
share
bin
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
か???
どうすれば物事を成し遂げることができますか?
どうすればこれを乗り越えることができますか? ありがとうございました
c++ - Intel TBB と CilkPlus の比較
Intel x86_64 マシンを対象とする C++ で、時間のかかるシミュレーションを開発しています。少し調べたところ、並列化を可能にする興味深いライブラリが 2 つ見つかりました。
- インテルスレッディング ビルディング ブロック
- インテルシルク プラス
ドキュメントに記載されているように、どちらもマルチコア プロセッサでの並列処理を対象としていますが、どちらが最適かはまだわかっていません。私の知る限り、Cilkplus は並列処理を容易にするために 3 つのキーワードを実装するだけです (これにより、これらのキーワードをサポートするために GCC が再コンパイルされます)。一方、TBB は、より優れた並列開発を促進するための単なるライブラリです。
どちらをお勧めしますか?
CilkPlus のインストールで多くの問題が発生していることを考慮してください (まだ試していて、まだ悲鳴を上げています)。それで、最初にTBBをチェックする必要があるのではないかと考えていました。Cilkplus は TBB より優れていますか? あなたは何をお勧めします?
それらは互換性がありますか?
CilkPlus のインストールを完了する必要があります (まだこれを祈っています)。TBB を一緒に使用することは可能でしょうか? 彼らは一緒に働くことができますか?CiclkPlus と TBB の両方で SW 開発を経験した人はいますか? 彼らと一緒に働くことをお勧めしますか?
ありがとうございました
parallel-processing - 多項式乗算 CilkPlus
cilk_for を使用して、このコードの並列 cilk コードを作成しようとしています。
シリアルコード:
例えば:
c++ - cilkplus を使用して gcc で cilkscreen/cilkview を実行しようとしています
現在、cilkscreen を使用して cilk で競合状態を見つけようとしています。ただし、次の問題があります。
私は何を間違っていますか?ダウンロードしたディレクトリhttps://www.cilkplus.org/downloadを参照するように PATH をダウンロードして設定しました。64ビットでubuntu 13.10を実行しています。Cilkplus 自体は問題なく動作しています。