Explicit Vector Programming
As processor designs have faced increasing power constraints, processor architecture has evolved to offer multiple cores and wider vector execution units on a single die to increase performance. Exploiting these innovations in hardware requires software developers to find the parallelism in their program and to express it in high level programming languages.
While constructs to express threaded parallelism to utilize the multiple cores have been available for some time, language level constructs for exploiting the vector execution units have only recently become practical. We show how vector execution can be expressed through the recently published OpenMP 4.0 standard and its implementation in Intel compilers on Intel processors supporting SIMD (Intel SSE4.2, Intel AVX, Intel AVX2, Intel AVX-512) instructions.
Milind Girkar is a Senior Principal Engineer in the Developer Products Division at Intel, defining new features in Intel's upcoming processors and the compiler support required for exploiting them through high level programming languages. His areas of interest are in architecture, microarchitecture and compilers with emphasis on code optimization and parallel/vector code generation. He did his B.Tech. from Indian Institute of Technology, Bombay, M.S. from Vanderbilt University and Ph.D. from University of Illinois at Urbana-Champaign, all in computer science.