Towards Interactive Visual Exploration of Parallel Programs using a Domain-specific Language
Technische Universitat Wien
Technische Universitat Wien, 2015
@mastersthesis{Klein_Tobias_2015TIV,
title={Towards Interactive Visual Exploration of Parallel Programs using a Domain-specific Language},
author={Klein, Tobias},
year={2015},
address={Favoritenstrasse 9-11/186, A-1040 Vienna, Austria},
school={Institute of Computer Graphics and Algorithms, Vienna University of Technology},
month={nov},
URL={http://www.cg.tuwien.ac.at/research/publications/2015/Klein_Tobias_2015TIV/}
}
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.
January 29, 2016 by hgpu