Processor design has moved away from relying on higher frequencies which require more power to parallelism, in which the CPU contains more cores and can perform more work per time unit. Applications must be developed to take advantage of the increase in cores, while vector units can perform more work per time. Open standards, such as MPI 4.0, OpenMP and other libraries can leverage the performance of these CPUs.
Wide vectors for processors are becoming more available, such as with the Intel Xeon Phi coprocessor. This coprocessor has 512-bit wide registers, which can each store 16 single precision floating point numbers. The vector units have a peak performance gain of 16 X for single precision floating point operations, and even higher for compounded operations. Vector operations operate on data which can be accessed in a regular manner. Most CPUs and coprocessors today have the ability to perform the same operation on many elements of a vector.
OpenVec is a tool that enables portable explicit vectorization on different architectures. This is important, as a developer does not want to re-write their critical parts of an application for different target systems. The OpenVec library is not tied to a specific hardware architecture, and can optimize code on various platforms. Depending on the target machine, a developer would have to recompile with different header information, which knows about the vector width, as this is different on different systems. OpenVec contains a number of popular intrinsic functions. Single and double precision are both supported.
It is important to be able to express algorithms and then the coding in an architecture independent manner to gain maximum portability. Vectorization, using the available CPUs and coprocessors such as the Intel Xeon Phi coprocessor, are critical for HPC applications where performance is of the highest importance. However, since architectures change over time and become more powerful, using libraries that can adjust to the new architectures is quite important.
Source: Intel, USA; Petrobas, Brazil; Intel, France
Transform data into opportunity. Speed data analysis in your applications.