https://www.r-ccs.riken.jp/wp/wp-content/uploads/2020/09/katagiri190425.pdf
読んだ。概要はわかった。うむ。しかしワタクシのDELL OPTIPLEX 7010SFF Win 11 23H2(非推奨PC)でアーーソブってかね、4コア4スレッドなのでね。ま~例題を動かして高速になるのはわかったし。
例の調和関数 ∑(1/n) n = 1 ~ 10兆 とかね。DELLでOpenMP無しで10時間がOpenMP有りで5時間ぐらいに短縮したからさ~。効果はあり。時間はだいたいね。
で、途中の経過を知るために、ここまでの和、ここまでの時間 とかを表示するようにしたら出力が混ざってしまった。これは混ざらないようにする呪文が必要だ。コマンドとも言う。知らんけど。
そして、結果の数字が微妙に違うのだ。OpenMP無しのが正しいのだろなあ。ま~小数点以下6桁ぐらいで差が出た。ワタクシのDELLでは。
そういうものらしい。
for loopを高速化するってのは出来たぞ!! つーか、例題を動かしただけなのね(笑)例題はCopilot先生に訊いたら出てきたっす。
ま~OpenMPはこのぐらいにして。。。。。って思ったもののもう少しトライしてみっか。
画像処理は2次元が多いので2重ループを使う。(x,y)の画素を周辺の画素と演算してどーたらこーたらするからね。その2重ループを高速化できるか。
C言語での画像処理の例題はある。それにOpenMPを適用して見たらどうかな。いや、できるかな。ある画素の周辺の画素の値も計算に使うとなると、それが更新されたかどうかはわからなくなるのではないか。OpenMPの場合には。うむうむ。ワケワカランのでとにかくやってみよう。
てかね。