Python Clear Linux vs. Ubuntu Performance

Python benchmarking for a future article.

HTML result view exported from: https://openbenchmarking.org/result/1902144-SP-PYTHONPY851&grs&rdt.

Python Clear Linux vs. Ubuntu PerformanceProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionClear Linux Default PythonUbuntu Linux Default PythonUpstream Python 3.7.2 On ClearIntel Python 2019u2 On Clear LinuxPyPy On Ubuntu LinuxIntel Core i9-7980XE @ 4.20GHz (18 Cores / 36 Threads)ASUS PRIME X299-A (1602 BIOS)Intel Sky Lake-E DMI3 Registers16384MBSamsung SSD 970 EVO 500GBNVIDIA NV120 12GBRealtek ALC1220ASUS PB278Intel I219-VClear Linux OS 277604.20.7-694.native (x86_64)GNOME Shell 3.30.2X Server 1.20.3nouveau 1.0.164.3 Mesa 19.1.0-develGCC 8.2.1 20190212 + Clang 7.0.1 + LLVM 7.0.1ext42560x1440NVIDIA GeForce GTX TITAN X 12GBUbuntu 18.104.18.0-15-generic (x86_64)GNOME Shell 3.30.1X Server 1.20.1modesetting 1.20.14.3 Mesa 18.2.2GCC 8.2.0NVIDIA NV120 12GBClear Linux OS 277604.20.7-694.native (x86_64)GNOME Shell 3.30.2X Server 1.20.3nouveau 1.0.164.3 Mesa 19.1.0-develGCC 8.2.1 20190212 + Clang 7.0.1 + LLVM 7.0.1NVIDIA GeForce GTX TITAN X 12GBUbuntu 18.104.18.0-15-generic (x86_64)GNOME Shell 3.30.1X Server 1.20.1modesetting 1.20.14.3 Mesa 18.2.2GCC 8.2.0OpenBenchmarking.orgEnvironment Details- Clear Linux Default Python, Upstream Python 3.7.2 On Clear, Intel Python 2019u2 On Clear Linux: CFFLAGS=-g-O3-feliminate-unused-debug-types-pipe-Wall-Wp-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=32-Wl--copy-dt-needed-entries-m64-fasynchronous-unwind-tables-Wp-D_REENTRANT-ftree-loop-distribute-patterns-Wl-z-Wl now-Wl-z-Wl relro-malign-data=abi-fno-semantic-interposition-ftree-vectorize-ftree-loop-vectorize-Wl-sort-common-Wl--enable-new-dtags FFLAGS=-g-O3-feliminate-unused-debug-types-pipe-Wall-Wp-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=32-Wl--copy-dt-needed-entries-m64-fasynchronous-unwind-tables-Wp-D_REENTRANT-ftree-loop-distribute-patterns-Wl-z-Wl relro-malign-data=abi-fno-semantic-interposition-ftree-vectorize-ftree-loop-vectorize-Wl--enable-new-dtags CXXFLAGS=-g-O3-feliminate-unused-debug-types-pipe-Wall-Wp-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=32-Wformat-Wformat-security-Wl--copy-dt-needed-entries-m64-fasynchronous-unwind-tables-Wp-D_REENTRANT-ftree-loop-distribute-patterns-Wl-z-Wl relro-fno-semantic-interposition-ffat-lto-objects-fno-signed-zeros-fno-trapping-math-fassociative-math-Wl-sort-common-Wl--enable-new-dtags-mtune=skylake-fvisibility-inlines-hidden-Wl--enable-new-dtags MESA_GLSL_CACHE_DISABLE=0 CFLAGS=-g-O3-feliminate-unused-debug-types-pipe-Wall-Wp-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector--param=ssp-buffer-size=32-Wformat-Wformat-security-Wl--copy-dt-needed-entries-m64-fasynchronous-unwind-tables-Wp-D_REENTRANT-ftree-loop-distribute-patterns-Wl-z-Wl relro-fno-semantic-interposition-ffat-lto-objects-fno-signed-zeros-fno-trapping-math-fassociative-math-Wl-sort-common-Wl--enable-new-dtags-mtune=skylake THEANO_FLAGS=floatX=float32 openmp=true gcc.cxxflags="-ftree-vectorize-mavx" Processor Details- Clear Linux Default Python: Scaling Governor: intel_pstate performance- Ubuntu Linux Default Python: Scaling Governor: intel_pstate powersave- Upstream Python 3.7.2 On Clear: Scaling Governor: intel_pstate performance- Intel Python 2019u2 On Clear Linux: Scaling Governor: intel_pstate performance- PyPy On Ubuntu Linux: Scaling Governor: intel_pstate powersaveGraphics Details- Clear Linux Default Python: EXAPython Details- Clear Linux Default Python: Python 3.7.2- Ubuntu Linux Default Python: Python 2.7.15+ + Python 3.6.7- Upstream Python 3.7.2 On Clear: Python 3.7.2- Intel Python 2019u2 On Clear Linux: Python 3.6.8 :: Intel- PyPy On Ubuntu Linux: Python 2.7.13 (6.0.0+dfsg-2 Aug 22 2018 00:10:03)[PyPy 6.0.0 with GCC 8.2.0]Security Details- Clear Linux Default Python: KPTI + __user pointer sanitization + Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable- Ubuntu Linux Default Python: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW STIBP + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable- Upstream Python 3.7.2 On Clear: KPTI + __user pointer sanitization + Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable- Intel Python 2019u2 On Clear Linux: KPTI + __user pointer sanitization + Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable - PyPy On Ubuntu Linux: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW STIBP + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable

Python Clear Linux vs. Ubuntu Performancescikit-learn: numpy: pybench: Total For Average Test Timescython-bench: Clear Linux Default PythonUbuntu Linux Default PythonUpstream Python 3.7.2 On ClearIntel Python 2019u2 On Clear LinuxPyPy On Ubuntu Linux7.61458870090021.82146.368878808131637.6299725.9110.884685262131492.60OpenBenchmarking.org

Scikit-Learn

OpenBenchmarking.orgSeconds, Fewer Is BetterScikit-Learn 0.17.1Clear Linux Default PythonUbuntu Linux Default PythonIntel Python 2019u2 On Clear Linux306090120150SE +/- 0.02, N = 3SE +/- 0.13, N = 3SE +/- 0.03, N = 37.61146.3610.88

Numpy Benchmark

OpenBenchmarking.orgNanoseconds, Fewer Is BetterNumpy BenchmarkClear Linux Default PythonUbuntu Linux Default PythonIntel Python 2019u2 On Clear Linux2M4M6M8M10M458870088788084685262

PyBench

Total For Average Test Times

OpenBenchmarking.orgMilliseconds, Fewer Is BetterPyBench 2018-02-16Total For Average Test TimesClear Linux Default PythonUbuntu Linux Default PythonUpstream Python 3.7.2 On ClearIntel Python 2019u2 On Clear Linux30060090012001500SE +/- 2.33, N = 3SE +/- 3.18, N = 3SE +/- 0.88, N = 390013169971314

Cython benchmark

OpenBenchmarking.orgSeconds, Fewer Is BetterCython benchmark 0.27Clear Linux Default PythonUbuntu Linux Default PythonUpstream Python 3.7.2 On ClearIntel Python 2019u2 On Clear Linux20406080100SE +/- 0.05, N = 3SE +/- 0.15, N = 3SE +/- 0.67, N = 12SE +/- 0.41, N = 321.8237.6225.9192.60


Phoronix Test Suite v10.8.5