問題タブ [icc]
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.
linux - gcc、icc、またはMicrosoftのC / C ++コンパイラはNUMAをサポートまたは知っていますか?
キャッシュコヒーレントな 不均一メモリアクセス(NUMA)を備えたマルチプロセッサボードがある場合、つまり、プロセッサごとに個別のRAMを備えた個別の「ノースブリッジ」がある場合、コンパイラは、データをさまざまなメモリシステムに自動的に分散する方法を知っていますか?ローカルスレッドで動作しているプロセスは、ほとんどの場合、スレッドが実行されているプロセッサに関連付けられているRAMからデータを取得していますか?
1 GBがプロセッサ0に接続され、1GBがプロセッサ1に接続されるなどの設定があります。最大4つのプロセッサ。コヒーレントメモリ空間では、1番目のプロセッサのRAMの物理メモリはアドレス0〜1GB-1です。2番目のプロセッサの場合は1GBから2GB-1、というようになります。
malloc
特定のコア上のプロセスによって割り当てられた新しいメモリを、そのコアに関連付けられた物理RAMに関連付けるコンパイラはありますか?
unicode - インテル C コンパイラーと L"" プレフィックス
インテル C コンパイラーでロシア語の文字列を定義するにはどうすればよいですか? MSVS 2008 では、次のようにします。
そして、それは機能します。ICC では動作しません。
gcc - ICC vs GCC - 最適化と CPU アーキテクチャ
最適化レベルと特定のプロセッサ アーキテクチャへのケータリングに関して、GCC が Intel の ICC とどのように異なるかを知りたいと思っています。Linux には GCC 4.1.2 20070626 と ICC v11.1 を使用しています。
ICC の最適化レベル (O1 から O3) は、GCC とはまったく異なる場合、どのように異なりますか?
ICC は、さまざまなアーキテクチャ (IA-32、intel64、および IA-64) に特に対応できます。GCC に-march
は似ていると思われるコンパイラ オプションがあることを読みましたが、使用するオプションのリストが見つかりません。64 ビットの Intel Xeon X5570 を使用しています。アプリケーションを 64 ビット Intel CPU に対応させるために使用できる GCC コンパイラ オプションは他にありますか?
linux - コンパイラを GCC 3.4.2 から GCC 4.4.2 または ICC に切り替える場合、何に注意する必要がありますか?
私が取り組んでいるプロジェクトは、GCC 3.4.2 でコンパイルされています。新しいコンパイラへの切り替えを検討しています。しかし、プロジェクトは、リスクが十分に知られていない場合、大きな変更を加えない段階にあります。
コンパイラを切り替えると、どのような問題が予想されますか?
GCC 4.x は GCC 3.4.2 に比べてどのような利点がありますか?
ICC にはどのようなメリットがありますか?
c++ - C++ でロックを使用せずに競合状態を防ぐにはどうすればよいですか?
C++ でミューテックス/セマフォをロックまたは使用せずに競合状態を回避するにはどうすればよいですか? 配列に値を設定するネストされた for ループを扱っています。
多かれ少なかれ、同時に実行されている異なるスレッドが同時に array[k] に書き込まないように、これに対処したいと考えています。これにアプローチする方法について何か提案はありますか?
編集: Linux マシンで実行していますが、Intel コンパイラも使用する必要があります。「gcc」の代わりに「icc」を使用してコードをコンパイルします。
c - マクロ定義はMIPSとインテルCコンパイラーの間で互換性がありますか?
Cプログラムで定義したマクロに問題があるようです。
このソフトウェアをコンパイルして、MIPSコンパイラで正常に実行します。
ビルドはOKですが、iccを使用すると、実行時に「セグメンテーション違反」というエラーがスローされます。
これらの両方を64ビットアーキテクチャでコンパイルしました(SGIではMIPS、Intelプラットフォームでは-64フラグとiccを使用)。
両方のシステムでこれを正しく機能させるために使用する必要のある魔法のスイッチはありますか?インテル®コンパイラーの警告をオンにすると、プログラム内でマクロが呼び出されるすべての場所で警告がスローされます。通常、マクロのパラメーター(intからchar *)の不一致型の線に沿ったもの、またはそのようなもの。
これが問題のマクロです
これは基本的にデバッグに使用されます-関数呼び出しの数に基づいて設定されたタブ数のログファイルに出力します。(tdepth =タブの深さ)
マニュアルページをチェックしました。memalignはIRIXでのみサポートされているようです。これは私の問題かもしれません。私はそれを追跡するつもりです。
c++ - ICC 11.1 は ia64 の PTHREADS に関して奇妙な動作をします
ICC 11.1 を使用して ia64 マシンで作業しています。次のプログラムはうまくコンパイルされます。
でコンパイルするとicc test.cpp -o test
しかし、ファイルの内容を次のように変更すると:
私は突然得ます:
icc -c test.cpp -o test.o test.cpp(6): エラー: 識別子 "PTHREAD_STACK_MIN" は未定義です printf("%d\n", PTHREAD_STACK_MIN); ^
test.cpp のコンパイルが中止されました (コード 2)
誰かが私に理由を説明できますか? またはもっと重要なこと: 2 番目のコード例もコンパイルできるように、この問題を回避するにはどうすればよいですか?
c - OpenMPIにICCの代わりにGCCを使用させるにはどうすればよいですか?OpenMPIの再コンパイルは必要ですか?
のために書かれた並列計算用のCコードがありgcc
、それをクラスター上でコンパイルしたいと思います。これは明らかにicc
viaを使用しmpicc
ます。コードをicc
わかりやすくするために修正するのは時間がかかりすぎるように思われるので、代わりOpenMPI
に使用するように依頼できるかどうか疑問に思います。gcc
そのクラスターの管理者権限を持っていないので、実際には元の構成を台無しにしないほうがいいと思います。
たとえば、を設定できない場合は、ホームディレクトリでMakefile
コンパイルできれば幸いですが、その後にOpenMPI
何をする必要があるかについてのガイダンスが必要です。私たちを手伝ってくれますか?
UPDATE1
Makefile
含む_
そしてここにいくつかのOpenMPIファイルがあります
詳細をお知らせいただければお知らせください。
UPDATE2
ジェフの助けを借りて、私はのためのOpenMPI
設定を見つけることができましたmpicc
ただし、このファイルを編集する権限がなく、OPMI_CC = gcc
コンパイラを変更しません。
UPDATE3
環境変数CC = gcc
は役に立たない
UPDATE4
...しかし、export OMPI_CC=gcc
最終的には役立ちます(sharthのおかげで)。いつの日か、これらは別のものであることを覚えておく必要があります...
バイナリが作成されたにもかかわらず、次のバイバイメッセージが表示されました
gcc - makefile と g++ で openmp を使用する
icpc でビルドされたメイクファイルを使用して大規模なプロジェクトをビルドしていますが、g++ で実行する必要があります。
openmp を使用するファイルをコンパイルすると、-c フラグが使用され、ライブラリは使用されないため、openmp ではなくシリアルになります。私が見ているすべての例は、この -c フラグを使用していません。
リンクせずにopenmpを使用してコンパイルする方法はありますか?
編集:
-lgomp フラグを使用しています (ライブラリはライブラリ パス上にあります):
g++ -lgomp -c -w -O4 mainS.cpp
g++: -lgomp: リンクが行われていないため、リンカー入力ファイルは使用されていません
編集: 私の上司は、コード、makefile、およびドキュメントでいくつかの間違いを犯しました。時間を無駄にして申し訳ありません。少なくとも、私が費やした 5 時間よりも短い時間でした =/
c++ - -O2 を指定したインテル® C++ コンパイラーのように、コンパイラーは無限ループを削除できますか?
次のテスト コードは、デバッグまたはリリースを使用して VS で正しく動作し、GCC でも正しく動作します。また、デバッグを使用した ICC では正しく動作しますが、最適化が有効になっている場合 ( -O2
) には正しく動作しません。
で止まるはずwhile(q.isEmpty())
です。ただし、ICC (リリース) で有効にする-O2
と、無限に "doSomething" を開始します。
これはシングル スレッド プログラムであり isEmpty()
、として評価する必要があるtrue
ため、ICC がこのように動作する理由がわかりません。私は何かが恋しいですか?