Session: M08: Vector Performance Programming
  Title: M8: Vector Performance Programming
  Chair: Ed Kornkven (ARSC)
  Time: Monday, November 17, 8:30AM - 12:00PM
  Rm #: 38
  Edward Kornkven (ARSC), Andrew Johnson (AHPCRC)
  Content-Level: 25% Introductory 50% Intermediate 25% Advanced

Abstract: Vector Performance Programming

This tutorial will provide an overview of the current state of the art regarding vector computer systems and their application to science. It consists of three parts:

- Overview: the origin and evolution of vector systems, basic principles of the hardware and software, and differences between currently available vector systems and vector-like features in commodity processors.

- Basic examples: identification of code structures that do and don't vectorize, modification of non-vectorizing structures to allow vectorization, vector libraries, and vector-friendly programming guidelines. This section will enable programmers to develop vector-friendly code and adapt existing codes to vectorize.

- Advanced examples: tuning for memory bandwidth/architectures, caches and hybrid programming, combining parallel and vector optimization. Specific features of available vector platform hardware and software and when/how to exploit these will be considered.

Illustrations will be included from currently available vector systems such as the Cray SV1, Cray X1, NEC SX6 and others. Illustrations will include short examples and real world applications, both those developed in a vector environment and those ported to vector systems from a workstation environment. This tutorial will be of interest to those developing codes that might run on vector systems in the future.
  Link: Download PDF