Reducing the Functionality Gap Between Auto-Vectorization and Explicit Vectorization
Explicit vectorization of C/C++ and FORTRAN application programs are pioneered by Intel® Cilk™ Plus and then inherited and enhanced by OpenMP 4.0 and 4.5 standardization. There is a known functionality gap, where some auto-vectorizable code does not have adequate syntax support for explicit vector programming. In this paper, we propose and discuss a few syntax extensions to reduce the gap for compress/expand and histogram idioms, which are commonly seen in high performance computing.
KeywordsCompress Expand Histogram OpenMP omp ordered simd
- 1.Intel Corporation. “Intel® Parallel Composer 2011 Users Guide”, October 2010Google Scholar
- 2.Tian, X., Saito, H., Girkar, M., Preis, S., Kozhukhov, S., Cherkasov, A., Nelson, C., Panchenko, N., Geva, R.: Compiling C/C ++ SIMD extensions for function and loop vectorization on multicore SIMD processors. In: Proceedings of the 2012 IPDPS Workshops & Ph.D. Forum (2012)Google Scholar
- 3.Klemm, M., Duran, A., Tian, X., Saito, H., Caballero, D., Martorell, X.: Extending OpenMP* with vector constructs for modern multicore SIMD architectures. In: Chapman, B.M., Massaioli, F., Müller, M.S., Rorro, M. (eds.) IWOMP 2012. LNCS, vol. 7312, pp. 59–72. Springer, Heidelberg (2012)CrossRefGoogle Scholar
- 4.OpenMP ARB. “OpenMP 4.0 Specifications”, July 2013Google Scholar
- 5.OpenMP ARB. “OpenMP 4.5 Specifications”, November 2015Google Scholar