05/11/07 10:54:34
ちょっとばっかし知恵を借りたいのだが。
Linuxでとある画像フィルタリング処理を書いている取り引き先から、
マルチスレッド化して処理を高速化してくれと依頼がきている。
2CPUマシンで動かすから1CPUマシンでは動かなくてもいいらしい。
現状では、1枚の画像に対する処理にある程度時間がかかっていて、
それを複数枚処理してから先に進むロジックなのでその部分で
複数枚分のスレッドを起こせば2CPUに適当に分散できるのではないかと考えているらしい。
そこで相談。
・2CPUマシンでマルチスレッド化はどの程度高速化が期待できるか。
#まさか理論どおり2倍になるなんて期待していないが。
・マルチスレッドだとしたらどんな技術を使うことになるのか。
・マルチスレッドではなくマルチプロセスでやるとしたらどうか。
マルチスレッド云々以前に、数千行のmain()をなんとかしてから高速化を検討しろといいたいのだが……
#あ、そのなんとかするのもこっちに依頼が来るらしいのだが、マルチスレッド化と抱き合わせなのがなんともはや。