Programming Many-Core Systems with GRAMPS

Abstract

The era of obtaining increased performance via faster single cores and optimized single-thread programs is over. Instead, a major factor in new processors' performance comes from parallelism: increasing numbers of cores per processor and threads per core. At the same time, highly parallel GPU cores, initially developed for shading are increasingly being adopted to offload and augment conventional CPUs, and vendors are already discussing chips that combine CPU and GPU cores. These trends are leading towards heterogeneous, commodity, many-core platforms with excellent potential performance, but also (not-so-excellent) significant actual complexity. In both research and industry run-time systems, domain-specific languages, and more generally, parallel programming models, have become the tools to realize this performance and contain this complexity. In this dissertation, we present GRAMPS, a programming model for these heterogeneous commodity, many-core systems that expresses programs as graphs of thread- and data-parallel stages communicating via queues. We validate its viability with respect to four design goals broad application scope, multi-platform applicability performance, and tunability and demonstrate its effectiveness at minimizing the memory consumed by the queues. Through three case studies, we show applications for GRAMPS from domains including interactive graphics, MapReduce, physical simulation, and image processing and describe GRAMPS runtimes for three many-core platforms: two simulated future rendering platforms and one current multi-core x86 machine. Our GRAMPS runtimes efficiently recognize and exploit the available parallelism while containing the footprint/ buffering required by the queues.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 2010
Accession Number
ADA528588

Entities

People

  • Jeremy Sugerman

Organizations

  • Stanford University

Tags

Communities of Interest

  • Advanced Electronics
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Case Studies
  • Computer Programming
  • Computer Science
  • Computers
  • Graphics
  • Hash Tables
  • Image Processing
  • Instruction Set Architecture
  • Microarchitecture
  • Operating Systems
  • Ray Tracing
  • Scheduling (Production)
  • Simulations
  • Simulators
  • Software Development
  • Theses

Fields of Study

  • Computer science

Readers

  • Distributed Systems and Data Platform Development
  • Parallel and Distributed Computing.