Advanced search
Add to list

Quasar tutorial: High-level programming of Heterogeneous Hardware

Jonas De Vylder (UGent) , Dirk Van Haerenborgh (UGent) , Joris Roels (UGent) and Bart Goossens (UGent)
(2016)
Author
Organization
Abstract
The use of graphical processing units (GPUs) for general purpose calculations has gained a lot of attention, since speed-up factors of 10x-50x compared to single-threaded CPU execution are not uncommon. This makes the use of GPUs for scientific number crunching applications very appealing. However, GPU programming is challenging, requiring a significant programming expertise in order to get these significant accelerations. The low-level programming required to harvest the GPU parallel power is a major drawback for research both in industry and in academics. In a research environment algorithms typically have to be rapidly tested and adjusted as a proof of concept and little time can be spend on implementation optimization. In this tutorial we present Quasar, a new programming framework that takes care of many common challenges for GPU programming, e.g. memory management, load balancing, scheduling. Quasar consist of a high level programming language with a similar abstraction level as Python or Matlab, making it well suited for rapid prototyping. We demonstrate the use of this programming language for a number of examples. We show how we can start from a straight forward parallelization and further improve it based on the feedback from the profiler and automated profiling analysis. Finally attendees will be able to exercise with Quasar and the IDE tools in a hands-on part of the tutorial. Tutorial goals The goal of the proposed tutorial is to introduce high level programming of heterogeneous hardware to the participants. A second goal is to get attendees acquainted with relevant development tools and how, based on the feedback from these tools, they can easily improve their developed algorithms without the need of low-level optimizations. You will benefit from the tutorial by 1) having a low barrier of entry for GPU programming 2) having shorter development cycles compared to classical low-level languages for heterogeneous hardware, due to the use of a high-level programming language
Keywords
parallel programming, heterogenous hardware acceleration, programming languages

Citation

Please use this url to cite or link to this publication:

MLA
De Vylder, Jonas, Dirk Van Haerenborgh, Joris Roels, et al. “Quasar Tutorial: High-level Programming of Heterogeneous Hardware.” 2016 : n. pag. Print.
APA
De Vylder, Jonas, Van Haerenborgh, D., Roels, J., & Goossens, B. (2016). Quasar tutorial: High-level programming of Heterogeneous Hardware. Prague: HiPEAC 2016.
Chicago author-date
De Vylder, Jonas, Dirk Van Haerenborgh, Joris Roels, and Bart Goossens. 2016. “Quasar Tutorial: High-level Programming of Heterogeneous Hardware”. Prague: HiPEAC 2016.
Chicago author-date (all authors)
De Vylder, Jonas, Dirk Van Haerenborgh, Joris Roels, and Bart Goossens. 2016. “Quasar Tutorial: High-level Programming of Heterogeneous Hardware”. Prague: HiPEAC 2016.
Vancouver
1.
De Vylder J, Van Haerenborgh D, Roels J, Goossens B. Quasar tutorial: High-level programming of Heterogeneous Hardware. Prague: HiPEAC 2016; 2016.
IEEE
[1]
J. De Vylder, D. Van Haerenborgh, J. Roels, and B. Goossens, “Quasar tutorial: High-level programming of Heterogeneous Hardware.” HiPEAC 2016, Prague, 2016.
@misc{7041058,
  abstract     = {The use of graphical processing units (GPUs) for general purpose calculations has gained a lot of attention, since speed-up factors of 10x-50x compared to single-threaded CPU execution are not uncommon. This makes the use of GPUs for scientific number crunching applications very appealing. However, GPU programming is challenging, requiring a significant programming expertise in order to get these significant accelerations. The low-level programming required to harvest the GPU parallel power is a major drawback for research both in industry and in academics. In a research environment algorithms typically have to be rapidly tested and adjusted as a proof of concept and little time can be spend on implementation optimization.

In this tutorial we present Quasar, a new programming framework that takes care of many common challenges for GPU programming, e.g. memory management, load balancing, scheduling. Quasar consist of a high level programming language with a similar abstraction level as Python or Matlab, making it well suited for rapid prototyping. We demonstrate the use of this programming language for a number of examples. We show how we can start from a straight forward parallelization and further improve it based on the feedback from the profiler and automated profiling analysis. Finally attendees will be able to exercise with Quasar and the IDE tools in a hands-on part of the tutorial.

Tutorial goals

The goal of the proposed tutorial is to introduce high level programming of heterogeneous hardware to the participants. A second goal is to get attendees acquainted with relevant development tools and how, based on the feedback from these tools, they can easily improve their developed algorithms without the need of low-level optimizations. You  will benefit from the tutorial by

1) having a low barrier of entry for GPU programming
2) having shorter development cycles compared to classical low-level languages for heterogeneous hardware, due to the use of a high-level programming language},
  author       = {De Vylder, Jonas and Van Haerenborgh, Dirk and Roels, Joris and Goossens, Bart},
  keywords     = {parallel programming,heterogenous hardware acceleration,programming languages},
  language     = {eng},
  pages        = {1},
  publisher    = {HiPEAC 2016},
  title        = {Quasar tutorial: High-level programming of Heterogeneous Hardware},
  year         = {2016},
}