Accelerated Python an Even Bigger Boost with No Code Changes All Engineers Should Know

Share This On

Oct 31, 2018 | 9357 Views

Intel's support of Accelerated Python continues to make it the logical choice for any performance-sensitive Python users (plus it's free!). Intel's distribution is a tuned version of the open source Python we all normally use. It's been prebuilt to deliver much higher performance by a variety of methods, but most importantly by relying on the Intel Performance Libraries to accelerate x86 and x86-64 performance. This means that performance improvements can come without changing our Python code.

When using the Intel Distribution for Python, it's not unusual to see substantial speed-ups for numerically intensive Python codes such as those that utilize the Numpy and SciPy stack. I wrote about a 20X speed-up in a prior article, and a blog from Google showed speed-ups of up to 23X.

Much faster machine learning

Recently, Intel published some remarkable benchmark results (see them all at "Built for Speed and Scalability"). The two graphs below compare scikit-learn performance between stock Python vs Accelerated Python (using the Intel distribution). A score of 100% is given to C code using Intel's performance libraries (the Intel Data Analytics Acceleration Library (DAAL)). We see that stock Python is very slow compared with C code, while the Intel distribution is often enabled our Python code to reach performance nearly the same as if we rewrote our code in C and used MKL directly. The second graph shows that we leave the most performance on the table when using more powerful processors (the second graph uses Intel Xeon processors, which have superior numeric capabilities compared to the Intel Core processors used in the first graph).

The Intel Distribution for Python is a binary distribution of the Python interpreter and commonly used packages for computation- and data-intensive domains, such as scientific and engineering computing, big data, data science, and machine learning. The product supports Python 2 and 3 for Windows, Linux, and MacOS. It simplifies Python installation by providing packages in a binary form, preconfigured, and with the necessary dependencies.

The latest version of the distribution is available with or without the newest Intel Parallel Studio XE 2019 suite of tools. It's also available, along with other optimized routines, on the Anaconda/Intel Conda channel (use 'conda create --name intelpy python=ver' where ver is 2.7 or 3.6). Python gets additional support in Parallel Studio, especially from the Intel VTune Analyzer and Intel Data Analytics Acceleration Library (DAAL). The latest release adds scikit-learn optimizations for the SVM classification algorithm and K-means prediction. Also, the XGBoost (optimized distributed gradient boosting library) with a Python interface is available on Linux. Performance optimized TensorFlow and Caffe libraries can be easily installed using conda and/or pip.

Accelerated Python includes optimized versions of NumPy, SciPy, and scikit-learn that integrate Intel Performance Libraries to get highly optimized x86 and x86-64 support. It also supports vectorization and multithreading instructions with the popular Numba and Cython optimizing compilers for Python, and composable parallelism with Threading Building Blocks.