GraphicsMagick compiler choice...

Ryan Schmidt ryandesign at macports.org
Thu Feb 23 09:22:31 PST 2012


On Feb 23, 2012, at 11:20, Eric A. Borisch wrote:

> Submitted for your consideration:
> 
> GraphicsMagick is set to build with clang as llvm fails on x86_64; but
> building with clang means no OpenMP... but "GraphicsMagick has been
> transformed to use OpenMP for the 1.3 release series."[1]
> 
> How about switching (or at least adding a variant for those that want
> it) the compiler to macports-gcc-4.4?

Using a MacPorts compiler we cannot build universal.

clang is the future of compiling on OS X. Is lack of OpenMP a clang deficiency, or a GraphicsMagick deficiency when using clang? Sounds like something either the developers of clang or the developers of GraphicsMagick need to address.


> Performance results:
> 
> Clang:
> $ gm benchmark -stepthreads 1 -duration 10 convert   -size 2048x1080
> pattern:granite -operator all Noise-Gaussian 30% null:
> Results: 1 threads 10 iter 11.05s user 11.05s total 0.905 iter/s
> (0.905 iter/s cpu) 1.00 speedup 1.000 karp-flatt
> 
> macports-gcc-4.4:
> 
> $ gm benchmark -stepthreads 1 -duration 10 convert   -size 2048x1080
> pattern:granite -operator all Noise-Gaussian 30% null:
> Results: 1 threads 12 iter 10.64s user 10.64s total 1.128 iter/s
> (1.128 iter/s cpu) 1.00 speedup 1.000 karp-flatt
> Results: 2 threads 22 iter 19.63s user 10.00s total 2.200 iter/s
> (1.121 iter/s cpu) 1.95 speedup 0.025 karp-flatt
> Results: 3 threads 32 iter 28.61s user 10.02s total 3.194 iter/s
> (1.118 iter/s cpu) 2.83 speedup 0.030 karp-flatt
> Results: 4 threads 39 iter 34.90s user 10.01s total 3.896 iter/s
> (1.117 iter/s cpu) 3.45 speedup 0.053 karp-flatt
> 
> Not only is single-threaded 25% faster (granted, this is just one data
> point; the iters/s item is the one I am looking at here) with gcc-4.4
> vs. clang, but OpenMP permits a 3.4x speedup (on my 4-core MacPro)
> (4.3x speedup vs single-threaded clang-compiled.)
> 
> Thanks,
> Eric




More information about the macports-dev mailing list