BUILT FOR SPEED AND SCALABILITY

Experience great performance improvements out of the box for computation packages like NumPy*, SciPy*, and scikit-learn*.

Close-to-Native Code Performance

Intel® Distribution for Python* incorporates multiple libraries and techniques to bridge the performance gap between Python and equivalent functions written in C and C++ languages, including:

  • Intel® Math Kernel Library (Intel® MKL) for BLAS and LAPACK
  • Intel MKL vector math library for universal functions (uMath)
  • Intel® Data Analytics Acceleration Library (Intel® DAAL) for machine learning and data analytics
  • Integration with Intel® Advanced Vector Extensions (Intel® AVX), a feature of the latest Intel® Xeon® processors

The following benchmarks show the efficiency of optimized functions—for example, functions used for numerical computing, scientific computing, and machine learning—and compare Intel Distribution for Python to its respective open source Python packages. All benchmarks measure Python against native C code equivalent, which is considered to be representative of optimal performance. The higher the efficiency, the faster the function and the closer to native C speed.

Linear Algebra

Python benchmark for Linear Algebra on Intel Core i 7 processors

See below for further notes and disclaimers.1

Python benchmark for Linear Algebra on Intel Xeon processors

See below for further notes and disclaimers.2

Python benchmark for Random Number Generation on Intel Core i 7 processors

See below for further notes and disclaimers.1

Benchmark source code: Native Code | Python

Python benchmark for Random Number Generation on Intel Xeon processors

See below for further notes and disclaimers.2

Benchmark Source Code


Fast Fourier Transforms

Python benchmark for F F T on Intel Core i7 processors

See below for further notes and disclaimers.1

Python benchmark for F F T on Intel Xeon processors

See below for further notes and disclaimers.2

Benchmark Source Code


uMath

Python benchmark for u Math on Intel Core i7 processors

See below for further notes and disclaimers.1

Python benchmark for u Math on Intel Xeon processors

See below for further notes and disclaimers.2

Benchmark Source Code


Machine Learning

Python benchmark for Machine Learning on Intel Core i7 processors

See below for further notes and disclaimers.1

Python benchmark for Machine Learning on Intel Xeon processors

See below for further notes and disclaimers.2

Benchmark Source Code


Composable Parallelism

Many Python numerical packages, such as NumPy and SciPy, take advantage of all available CPU cores by using multithreading inherently. However, within a single application when multiple Python packages use multithreading at the same time, performance can degrade because the threads interfere with each other.

Composable parallelism helps resolve this by coordinating the threaded components—with little to no intervention from the user. This can lead to improved application performance.

For more details and performance benchmarks, see the Composable Multithreading and Multiprocessing for Numeric Libraries paper published at the SciPy 2018 conference.


Amazon Elastic Compute Cloud*

NumPy Accelerations

Python benchmark for Num Py on A W S

See below for further notes and disclaimers.2

Python benchmark for Num Py on A W S Multiple Instances

See below for further notes and disclaimers.2

Benchmark Source Code

Scikit-Learn* Accelerations

Python benchmark for scikit learn on A W S

See below for further notes and disclaimers.2

Python benchmark for scikit learn k means predict on A W S

See below for further notes and disclaimers.2

Python benchmark for scikit learn ridge regression on A W S

See below for further notes and disclaimers.2

Benchmark Source Code


1Performance results are based on testing as of July 9, 2018 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure.

Testing by Intel as of July 9, 2018. Configuration: Stock Python: Python 3.6.6 hc3d631a_0 installed from conda* NumPy 1.15, Numba* 0.39.0, llvmlite 0.24.0, SciPY 1.1.0, scikit-learn* 0.19.2 installed from PIP*. Intel Distribution for Python 2019 Gold: Python 3.6.5 intel_11, NumPY 1.14.3 intel_py36_5, mkl 2019.0 intel_101, mkl_fft 1.0.2 intel_np114py36_6, mkl_random 1.0.1 intel_np114py36_6, Numba 0.39.0 intel_np114py36_0, llvmlite 0.24.0 intel_py36_0, SciPY 1.1.0 intel_np114py36_6, scikit-learn 0.19.1 intel_np114py36_35. Operating system: CentOS* Linux* 7.4.1708, kernel 3.10.0-693.el7.x86_64. Hardware: Intel® Core™ i7 processor 7567U at 3.50 GHz, 32 GB of DDR4 RAM, 2 DIMMs of 16 GB at 2133 MHz.

Software and workloads used in performance tests may have been optimized for performance only on Intel® microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more information, see Performance Benchmark Test Disclosure.

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804

2 Performance results are based on testing as of July 9, 2018 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure.

Testing by Intel as of July 9, 2018. Configuration: Stock Python: Python 3.6.6 hc3d631a_0 installed from conda, NumPY 1.15, Numba 0.39.0, llvmlite 0.24.0, SciPY 1.1.0, scikit-learn 0.19.2 installed from PIP. Intel Distribution for Python 2019 Gold: Python 3.6.5 intel_11, NumPY 1.14.3 intel_py36_5, mkl 2019.0 intel_101, mkl_fft 1.0.2 intel_np114py36_6, mkl_random 1.0.1 intel_np114py36_6, Numba 0.39.0 intel_np114py36_0, llvmlite 0.24.0 intel_py36_0, SciPY 1.1.0 intel_np114py36_6, scikit-learn 0.19.1 intel_np114py36_35. Operating system: CentOS Linux 7.3.1611, kernel 3.10.0-514.el7.x86_64, Hardware: Intel Xeon processor Gold 6140 at 2.30 GHz (2 sockets, 18 cores per socket, HT:off), 256 GB of DDR4 RAM, 16 DIMMs of 16 GB at 2666 MHz.

Software and workloads used in performance tests may have been optimized for performance only on Intel® microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more information, see Performance Benchmark Test Disclosure.

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804