The open archive for STFC research publications

Full Record Details

Persistent URL http://purl.org/net/epubs/work/23619035
Record Status Checked
Record Id 23619035
Title Vectorization Advice
Abstract Many chapters in this book show how to achieve performance using vectorization as a key optimization. This chapter highlights a tool to help analyze the opportunity for vectorization and give advice on how to solve it. Using the new IntelĀ® Vectorization Advisor to optimize your code is like having an expert sitting with you to help you get your code to vectorize. This chapter discusses considerations for vectorization in the context of using the Vectorization Advisor to analyze your program and guide you to greater performance. This chapter shows how the Vectorization Advisor supports a three-step approach to helping us vectorize code: (1) profile and diagnose; (2) analyze and advise (trip counts, dependencies, memory access patterns, snapshot comparisons); and (3) make code changes, recompile, and repeat. In this chapter, we look at how to analyze some code, identify a problem, and then fix it. In some cases, we analyze the code and discuss suggestions for the type of changes that need to be made. In our examples, we use the DL_MESO Lattice Boltzmann equation (LBE) code from Daresbury Labs. This chapter focuses only on vectorization and does not attempt to cover threading or parallelism across cores. For simplicity, in all our examples, we turn off the threading and just run on one thread. Despite this, please do not misunderstand us, threading is very important, the IntelĀ® Advisor tool provides support and dedicated analysis for threaded applications, but that is not the focus of this chapter.
Organisation STFC , SCI-COMP
Keywords vectorization , Intel Advisor , Lattice Boltzmann Equation , CCP5 , vectorisation , Xeon , Xeon Phi , DL_MESO , CCP , Intel , Vectorization Advisor , LBE
Funding Information
Related Research Object(s):
Licence Information:
Language English (EN)
Type Details URI(s) Local file(s) Year
Book Chapter or Section In High performance parallelism pearls : multicore and many-core programming approaches. Vol. 2. by J Reinders, J Jeffers, chapter 23, 441-462. Waltham: Morgan Kaufmann, 2015. 2015