1read 100read
2012年07月プログラム140: OpenMPプログラミング (388)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
Google Maps API 質問箱 (323)
強いAI(人工知能)ver0.0.1 (963)
★初心者にVisual C++を教えるスレ★ Part38 (665)
エスパーが質問に答えるスレ (309)
Google Maps API 質問箱 (323)
C++11/C++1y 16 (225)
OpenMPプログラミング
1 :04/12/08 〜 最終レス :2012/10/25 オフィシャルサイト http://www.openmp.org/ リンクなどは>>2 以下で
2 : ↑
3 : 産業的な視点から考えて需要はありますか?
4 : NULL
5 : >>3 ある
6 : OpenMPってなに?
7 : 共有メモリ型の並列計算のためのAPI。 対極にあるのが分散メモリ型のMPI。 いずれも計算用途。 pthreadやMPIより、OpenMPによる並列化ははるかに容易。 ただし共有メモリで並列計算するには、マシンのプロセッサ数が並列数以上でなくてはならない。 つまり、マシンのコストが高い。
8 : gccにインストールできますか?
9 : 共有メモリ型のプログラミングって何十台というPCでできるものですか?
10 : >>9 ( ゚Д゚)ポカーン
11 : >>9 SDSMとか使ってがんばればできるぞ。 お薦めはしないがなー。
12 : よい入門書があれば教えてください
13 : 初めてのMP
14 : >>12 ドラクエやれ
15 : OpenMPとMPIどちらを勉強するのが得策ですか?
16 : >>15 MPI
17 : OpenAL
18 : OpenMPとpthreadの違いがわかりません。 効率、可搬性などどちらが優れているのでしょうか?
19 : Dualコア時代になるのに閑散としてるなこのスレ。 VisualStudio2005betaを使ってるヤツは少ないか。 所詮業務じゃ使えないしな。。 しかしDualコア+HyperThreadで、この年末には 家庭用PCですら4CPUになっちまうのかな。スゲエ。
20 : OpenMPをVCで使う方法を教えてください
21 :
22 : >>20 2005β使え。
23 : LinuxでOpenMPを使いたいのですが、gccのほかに何をダウンロードすればよいのでしょうか?
24 : OpenMPを使う利点を教えてください
25 : >>7
26 : 共有メモリ型擬似4CPUは、もう普及へ向かっているわけだがw CELLは分散メモリだからMPIか?
27 : gccに対応したフリーのOpenMPはどこからダウンロードできるのでしょうか?
28 : http://phase.hpcc.jp/Omni/home.ja.html
29 : PentiumD買ったので、手持ちのソフトをOpenMPで並列化しようと思ってる。 尼で見つけた "Parallel Programming in OpenMP" って本の評価はどんなもんですか? ttp://www.amazon.co.jp/exec/obidos/ASIN/1558606718/250-7296386-2789028
30 : 2000年の本だと古いんじゃないかなあ。 Intelのサイトで技術PDF探してみては?
31 : >>30 ですよねぇ。こういう方面の技術って、手詰まりなんですかね?
32 : OpenMPってpthreadと比較して何が違うのでしょうか?
33 : 逐次プログラムにちょっと書き足すだけで並列に動くお手軽さ。
34 : 質問 #pragma omp parallel for private(j) for(i=0;i<100;i++) for(j=0;j<100;j++) 何か演算 とした場合これはiを分割して実行していて jはローカル変数として分割されたiの中で0〜99まで回してるってことですか? それともjが分割されているってことですか?
35 : 愛を分割してる方
36 : インテルのコンパイラにはOpenMPはついてくるのですか?
37 : >>36 日本語(ry icc -openmp hoge.c
38 : Sunのソラリス落とせば OpenMP付のSunのコンパイラも手に入るよ 高性能コンパイラが無料だなんてなあ
39 : Athlon系は分散メモリだからOpenMP使えないのかな?
40 : >>39 どういう意味?
41 : 簡単に並列処理を行わせるようにするためのもの? 将来的にはこういうのが普通に使われるようになるかもね。
42 : GCCも4.2でOpenMP対応するみたいだね。 そしたらいよいよ知名度上がるんじゃないの?
43 : gccがないとOpenMP使えなかった環境てマックくらいじゃない? Windowsもかな
44 : Intel コンパイラはサポートに熱心だよな。 今度Mac版も出るらしいから、Win、Mac、Linuxどの環境でもGCC、IntelコンパイラでOpenMP できるようになる鴨。
45 : >>44 おまい、髭のおっさんだろ。
46 : OpenMPが使えるかどうかによってヘッダをインクルードするかどうかを条件分岐したいのですが どのようにしたらコンパイラがOpenMPをサポートしているか調べられるでしょうか?
47 : >>43 VC++8は対応してるよ
48 : >>46 #ifdef _OPENMP #endif
49 : GOMPはどこのページからダウンロードできるのでしょうか?
50 : C++相談室で教えてやっただろうが。
51 : TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
52 : >>50 kwsk
53 : >>52 今はマージされたのがtagsにある。 鯖の健康を損なわない範囲で好きなだけチェックアウトしなさい。
54 : OpenMP初めて知りました。こんなに簡単にマルチスレッドプログラムが作れるなんて 時代が変わったようだな
55 : 大きい単位で独立性の高いスレッドを切り出すのがパフォーマンスを上げるポイントなので、 細かい単位であっちこちで同期を取るようなプログラムが手軽に作れてしまえるOpenMPは痛し痒し。 激しくパフォーマンスが出なくてシングルで動かしたときより遅くなることも。
56 : OpenMPってwindowsでできるの?
57 : >>56 VC++ 2005
58 : >>55 細粒度はパフォーマンスでないけど、お手軽並列化〜♪って感じなんでないかい。
59 : OpenMPってお手軽だけど、効率はあまり良くないよね
60 : モチロンソウヨ
61 : ハイパースレッディングでOpenMP使うと激しく遅くなるよね。
62 : それは論理CPUにスレッドをバインドすれば なおるんじゃね? どうやってバインドするかしらねーけど。
63 : あまってる演算器や回路をつかって2CPUに見せかけるのがHTだから 行列の計算のような同じタイプの計算を並列化した場合遅くなるのは当たり前。 片方は整数もう片方で実数計算をさせると効果が出るかもしれない。
64 : そうなると #pragma omp for が全滅・・・
65 : 同じ回路を使う場合でもレジスタが倍になって依存性が減るから、パイプラインのストールが減るよ。 あと実数がメインの場合、実数程の負荷は無いにせよアドレスの計算やループカウンタで整数も結構忙しい。 実数をメインにするとそこらへん上手く住み分け出来てると思った。 演算器を効率良く使えてウマー。
66 : 依存性が減るって表現はしっくりこないな
67 : VS2005のC++でOpenMPを使おうと思って、コードを書きましたが、 プログラムが開始する前にエラーが起こります。 /openmp をつけてコンパイルしたり、マニフェストファイルに <file name="vcompd.dll" hash="XXXX" hashalg="XXX"/>と入れ たりしましたが、まったくピクリとも動いてくれません。 皆さんは普通にVS2005でOpenMP使ってますか?
68 : インストーラ用のマージモジュールがあったので、適当なプログラムでインストーラーを作って入れた。 \Program Files\Common Files\Merge Modules Microsoft_VC80_OpenMP_x86.msm Microsoft_VC80_DebugOpenMP_x86.msm リリース版だけならvcregist_x86.exeでも導入できる。
69 : >>67 うん、普通に使える。 >プログラムが開始する前にエラーが起こります。 ってのがどういう意味かよく分からんし(コンパイル時か実行時か)、 とりあえずエラーメッセージとかソースとか晒してみたら。
70 : Pro以上なら普通に使えるが、実はStdやExpressでも使う方法がある。 足りないものはomp.h とvcomp(d).dllとインポートライブラリで、 これはPlatformSDK (for Win2003とかいう新しめの奴)を入れると付いてくる。 これをIDEの各検索パスに追加すればコンパイルは出来る。 ただし、WinSXSディレクトリにdllをインストールしないので実行時にDLLが無いためエラーになる。 この導入の仕方は>>68 のとおり。 同じ方法でPGOもできないかと思ったがこれは無理でした。 ただ単純な/GL /LTCG オプションでのコンパイルは出来るからこれで我慢。
71 : ありがとうございます。インポートライブラリを入れるとうまく動きました。 ためしに for( i=1; i<=10000000; i++ ) { double t1 = sin( i*3.14/10000000.0 ); double t2 = cos( i*3.14/10000000.0 ); s = s+t1*t1+t2*t2; } を計算すると、デバッグ版ではOpenMPの方が5倍くらい時間がかかるが、 リリース版では1割くらい早くなった。 ちなみに、ハイパースレッドのデュアル
72 : #pragma omp parallel for reduction(+:s) for ( ... そのプログラムだとこうですか?うちの環境だとHTの1CPUだからかずぶずぶの結果です。
73 : OpenMP 入門ありますよ。 http://www.xlsoft.com/jp/products/intel/docs/OpenMP/html/OpenMP.html
74 : その次のステップの入門書がほしい
75 : 72>> その意味で ずぶずぶ とはどこの方言?
76 : >>75 東京
77 : g++では利用できないのでしょうか?
78 : >>77 snapshotsとかからGCC 4.2以降を取ってきて試してみろ
79 : OpenRぽこちんか
80 : OpenマンPのG☆SPOTに決まってるだろバカか
81 : >>70 omp.hがPSDK(SP1)/(R2)に入っていませんでした。 実際には何をインストールなさいましたか。 >>68 マージモジュールを使ったインストール例を参照することは可能でしょうか。 vs6しか使ったことがなく、どうもうまくいきません。 なお、私はVS2005のstd(アップグレード)を使っています。
82 : Sun SorilisとVC++(std)の組み合わせで、OpenMPできますか??
83 : >>82 できない
84 : OpenMPでスレッド数を取得するには #pragma omp parallel { cout<<omp_get_num_threads()<<endl; } でよいのでしょうか?もっと何かスマートな方法はないでしょうか?
85 : #pragma omp sectionsでfor構文でのdynamicスケジュールの様な動作をさせたいのですが、 どのように書けばよいのでしょうか?
86 : しらね
87 : >>72-73 OpenMPによる並列プログラミングと数値計算法 http://www.amazon.co.jp/gp/product/4621077171 とかどーでしょ。 >>84 パラレルリージョンの中でなくてもよいはず。 #ifdef _OPENMP cout<<omp_get_num_threads()<<endl; #endif などとすればよいかと。
88 : omp_get_num_threads() はその時点でスレッドチームを構成しているスレッドの数を返すから 逐次実行部分で呼ぶと 1 を返す。
89 : #pragma omp parallel { #pragma omp single cout<<omp_get_num_threads()<<endl; }
90 : program main !$ use omp_lib implicit none character(len=4),parameter :: str(0:2) = ["hage","hoge","huge"] print *, "Hello, World!" !$omp parallel num_threads(3) !$ print *, trim(str(omp_get_thread_num())) !$omp end parallel end program main
91 : レベルの低い人向けの商売ってあるじゃないですか たとえば、カレーライス。子供の食い物ね。マクドナルド。通はモスバーガーでしょ? 野球だと、巨人。クルマだと、トヨタ。音楽だと、ミスチル。政治だと、自民党。 ビートルズだと、ポールの曲。音楽分かってる人はジョンですよね。 マンガだと、手塚治虫や藤子不二雄。今更読む必要もないw 小説だと、古本屋に山積されてる赤川次郎。小説マニアは読みませんねw 長嶋茂雄・新庄剛志・三浦カズ・ゴン。名前だけでむかつきますね。 DELLってつまりそういうレベルの低い人向けの商品ですよね。 歴史を作るのは我々マニアですから、記憶からはいつか消え去るんですよDELLはw
92 : C++のクラスでstaticな変数を使いたいのですが、OpenMPの中で更新した場合、安全に更新されるのでしょうか?
93 : されると思う?localな変数でも、ちゃんと明示しないと無理だし、 データ並列になっていないのでは意味無いと思わない?
94 : ,ィ __ ,. / |´ ̄`ヽー- 、 ト、 , -‐、/./.- 、 書き込みのはやきこと風の如く / | | ヽ l l ( 火◇風 ノ /o ̄`ハ._.ゝ===┴=く.ノ- 、 ノ ◇ ◇ ( 他人と会話せざること林の如く /o O / l´ ⌒ ⌒ lo ',ヽ ( 山◇ 林 } \___/. ト、(●) (●) ハ ∧ `⌒/7へ‐´ ネットで煽ること火の如く / ,イ レ::::⌒(__人__)⌒l~T--‐彡 /./ / ̄ ̄l. 彡、 |r┬-| ノ'l l::::::::::彡ー7⌒つ、 部屋から動かざること山の如し 彡:::::::::::l ト、__ `ー' /| l::::::::::::ミ {,_.イニノ 彡ソ/ノハ ト、 \ / ,イ 川ハ ヾー‐'^┴
95 : >>92 ちゃんと排他制御や共有のための宣言をすれば問題ないかと。 パラレルリージョンの中で single で1プロセスだけがアクセスするとか reduction で更新するとかね。
96 : 祗園精舎の鐘の声 諸行無常の響きあり 娑羅双樹の花の色 盛者必衰の理をあらはす おごれる人も久しからず 唯春の夜の夢のごとし たけき者も遂にはほろびぬ 偏に風の前の塵に同じ
97 : 一般論として、MPIよりもOpenMPの方が性能が低下する(遅くなる)ということはありえますか? MPIのプログラムをOpenMPを使って書き換えたのですが、3割近く遅くなってしまいました。
98 : 一般論では遅くなります
99 : きちんとチューニングされていれば、MPIの方が速い。 あとはpthreadを使って自分で書くという手もある。
100read 1read 1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
Borlandにはやられた... (364)
【入門】Common Lisp その9【質問よろず】 (630)
Borland Developer Studio 2006 No.13 (268)
HTAをもっと流行らせる計画 Part2 (628)
UNIXプログラミング質問すれ Part10 (536)
VisualBasic6.0 対 VisualBasic .NET 2003 (460)
--log9.info------------------
■□■ Favorite Blue part2 □■□ (720)
忌野清志郎って末期ガンなの?2 (784)
忌野清志郎 Part.15 (893)
亜矢 Part2 (208)
★もう早くも伝説だ 銀杏BOYZ 峯田和伸 (513)
BAD SiX BABiES ★Part2 (677)
ジョニー大倉 (413)
syrup16g + 232g (463)
【兄龍之介】平川地一丁目30【弟直次郎】 (447)
【21620】 ZIGZO-12 【21620】 (874)
☆☆☆TH eROCKERS〜SHAKIN'☆☆☆ (690)
B'z ミスチル】 正義のバンド vs 悪のバンド 【GLAY ラルク (594)
FENCE OF DEFENSE その9 (222)
【ロックマン】懐永諭矢【マネーの虎】 (215)
松岡英明3 (848)
アベフトシ(`皿´)後援会15 (288)
--log55.com------------------
【DJI】 DJI Osmo Pocket Part17
【120度4K60P】Feiyu Pocket part1 【ジンバルカメラ】
動画一眼 「GH5 & GH5S」 17台目
【パン焼き機】ホームベーカリー 50台目
電気炊飯器総合スレ59合目
[シャープ] ヘルシオ ホットクック [SHARP] Part.6
SIE社員の会 Part167
iPhone 11 vol.8