ActiveBlog

Built for Speed: ActivePython, Intel® MKL and Mathematical Computing
by Diane Mueller

Diane Mueller, June 25, 2010

Power your science, engineering and financial applications with ActivePython Business Edition.

Number-crunching extremely large amounts of data in mathematical computing applications takes significant computing resources. Making use of NumPy for in-memory handling of large datasets is a common practice. ActivePython now leverages the Intel® Math Kernel Library (Intel® MKL) to deliver significant performance enhancements.

The latest release of ActivePython Business, Enterprise, OEM Editions now include NumPy, SciPy, and matplotlib linked with Intel MKL on Windows.

Intel MKL is a library of highly optimized, extensively threaded math routines for science, engineering, and financial applications that require maximum performance. MKL's core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more. Intel MKL offers performance optimizations for current and next-generation Intel processors.

Previous versions of NumPy and SciPy for ActivePython modules were linked against the ATLAS library. Linking them against Intel MKL allows Python developers to seamlessly benefit from the highly optimized routines in MKL. Testing has shown significant speed improvements by linking with Intel MKL. With ctypes, developers can take advantage of the Intel MKL's routines for working with vector math, Fast Fourier transforms, trust-region optimization methods, and sparse solvers.

Buy vs. Build

Building your own NumPy and SciPy - or any non-pure, complex Python module for that matter - is not a simple task and here are a few hurdles to watch out for if you plan to build these packages from scratch:

  • On Windows, you'll need Visual Studio and either a pre-built ATLAS library or commercial licenses for both Intel MKL and Intel Visual Fortran Compiler
    • Depending on the Intel bundle you choose, this can cost up to $699.
    • A simple 'python setup.py install' is not going to work. You need to use third-party build scripts such as numscons, or else edit the build configuration file manually.
  • On Mac OS X, you must download and install XCode (more than 2 GB in size) and GNU Fortran; and then compile NumPy and SciPy yourself.
  • On Linux, you will need to download and build the ATLAS libraries first, which involves patching the build script, using custom configure arguments, and ensuring you're using the right version of GCC.

All this takes time, testing and resources that could be better spent using NumPy and SciPy!

ActivePython Business Edition gives you access to these and other high-value binary modules via the Python Package Manager (PyPM) - along with the thousands of pre-built modules available in the Community Edition.

So why spend the time and effort of building these modules yourself, when ActiveState does it for you. Let your developers spend their valuable time on important things, such as using these powerful math libraries?

For more details on Intel MKL, please see the Intel Math Kernel Library Reference Manual.

For other helpful Python packages for financial computing, please see Must-Have Python Packages for Finance.

Subscribe to ActiveState Blogs by Email

Share this post:

Category: python
About the Author: RSS

Diane Mueller is a Cloud Evangelist at ActiveState. She has been designing & implementing financial applications at Fortune 500 corporations for over 20 years. Diane has been actively involved in development efforts of XBRL Open Standard (http://www.xbrl.org) since 1999.