Skip to main content

Towards Heterogeneous Computing without Heterogeneous Programming

  • Conference paper
Trends in Functional Programming (TFP 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7829))

Included in the following conference series:

Abstract

From laptops to supercomputer nodes hardware architectures become increasingly heterogeneous, combining at least multiple general-purpose cores with one or even multiple GPU accelerators. Taking effective advantage of such systems’ capabilities becomes increasingly important, but is even more challenging.

SaC is a functional array programming language with support for fully automatic parallelization following a data-parallel approach. Typical SaC programs are good matches for both conventional multi-core processors as well as many-core accelerators. Indeed, SaC supports both architectures in an entirely compiler-directed way, but so far a choice must be made at compile time: either the compiled code utilizes multiple cores and ignores a potentially available accelerator, or it uses a single GPU while ignoring all but one core of the host system.

We present a compilation scheme and corresponding runtime system support that combine both code generation alternatives to harness the computational forces of multiple general-purpose cores and multiple GPU accelerators to collaboratively execute SaC programs without explicit encoding in the programs themselves and thus without going through the hassle of heterogeneous programming.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Grelck, C., et al.: SAC: a functional array language for efficient multi-threaded execution. International Journal of Parallel Programming 34(4), 383–427 (2006)

    Article  MATH  Google Scholar 

  2. Wieser, V., et al.: Combining High Productivity and High Performance in Image Processing Using Single Assignment C on Multi-core CPUs and Many-core GPUs. Journal of Electronic Imaging 21(2) (2012)

    Google Scholar 

  3. Chamberlain, R., et al.: Visions for application development on hybrid computing systems. Parallel Computing 34(4), 201–216 (2008)

    Article  MathSciNet  Google Scholar 

  4. Kumar, R., et al.: Heterogeneous chip multiprocessors. Computer 38(11) (2005)

    Google Scholar 

  5. Guo, Z., et al.: A quantitative analysis of the speedup factors of FPGAs over processors. In: Field Programmable Gate Arrays, Monterrey, CA, USA (2004)

    Google Scholar 

  6. Che, S., et al.: A performance study of general-purpose applications on graphics processors using CUDA. Journal of Parallel and Distributed Computing 68(10), 1370–1380 (2008)

    Article  Google Scholar 

  7. Williams, S., et al.: The potential of the cell processor for scientific computing. In: 3rd Conference on Computing Frontiers, Ischia, Italy. ACM (2006)

    Google Scholar 

  8. RapidMind Inc.: Writing Applications for the GPU Using the RapidMindTM Development Platform (2006)

    Google Scholar 

  9. Papakipos, M.: The PeakStream platform: High-Productivity software development for multi-core processors. Technical report, PeakStream Inc. (2007)

    Google Scholar 

  10. Dolbeau, R., et al.: HMPPTM: A hybrid multi-core parallel programming environment. In: General Purpose Processing on Graphics Processing Units, Boston, MA, USA (2007)

    Google Scholar 

  11. Tomov, S., et al.: MAGMA Users’ Guide. University of Tennessee (2010)

    Google Scholar 

  12. Horton, M., et al.: A Class of Hybrid LAPACK Algorithms for Multicore and GPU Architectures. In: Application Accelerators in High-Performance Computing, Knoxville, TN, USA (2011)

    Google Scholar 

  13. Ravi, V., et al.: Compiler and runtime support for enabling reduction computations on heterogeneous systems. Concurrency and Computation: Practice and Experience 24(5), 463–480 (2011)

    Article  Google Scholar 

  14. Grelck, C.: Shared memory multiprocessor support for functional array processing in SAC. Journal of Functional Programming 15(3), 353–401 (2005)

    Article  MATH  Google Scholar 

  15. Guo, J., et al.: Breaking the GPU programming barrier with the auto-parallelising SAC compiler. In: Declarative Aspects of Multicore Programming, Austin, TX, USA (2011)

    Google Scholar 

  16. Hummel, S., et al.: Load-sharing in heterogeneous systems via weighted factoring. In: Parallel Algorithms and Architectures, Padua, Italy, pp. 318–328. ACM (1996)

    Google Scholar 

  17. Boyer, M., et al.: Automatic Intra-Application Load Balancing for Heterogeneous Systems. In: AMD Fusion® Developer Summit 2011, Bellevue, Washington, USA (2011)

    Google Scholar 

  18. Grelck, C.: Single Assignment C (SAC): High Productivity meets High Performance. In: Zsók, V., Horváth, Z., Plasmeijer, R. (eds.) CEFP. LNCS, vol. 7241, pp. 207–278. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  19. Grelck, C., Scholz, S.B.: Merging compositions of array skeletons in SAC. Journal of Parallel Computing 32(7+8), 507–522 (2006)

    Article  Google Scholar 

  20. Grelck, C., et al.: On code generation for multi-generator with-loops in SAC. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 77–94. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  21. Guo, J.: Compilation of SAC to CUDA. PhD thesis, University of Hertfordshire, Hatfield, UK (2012)

    Google Scholar 

  22. Augonnet, C., et al.: A unified runtime system for heterogeneous multi-core architectures. In: Euro-Par 2008, Las Palmas, Spain (2008)

    Google Scholar 

  23. Papamarcos, M., et al.: A low-overhead coherence solution for multiprocessors with private cache memories. Computer Architecture News 12(3), 348–354 (1984)

    Article  Google Scholar 

  24. DAS-4: Distributed ASCI Supercomputer 4, http://www.cs.vu.nl/das4/

  25. Chakravarty, M., et al.: Accelerating Haskell array codes with multicore GPUs. In: Declarative Aspects of Multicore Programming, Austin, TX, USA (2011)

    Google Scholar 

  26. Microsoft Research: An Introduction to Microsoft Accelerator v2 (July 2012)

    Google Scholar 

  27. Luk, C.K., et al.: Qilin: exploiting parallelism on heterogeneous multiprocessors with adaptive mapping. In: Microarchitecture, New York, NY, USA (2009)

    Google Scholar 

  28. Augonnet, C., et al.: StarPU: A unified platform for task scheduling on heterogeneous multicore architectures. In: Euro-Par 2009, Delft, Netherlands (2009)

    Google Scholar 

  29. Song, F., et al.: Efficient Support for Matrix Computations on Heterogeneous Multi-core and Multi-GPU Architectures, University of Tennessee (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Diogo, M., Grelck, C. (2013). Towards Heterogeneous Computing without Heterogeneous Programming. In: Loidl, HW., Peña, R. (eds) Trends in Functional Programming. TFP 2012. Lecture Notes in Computer Science, vol 7829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40447-4_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40447-4_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40446-7

  • Online ISBN: 978-3-642-40447-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics