Scout: a data-parallel programming language for graphics processors

Commodity graphics hardware has seen incredible growth in terms of performance, programmability, and arithmetic precision. Even though these trends have been primarily driven by the entertainment industry, the price-to-performance ratio of graphics processors (GPUs) has attracted the attention of many within the high-performance computing community. While the performance of the GPU is well suited for computational science, the programming interface, and several hardware limitations, have prevented their wide adoption. In this paper we present Scout, a data-parallel programming language for graphics processors that hides the nuances of both the underlying hardware and supporting graphics software layers. In addition to general-purpose programming constructs, the language provides extensions for scientific visualization operations that support the exploration of existing or computed data sets.

[1]  A. Lefohn Glift: an abstraction for generic, efficient GPU data structures , 2005, SIGGRAPH Courses.

[2]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[3]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[4]  John D. Owens,et al.  A Work-Efficient Step-Efficient Prefix Sum Algorithm , 2006 .

[5]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.

[6]  Reinhard Wilhelm,et al.  The CGiS Compiler-A Tool Demonstration , 2006, CC.

[7]  A. Karma,et al.  Quantitative phase-field modeling of dendritic growth in two and three dimensions , 1996 .

[8]  Jens H. Krüger,et al.  A Survey of General‐Purpose Computation on Graphics Hardware , 2007, Eurographics.

[9]  John D. Owens,et al.  Mio: fast multipass partitioning via priority-based instruction scheduling , 2004, Graphics Hardware.

[10]  William E. Lorensen,et al.  The design and implementation of an object-oriented toolkit for 3D graphics and visualization , 1996, Proceedings of Seventh Annual IEEE Visualization '96.

[11]  David Tarditi,et al.  Accelerator: using data parallelism to program GPUs for general-purpose uses , 2006, ASPLOS XII.

[12]  James P. Ahrens,et al.  Scout: a hardware-accelerated system for quantitatively driven visualization and analysis , 2004, IEEE Visualization 2004.

[13]  Yao Zhang,et al.  Scan primitives for GPU computing , 2007, GH '07.

[14]  Roger Crawfis,et al.  A scientific visualization synthesizer , 1991, Proceeding Visualization '91.

[15]  Paul Mackerras,et al.  Data shaders , 1993, Proceedings Visualization '93.

[16]  Lloyd Treinish,et al.  An extended data-flow architecture for data analysis and visualization , 1995, COMG.

[17]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[18]  Michael E. Papka,et al.  Large-Scale Data Visualization Using Parallel Data Streaming , 2001, IEEE Computer Graphics and Applications.

[19]  Bradford L. Chamberlain,et al.  Parallel Programmability and the Chapel Language , 2007, Int. J. High Perform. Comput. Appl..

[20]  D. Scott Dyer,et al.  A dataflow toolkit for visualization , 1990, IEEE Computer Graphics and Applications.

[21]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[22]  M. McCool Data-Parallel Programming on the Cell BE and the GPU using the RapidMind Development Platform , 2006 .

[23]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[24]  John D. Owens,et al.  Glift: Generic, efficient, random-access GPU data structures , 2006, TOGS.

[25]  Bradford L. Chamberlain,et al.  The design and implementation of a region-based parallel programming language , 2001 .

[26]  Bradford L. Chamberlain The design and implementation of a region-based parallel language , 2001 .

[27]  Guy E. Blelloch,et al.  Collection-oriented languages , 1991 .

[28]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[29]  Guy E. Blelloch,et al.  Scans as Primitive Parallel Operations , 1989, ICPP.

[30]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[31]  Mark J. Harris Mapping computational concepts to GPUs , 2005, SIGGRAPH Courses.

[32]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.

[33]  Jeppe Revall Frisvad,et al.  Computing the scattering properties of participating media using Lorenz-Mie theory , 2007, ACM Trans. Graph..