OpenMP Compiler GCC Clang

A Compiler comparison by Michael Larabel looking at the OpenMP LLVM Clang performance against GCC. Using Intel's Clang LLVM Compiler-RT and Intel OpenMP Runtime Library code on Ubuntu Linux. Benchmarks for a future article on Phoronix.com. Also a few other non-OMP benchmarks in this result file...

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 1405255-PTS-OPENMPCO89
Jump To Table - Results

View

Do Not Show Noisy Results
Do Not Show Results With Incomplete Data
Do Not Show Results With Little Change/Spread
List Notable Results
Show Result Confidence Charts
Allow Limiting Results To Certain Suite(s)

Statistics

Show Overall Harmonic Mean(s)
Show Overall Geometric Mean
Show Wins / Losses Counts (Pie Chart)
Normalize Results
Remove Outliers Before Calculating Averages

Graph Settings

Force Line Graphs Where Applicable
Convert To Scalar Where Applicable
Disable Color Branding
Prefer Vertical Bar Graphs

Multi-Way Comparison

Condense Multi-Option Tests Into Single Result Graphs

Table

Show Detailed System Result Table

Run Management

Highlight
Result
Toggle/Hide
Result
Result
Identifier
Performance Per
Dollar
Date
Run
  Test
  Duration
GCC 4.9.0
May 25 2014
 
Clang 3.4 Stock
May 25 2014
 
Clang 3.4 Intel OpenMP
May 25 2014
 
Invert Behavior (Only Show Selected Data)
 

Only show results where is faster than
Only show results matching title/arguments (delimit multiple options with a comma):
Do not show results matching title/arguments (delimit multiple options with a comma):


OpenMP Compiler GCC ClangOpenBenchmarking.orgPhoronix Test SuiteIntel Core i7-3517U @ 1.90GHz (4 Cores)ASUS UX32VDA v1.0Intel 3rd Gen Core DRAM4096MB2 x 128GB SanDisk SD5SF212Intel HD 4000 512MB (1150MHz)Realtek ALC269VBIntel Centrino Advanced-N 6235Ubuntu 14.043.13.0-24-generic (x86_64)Unity 7.2.0X Server 1.15.1intel 2.99.9103.3 Mesa 10.1.0GCC 4.9.0Clang 3.4-1ubuntu3Clang 3.4 + LLVM 3.4ext41920x1080ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilersFile-SystemScreen ResolutionOpenMP Compiler GCC Clang BenchmarksSystem Logs- GCC 4.9.0: --build=x86_64-linux-gnu --disable-browser-plugin --disable-libmudflap --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,c++,java,go,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-multilib-list=m32,m64,mx32 --with-tune=generic -v - Clang 3.4 Intel OpenMP: Optimized build; Built May 25 2014 (09:24:01); Default target: x86_64-unknown-linux-gnu; Host CPU: core-avx-i - Scaling Governor: acpi-cpufreq ondemand

GCC 4.9.0Clang 3.4 StockClang 3.4 Intel OpenMPResult OverviewPhoronix Test Suite100%126%152%178%203%SmallptGraphicsMagickGraphicsMagickTimed Apache CompilationGraphicsMagickC-RayFLAC Audio EncodingLAME MP3 EncodingGraphicsMagickG.I.R.1.SBlurSharpenTime To CompileHWB Color SpaceTotal TimeWAV To FLACWAV To MP3L.A.T

OpenMP Compiler GCC Clangclomp: Static OMP Speedupttsiod-renderer: Phong Rendering With Soft-Shadow Mappinggraphics-magick: Blurgraphics-magick: Sharpengraphics-magick: Resizinggraphics-magick: HWB Color Spacegraphics-magick: Local Adaptive Thresholdingbuild-apache: Time To Compilec-ray: Total Timesmallpt: Global Illumination Renderer; 100 Samplesencode-flac: WAV To FLACencode-mp3: WAV To MP3GCC 4.9.0Clang 3.4 StockClang 3.4 Intel OpenMP2.6964.35100641141347060.0874.002396.0215.936442871106843.3583.964846.6515.0664.1888591136841.9483.912386.6615.06OpenBenchmarking.org

CLOMP

CLOMP is the C version of the Livermore OpenMP benchmark developed to measure OpenMP overheads and other performance impacts due to threading in order to influence future system designs. This particular test profile configuration is currently set to look at the OpenMP static schedule speed-up across all available CPU cores using the recommended test configuration. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSpeedup, More Is BetterCLOMP 3.3Static OMP SpeedupGCC 4.9.00.60531.21061.81592.42123.0265SE +/- 0.00, N = 52.691. (CC) gcc options: --openmp -O3 -lm

TTSIOD 3D Renderer

OpenBenchmarking.orgFPS, More Is BetterTTSIOD 3D Renderer 2.2zPhong Rendering With Soft-Shadow MappingGCC 4.9.0Clang 3.4 Intel OpenMP1428425670SE +/- 0.04, N = 3SE +/- 0.10, N = 364.3564.181. (CXX) g++ options: -O3 -fomit-frame-pointer -ffast-math -mtune=native -flto -msse -mrecip -mfpmath=sse -msse2 -mssse3 -lSDL -lstdc++

GraphicsMagick

This is a test of GraphicsMagick with its OpenMP implementation that performs various imaging tests to stress the system's CPU. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: BlurGCC 4.9.0Clang 3.4 Intel OpenMPClang 3.4 Stock20406080100SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 31008864-std=gnu99 -fopenmp -lgomp-fopenmp -lgomp1. (CC) gcc options: -O2 -pthread -ljbig -lwebp -ljpeg -lXext -lSM -lICE -lX11 -llzma -lxml2 -lz -lm -lpthread

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: SharpenGCC 4.9.0Clang 3.4 Intel OpenMPClang 3.4 Stock1428425670SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3645942-std=gnu99 -fopenmp -lgomp-fopenmp -lgomp1. (CC) gcc options: -O2 -pthread -ljbig -lwebp -ljpeg -lXext -lSM -lICE -lX11 -llzma -lxml2 -lz -lm -lpthread

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: ResizingGCC 4.9.0Clang 3.4 Stock306090120150SE +/- 0.00, N = 3SE +/- 0.00, N = 311487-std=gnu99 -fopenmp -lgomp1. (CC) gcc options: -O2 -pthread -ljbig -lwebp -ljpeg -lXext -lSM -lICE -lX11 -llzma -lxml2 -lz -lm -lpthread

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: HWB Color SpaceGCC 4.9.0Clang 3.4 Intel OpenMPClang 3.4 Stock306090120150SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3134113110-std=gnu99 -fopenmp -lgomp-fopenmp -lgomp1. (CC) gcc options: -O2 -pthread -ljbig -lwebp -ljpeg -lXext -lSM -lICE -lX11 -llzma -lxml2 -lz -lm -lpthread

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: Local Adaptive ThresholdingGCC 4.9.0Clang 3.4 Intel OpenMPClang 3.4 Stock1632486480SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3706868-std=gnu99 -fopenmp -lgomp-fopenmp -lgomp1. (CC) gcc options: -O2 -pthread -ljbig -lwebp -ljpeg -lXext -lSM -lICE -lX11 -llzma -lxml2 -lz -lm -lpthread

Timed Apache Compilation

This test times how long it takes to build the Apache HTTP Server. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Apache Compilation 2.4.7Time To CompileClang 3.4 Intel OpenMPClang 3.4 StockGCC 4.9.01326395265SE +/- 0.05, N = 3SE +/- 0.07, N = 3SE +/- 0.11, N = 341.9443.3560.08

C-Ray

This is a test of C-Ray, a simple raytracer designed to test the floating-point CPU performance. This test is multi-threaded (16 threads per core), will shoot 8 rays per pixel for anti-aliasing, and will generate a 1600 x 1200 image. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeGCC 4.9.0Clang 3.4 Intel OpenMPClang 3.4 Stock20406080100SE +/- 0.01, N = 3SE +/- 0.03, N = 3SE +/- 0.03, N = 374.0083.9183.961. (CC) gcc options: -lm -lpthread -O3

Smallpt

Smallpt is a C++ global illumination renderer written in less than 100 lines of code. Global illumination is done via unbiased Monte Carlo path tracing and there is multi-threading support via the OpenMP library. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterSmallpt 1.0Global Illumination Renderer; 100 SamplesClang 3.4 Intel OpenMPGCC 4.9.0Clang 3.4 Stock100200300400500SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 32382394841. (CXX) g++ options: -fopenmp

FLAC Audio Encoding

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.0WAV To FLACGCC 4.9.0Clang 3.4 StockClang 3.4 Intel OpenMP246810SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 56.026.656.661. (CXX) g++ options: -O2 -fvisibility=hidden -logg -lm

LAME MP3 Encoding

LAME is an MP3 encoder licensed under the LGPL. This test measures the time required to encode a WAV file to MP3 format. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.99.3WAV To MP3Clang 3.4 StockClang 3.4 Intel OpenMPGCC 4.9.048121620SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 515.0615.0615.931. (CC) gcc options: -O3 -ffast-math -funroll-loops -pipe -lncurses -lm