Eclipse IDEを使用してWindows 7でopenMPをCでテストしたいと思います。 openMPを設定するための具体的な手順はわかりません。手伝って頂けますか?openMPをセットアップするには
3
A
答えて
2
:
C/C++ Build -> Settings -> Includes: add gomp
C/C++ Build -> Settings -> Miscellaneous -> Other Flags: add -fopenmp
あなたはMinGWのためにOpenMPのバイナリをインストールすることも必要があります。
6
私はOpenMPをあまり使っていませんが、ここで自分で試してみました。
OpenMPを使用すると、コンパイル時にパラレルで実行する必要があります。ここでは10000000000までカウントする例です。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
long result = 0;
long i;
#pragma omp parallel for reduction(+: result)
for (i = 0; i < 10000000000; i++) {
result++;
}
printf("%li\n", result);
return EXIT_SUCCESS;
}
これは、通常のCプログラムのようにコンパイルされます:
$ gcc -o OpenMPTest main.c
それは私のマシンで30秒で実行されます:
追加$ time ./OpenMPTest
10000000000
real 0m30.674s
user 0m30.628s
sys 0m0.014s
-fopenmp
gccへのオプションにより、OpenMPサポートが有効になります。つまり、ループを複数のスレッドで実行する必要があります。
$ gcc -o OpenMPTest main.c -fopenmp
これは、デュアルコアシステム上で15秒に実行されている時間を半減:
#pragma omp
これは次のとおりです。ここで
$ time ./OpenMPTest
10000000000
real 0m15.840s
user 0m30.123s
sys 0m0.037s
はその#pragma
ラインが何をするかについての簡単な説明ですopenmpコマンドの接頭辞。
parallel
次の文を並列に実行するようにコンパイラに指示します。
for reduction(+: result)
添加することによって、一つの値に並列ループからresult
変数のすべての値を結合。これを削除すると、最終的な番号が正しく表示されなくなります。
私はEclipseを使用しているが、MSDNのドキュメントは、OpenMPを記述するために非常に優れている知っている:あなたのプロジェクトの設定で、次のパラメータを設定する必要があるEclipseで OpenMP in Visual C++
関連する問題
- 1. OpenMPディレクティブを無効にするには?
- 2. CodeLiteでOpenMPを使用するには?
- 3. は、OpenMP
- 4. OpenMPでLLVM/Clangをビルド中にOpenMPとC++に関連するエラー
- 5. は、OpenMPは時間
- 6. シーケンシャルコードをopenMPパラレルコンストラクトに変換する
- 7. openmpをpthreadsにコンパイルするCコード
- 8. Pythonでプログラムをセットアップするには?
- 9. basic repository_ruleをセットアップするには?
- 10. カミナリを正しくセットアップするには
- 11. Innoセットアップ:オルガーウィザードページを設定するには?
- 12. GitをMediawikiでセットアップするには?
- 13. Magento2:magentoセットアップを再インストールするには?
- 14. gitミラー環境をセットアップするには?
- 15. Django:枕をセットアップするには?
- 16. ピカソで@BindingAdapterをセットアップするには?
- 17. コードで糸クライアントをセットアップするには?
- 18. ubuntuでyaws-1.89をセットアップするには?
- 19. リモートコードカバレッジでコード化をセットアップするには?
- 20. コマンドラインでsdl 2.0をセットアップするには?
- 21. FreeBSDでJavaをセットアップするには?
- 22. OpenMPを使用してGPUにチームを配布するには?
- 23. OpenMPでは非常に遅いです
- 24. ReSharperをvs2010にセットアップした後、vs2012にセットアップする方法
- 25. Makefile/GCCでOpenMPサポートを有効にするには
- 26. OpenMPコードをCコードにコンパイル
- 27. OpenMP:上のテキストを下に
- 28. OpenMPヘルプコード
- 29. OpenMPパラメータスイープパラレル
- 30. Openmpスレッドスリープ
このページのヘルプをい? http://gcc.gnu.org/onlinedocs/libgomp/Enabling-OpenMP.html#Enabling-OpenMP基本的に、コンパイラフラグとして-fopenmpを追加し、sprincle '#pragma omp whatever'をコードに追加します。 – yosukesabai
コンパイラとは何ですか? – osgx
コンパイラはMinGW – TGM