Sign up for our newsletter and get the latest HPC news and analysis.
Send me information from insideHPC:


Performance Gains Using Libraries

Sponsored Post

In many cases, applications that perform various simulations use some of the same math functions that many other applications use. Rather than each developer recoding the same math functions over and over, libraries, developed by experts can significantly speed up execution of the overall application. Since there can be many optimizations that experts who understand many of the nuances of the hardware would understand, it is important that developers be familiar with various libraries that are made available for HPC types of applications.

Intel produces, for use by developers, three libraries that can help a developer take advantage of the Intel Xeon Phi processor. These libraries are the Intel Math Kernel Library, generally known as MKL, the Intel Data Analytics Library, known as DAAL, and Intel Integrated Performance Primitives, known as IPP. These libraries not only give developers performance boosts when using them, but also allow programmers to use various languages and still get the benefits. In addition, with the use of libraries, as new and even more capable hardware systems are developed, applications will continue to be able to use this new hardware even with different architectures, as the libraries will continuously be updated by Intel.

The Intel Math Kernel Library is a comprehensive math library which contains extensive routines for both straightforward and complex math functions. Intel MKL takes advantage of vectorization and shared memory capabilities of the underlying hardware. Intel MKL provides interfaces for C and Fortran and may be used from many other high level languages.

The Intel Data Analytics Library is an open source library that can be put together to create innovative applications for a wide range of activities that are needed to acquire and make sense of massive amounts of data. Data analytics is a growing and very important field for almost any organization that exists today. The library consists of components for data management, algorithms for data mining and the services component. Together, these components span the data analytics pipeline, including pre-processing, transformation, analysis, modeling, validation and decision making. Intel DAAL can be used from applications that are written in C++, Java, and Python languages.

Need a comprehensive data analytics library ? Get Intel DAAL. Click To Tweet

An interesting note about DAAL, is that different computation modes can be used. Batch processing allows the application to send the entire data set to the library and a final result is produced. In the Online processing mode, the algorithms process data in blocks which are streamed to the device memory and the results are finalized when the last data block is processed. The distributed processing mode places different blocks of data on different devices, such as compute nodes, and the partial results are then merged into the final results which is presented to the user.

The Integrated Performance Primitives library includes primitives for a range of other types of applications that can be sped up with the use of highly tuned primitives. This includes signal processing, image processing, video processing and other types of data that applications may need and that need to be tuned to the underlying hardware capabilities. Interfaces are provided for the C programming language and the IPP is available on a wide range of operating systems. Scientific and technical applications can take advantage of the IPP functions to do lower level work, while the application developer focuses on higher level algorithms and innovative applications.

Together, these three libraries can make it much easier for any developer to get their application up and running sooner.  By relying on experts to program lower level routines that are highly tuned to the hardware, applications can run significantly faster.  Take a look.

Download your free 30-day trial of Intel® Parallel Studio XE

Resource Links: