[過去ログ]
マルチスレッドプログラミング相談室 その4 (1001レス)
マルチスレッドプログラミング相談室 その4 http://pc8.5ch.net/test/read.cgi/tech/1130984585/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
13: デフォルトの名無しさん [sage] 2005/11/07(月) 10:54:34 ちょっとばっかし知恵を借りたいのだが。 Linuxでとある画像フィルタリング処理を書いている取り引き先から、 マルチスレッド化して処理を高速化してくれと依頼がきている。 2CPUマシンで動かすから1CPUマシンでは動かなくてもいいらしい。 現状では、1枚の画像に対する処理にある程度時間がかかっていて、 それを複数枚処理してから先に進むロジックなのでその部分で 複数枚分のスレッドを起こせば2CPUに適当に分散できるのではないかと考えているらしい。 そこで相談。 ・2CPUマシンでマルチスレッド化はどの程度高速化が期待できるか。 #まさか理論どおり2倍になるなんて期待していないが。 ・マルチスレッドだとしたらどんな技術を使うことになるのか。 ・マルチスレッドではなくマルチプロセスでやるとしたらどうか。 マルチスレッド云々以前に、数千行のmain()をなんとかしてから高速化を検討しろといいたいのだが…… #あ、そのなんとかするのもこっちに依頼が来るらしいのだが、マルチスレッド化と抱き合わせなのがなんともはや。 http://pc8.5ch.net/test/read.cgi/tech/1130984585/13
14: デフォルトの名無しさん [sage] 2005/11/07(月) 11:03:51 >>13 > Linuxでとある画像フィルタリング処理を書いている取り引き先から、 この処理がCPUボトルネックなら、 > #まさか理論どおり2倍になるなんて期待していないが。 2倍近くになっても何の不思議もないが。 一般論としては、一枚をマルチスレッドで処理してもいいし、 一枚ごとにスレッド割り当ててもいいし。いずれにせよ簡単だろ? http://pc8.5ch.net/test/read.cgi/tech/1130984585/14
15: 13 [sage] 2005/11/07(月) 11:55:10 >>14 レスTHX。 >2倍近くになっても何の不思議もないが。 スレッド生成のボトルネックが気になるのだけど。 #プロセス生成よりは小さいのだろうけど。 man on wwwで調べてみた。 一枚の処理を分割するのは面倒なので、一枚ごとにスレッド分けるとして、 for (画面枚数分) { pthread_create(); } for (画面枚数分) { pthread_join(); } なんて安直なコードでもいいものかな? #だとしたらmain()を分割した段階で半分以上仕事が終わったようなものなんだがw http://pc8.5ch.net/test/read.cgi/tech/1130984585/15
18: 13 [sage] 2005/11/07(月) 13:52:40 >>16 >まあいいんじゃねえ? うい、THX。 >一枚ごと独立に処理出来るんでしょ? そそ、全画像処理後、集計してフィルタリングパラメータを変える繰り返し。 >画像がでかけりゃメモリの取り合いで遅くなる可能性もあるけど、 >まあとにかくやってみればいいと思う。 小さい小さい。最大128x128。 #なのに現状は2048x2048x16の実数値バッファがグローバルに固定で取られてて(512MB!)泣けます。 ># 数千行のmain()に画像処理が埋め込まれているわけね… そそ、あのパラメータを変えてフィルタリング、このパラメータを変えてフィルタリング、 って具合に同じ処理が繰り返し登場するのでその行数。 これをばらしてメモリを必要なだけ動的確保してやれば 1スレッド辺りのメモリ使用量も1MB程度に抑えられそう。 http://pc8.5ch.net/test/read.cgi/tech/1130984585/18
20: 13 [sage] 2005/11/07(月) 17:06:30 >>19 オーバーヘッドが大きいようならスレッド分割単位を見直すから多分問題にはならないと思うのだけど、 参考までにスレッドプールとは何か、ポインタを示してもらえませんか? #ぐぐったけどWebアプリか.NetかC#かJavaの話題しか見つからなかった。 http://pc8.5ch.net/test/read.cgi/tech/1130984585/20
22: 13 [sage] 2005/11/07(月) 18:12:55 >>21 THX。 一通り読んでみます。 #日本語で検索してたよ_/ ̄|○ http://pc8.5ch.net/test/read.cgi/tech/1130984585/22
23: デフォルトの名無しさん [] 2005/11/07(月) 19:30:54 >>13 ちょっと待てよ、お前。 さっきから聞いてりゃ言いたいことぬかしやがって。 飯食ってんだろ?できる見込みないものを依頼受けるなよヴォケ。 お前の相談は「丸投げ」なんだよ。ここは宿題片づけスレか? 気になるなら自分で実験したらいいべ? http://pc8.5ch.net/test/read.cgi/tech/1130984585/23
24: 13 [sage] 2005/11/07(月) 21:25:15 >>23は、せっかくいいこと言っているのに、最後の 「いいべ」という田舎者丸出しの言い方で 説得力が無くなってしまった。 http://pc8.5ch.net/test/read.cgi/tech/1130984585/24
27: 13 [sage] 2005/11/07(月) 22:22:05 取り敢えず>15に書いたような簡単なサンプルは作ってみましたが何か。 余りに単純すぎてスレッドが複数実行しているかどうか判らないような代物ですが。 水曜に客先の端末(2CPU)で分散処理するかどうかは見てくる積もり。 #あー、そもそも依頼を受けたかどうかは書いてない罠。 http://pc8.5ch.net/test/read.cgi/tech/1130984585/27
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.155s*