Information

Abstract

The utilization of GPUs and the massively parallel computing paradigm have become increasingly prominent in many research domains. Recent developments of platforms, such as OpenCL and CUDA, enable the usage of heterogeneous parallel computing in a wide-spread field. However, the efficient utilization of parallel hardware requires profound knowledge of parallel programming and the hardware itself.

Our approach presents a domain-specific language that facilitates fast prototyping of parallel programs, and a visual explorer which reveals their execution behavior. With the aid of our visualizations, interactions with the hardware become visible, supporting the comprehensibility of the program and its utilization of the hardware components. Furthermore, we aggregate behavior that leads to common issues in parallel programming and present it in a clearly structured view to the user.

We augment the standard methods for debugging and profiling by a visual approach that enables a more problem-specific, fine-grained way of analyzing parallel code. Our framework parses all program code and user-specified annotations in order to enable automatic, yet configurable code instrumentation. The resulting recordings are directly linked to interactive visualizations created with the well-known D3 (data-driven documents) framework.

To demonstrate our approach, we present two case studies about the visual analysis of memory bank conflicts and branch divergence. They investigate different parallel reduction implementations and a common image processing example (all from the NVIDIA OpenCL SDK). We show that our visualizations provide immediate visual insight in the execution behavior of the program and that the performance influence of the implementations is directly reflected visually.

Additional Files and Images

Additional images and videos

Additional files

Weblinks

No further information available.

BibTeX

@mastersthesis{Klein_Tobias_2015TIV,
  title =      "Towards Interactive Visual Exploration of Parallel Programs
               using a Domain-specific Language",
  author =     "Tobias Klein",
  year =       "2015",
  abstract =   "The utilization of GPUs and the massively parallel computing
               paradigm have become increasingly prominent in many research
               domains. Recent developments of platforms, such as OpenCL
               and CUDA, enable the usage of heterogeneous parallel
               computing in a wide-spread field. However, the efficient
               utilization of parallel hardware requires profound knowledge
               of parallel programming and the hardware itself.  Our
               approach presents a domain-specific language that
               facilitates fast prototyping of parallel programs, and a
               visual explorer which reveals their execution behavior. With
               the aid of our visualizations, interactions with the
               hardware become visible, supporting the comprehensibility of
               the program and its utilization of the hardware components.
               Furthermore, we aggregate behavior that leads to common
               issues in parallel programming and present it in a clearly
               structured view to the user.  We augment the standard
               methods for debugging and profiling by a visual approach
               that enables a more problem-specific, fine-grained way of
               analyzing parallel code. Our framework parses all program
               code and user-specified annotations in order to enable
               automatic, yet configurable code instrumentation. The
               resulting recordings are directly linked to interactive
               visualizations created with the well-known D3 (data-driven
               documents) framework.  To demonstrate our approach, we
               present two case studies about the visual analysis of memory
               bank conflicts and branch divergence. They investigate
               different parallel reduction implementations and a common
               image processing example (all from the NVIDIA OpenCL SDK).
               We show that our visualizations provide immediate visual
               insight in the execution behavior of the program and that
               the performance influence of the implementations is directly
               reflected visually.",
  month =      nov,
  address =    "Favoritenstrasse 9-11/E193-02, A-1040 Vienna, Austria",
  school =     "Institute of Computer Graphics and Algorithms, Vienna
               University of Technology ",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2015/Klein_Tobias_2015TIV/",
}