0
我正在使用graphicsmagics來縮放圖像,並且我發現openMP不會提高處理性能。以下是我的測試結果:Openmp不會改進graphicsmagics的性能
C:\Users\L.J.W>set OMP_NUM_THREADS=1
C:\Users\L.J.W>gm benchmark -stepthreads 1 -duration 10 convert d:/opt/1.jpg -s
cale 300x300 -gravity center -quality 90 -strip d:/opt/2.jpg
Results: 1 threads 212 iter 9.70s user 10.02s total 21.151 iter/s 21.848 iter/cp
u 1.00 speedup 1.000 karp-flatt
C:\Users\L.J.W>set OMP_NUM_THREADS=4
C:\Users\L.J.W>gm benchmark -stepthreads 1 -duration 10 convert d:/opt/1.jpg -s
cale 300x300 -gravity center -quality 90 -strip d:/opt/2.jpg
Results: 1 threads 212 iter 9.58s user 10.02s total 21.153 iter/s 22.133 iter/cp
u 1.00 speedup 1.000 karp-flatt
Results: 2 threads 212 iter 9.89s user 10.00s total 21.194 iter/s 21.435 iter/cp
u 1.00 speedup 0.996 karp-flatt
Results: 3 threads 213 iter 9.52s user 10.04s total 21.209 iter/s 22.383 iter/cp
u 1.00 speedup 0.996 karp-flatt
Results: 4 threads 212 iter 9.73s user 10.03s total 21.143 iter/s 21.778 iter/cp
u 1.00 speedup 1.001 karp-flatt
也發現8核心服務器和2核心notbook沒有區別。
有什麼問題?
http://www.graphicsmagick.org/benchmark.html在這個網頁上有一個示例運行,它顯示了一些加速。你確定OpenMP的使用是否正確?使用OpenMP支持等構建了該庫嗎?似乎只有一個線程處於活動狀態。您可以編寫一個簡單的OpenMP應用程序,該應用程序打印可用於OpenMP的線程數量和內核數量,以便正確設置環境變量。 – phoad
謝謝你的回覆,但是當我做測試時,所有的cpu核心都忙。環境變量OMP_NUM_THREADS已經設置正確。而graphicsmagics是用./configure生成的--enable-shared --enable-openmp.any其他需要配置嗎? –