我使用graphicsmagics来缩放图像,我发现openMP没有提高处理性能。以下是我的测试结果:
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
还发现8core服务器和2core notbook没有区别。
出了什么问题?
答案 0 :(得分:1)
缩放算法是少数几个不是多线程的算法之一。幸运的是它已经很快了。尝试-resize而不是-scale,以便在添加线程时看到改进。 -resize的实际性能可能仍然低于-scale(取决于您的系统)。