Skip to main content

Spiral

  • Reference work entry
Encyclopedia of Parallel Computing

Definition

Spiral is a program generation system (software that generates other softwares) for linear transforms and an increasing list of other mathematical functions. The goal of Spiral is to automate the development and porting of performance libraries. Linear transforms include the discrete Fourier transform (DFT), discrete cosine transforms, convolution, and the discrete wavelet transform. The input to Spiral consists of a high-level mathematical algorithm specification and selected architectural and microarchitectural parameters. The output is performance-optimized code in a high-level language such as C, possibly augmented with vector intrinsics and threading instructions.

Discussion

Introduction

The advent of computers with multiple cores, SIMD (single-instruction multiple-data) vector instruction sets, and deep memory hierarchies has a dramatic effect on the development of high-performance software. The problem is particularly apparent for functions that perform mathematical...

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 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover 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

Bibliography

  1. Spiral project website.http://www.spiral.net

  2. Bonelli A, Franchetti F, Lorenz J, PĆ¼schel M, Ueberhuber CW (2006) Automatic performance optimization of the discrete Fourier transform on distributed memory computers. In: International symposium on parallel and distributed processing and application (ISPA), Lecture notes in computer science, vol 4330. Springer, Berlin, pp 818ā€“832

    Google ScholarĀ 

  3. Chellappa S, Franchetti F, PĆ¼schel M (2009) High performance linear transform program generation for the Cell BE. In: Proceedings of the high performance embedded computing (HPEC), Lexington, 22ā€“23 SeptemberĀ 2009

    Google ScholarĀ 

  4. de Mesmay F, Chellappa S, Franchetti F, PĆ¼schel M (2010) Computer generation of efficient software Viterbi decoders. In: International conference on high performance embedded architectures and compilers (HiPEAC), Lecture notes in computer science, vol 5952. Springer, Berlin, ppĀ 353ā€“368

    Google ScholarĀ 

  5. de Mesmay F, Rimmel A, Voronenko Y, PĆ¼schel M (2009) Bandit-based optimization on graphs with application to library performance tuning. In: International conference on machine learning (ICML), ACM international conference proceedings series, vol 382. ACM, New York, pp 729ā€“736

    Google ScholarĀ 

  6. de Mesmay F, Voronenko Y, PĆ¼schel M (2010) Offline library adaptation using automatically generated heuristics. In: International parallel and distributed processing symposium (IPDPS)

    Google ScholarĀ 

  7. Franchetti F, de Mesmay F, McFarlin D, PĆ¼schel M (2009) Operator language: a program generation framework for fast kernels. In: IFIP working conference on domain specific languages (DSL WC), Lecture notes in computer science, vol 5658. Springer, Berlin, pp 385ā€“410

    Google ScholarĀ 

  8. Franchetti F, PĆ¼schel M (2002) A SIMD vectorizing compiler for digital signal processing algorithms. In: International parallel and distributed processing symposium (IPDPS). pp 20ā€“26

    Google ScholarĀ 

  9. Franchetti F, PĆ¼schel M (2008) Generating SIMD vectorized permutations. In: International conference on compiler construction (CC), Lecture notes in computer science, vol 4959. Springer, Berlin, pp 116ā€“131

    Google ScholarĀ 

  10. Franchetti F, PĆ¼schel M, Voronenko Y, Chellappa S, Moura JMF (2009) Discrete Fourier transform on multicore. IEEE Signal Proc Mag 26(6):90ā€“102

    Google ScholarĀ 

  11. Franchetti F, Voronenko Y, PĆ¼schel M (2005) Formal loop merging for signal transforms. In: Programming languages design and implementation (PLDI). ACM, New York, pp 315ā€“326

    Google ScholarĀ 

  12. Franchetti F, Voronenko Y, PĆ¼schel M (2006) FFT program generation for shared memory: SMP and multicore. In: Supercomputing (SC). ACM, New York

    Google ScholarĀ 

  13. Franchetti F, Voronenko Y, PĆ¼schel M (2006) A rewriting system for the vectorization of signal transforms. In: High performance computing for computational science (VECPAR), Lecture notes in computer science, vol 4395. Springer, Berlin, ppĀ 363ā€“377

    Google ScholarĀ 

  14. Frigo M (1999) A fast Fourier transform compiler. In: Proceedings of the programming language design and implementation (PLDI). ACM, New York, pp 169ā€“180

    Google ScholarĀ 

  15. Frigo M, Johnson SG (2005) The design and implementation of FFTW3. Proc IEEE 93(2):216ā€“231

    Google ScholarĀ 

  16. Johnson J, Johnson RW, Rodriguez D, Tolimieri R (1990) A methodology for designing, modifying, and implementing Fourier transform algorithms on various architectures. IEEE Trans Circ Sys 9:449ā€“500

    MATHĀ  MathSciNetĀ  Google ScholarĀ 

  17. McFarlin D, Franchetti F, Moura JMF, PĆ¼schel M (2009) High performance synthetic aperture radar image formation on commodity architectures. Proc SPIE 7337:733708

    Google ScholarĀ 

  18. Milder PA, Franchetti F, Hoe JC, PĆ¼schel M (2008) Formal datapath representation and manipulation for implementing DSP transforms. In: Design automation conference (DAC). ACM, New York, pp 385ā€“390

    Google ScholarĀ 

  19. Nordin G, Milder PA, Hoe JC, PĆ¼schel M (2005) Automatic generation of customized discrete Fourier transform IPs. In: Design automation conference (DAC). ACM, New York, pp 471ā€“474

    Google ScholarĀ 

  20. Press WH, Flannery BP, TeukolskyĀ SA, VetterlingĀ WT (1992) Numerical recipes in C: the art of scientific computing, 2nd edn. Cambridge University Press, Cambridge

    Google ScholarĀ 

  21. PĆ¼schel M, Moura JMF (2008) Algebraic signal processing theory: Cooley-Tukey type algorithms for DCTs and DSTs. IEEE Trans Signal Proces 56(4):1502ā€“1521

    Google ScholarĀ 

  22. PĆ¼schel M, Moura JMF, Johnson J, Padua D, Veloso M, Singer B, Xiong J, Franchetti F, Gacic A, Voronenko Y, Chen K, Johnson RW, Rizzolo N (2005) SPIRAL: code generation for DSP transforms. Proc IEEE (Special Issue on Program Generation, Optimization, and Adaptation) 93(2):232ā€“275

    Google ScholarĀ 

  23. PĆ¼schel M, Singer B, Veloso M, Moura JMF (2001) Fast automatic generation of DSP algorithms. In: International conference on computational science (ICCS), Lecture notes in computer science, vol 2073. Springer, Berlin, pp 97ā€“106

    Google ScholarĀ 

  24. PĆ¼schel M, Singer B, Xiong J, Moura JMF, Johnson J, Padua D, Veloso M, Johnson RW (2004) SPIRAL: a generator for platform-adapted libraries of signal processing algorithms. J High Perform Comput Appl 18(1):21ā€“45

    Google ScholarĀ 

  25. Singer B, Veloso M (2001) Learning to generate fast signal processing implementations. In: International conference on machine learning (ICML). Morgan Kaufmann, San Francisco, pp 529ā€“536

    Google ScholarĀ 

  26. Singer B, Veloso M (2001) Stochastic search for signal processing algorithm optimization. In: Supercomputing (SC). ACM, NewĀ York, pĀ 22

    Google ScholarĀ 

  27. Tolimieri R, An M, Lu C (1997) Algorithms for discrete Fourier transforms and convolution, 2nd edn. Springer, Berlin

    Google ScholarĀ 

  28. VanĀ Loan C (1992) Computational framework of the fast Fourier transform. SIAM, Philadelphia

    Google ScholarĀ 

  29. Voronenko Y (2008) Library generation for linear transforms. Ph.D. thesis, Electrical and Computer Engineering, Carnegie Mellon University

    Google ScholarĀ 

  30. Voronenko Y, de Mesmay F, PĆ¼schel M (2009) Computer generation of general size linear transform libraries. In: International symposium on code generation and optimization (CGO). IEEE Computer Society, Washington, DC, pp 102ā€“113

    Google ScholarĀ 

  31. Voronenko Y, P\(\ddot{\mathrm{u}}\) schel M (2009) Algebraic signal processing theory: Cooleyā€“Tukey type algorithms for real DFTs. IEEE Trans Signal Proces 57(1):205ā€“222

    Google ScholarĀ 

  32. Xiong J, Johnson J, Johnson RW, Padua D (2001) SPL: a language and compiler for DSP algorithms. In: Programming languages design and implementation (PLDI). ACM, New York, pp 298ā€“308

    Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

PĆ¼schel, M., Franchetti, F., Voronenko, Y. (2011). Spiral. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_244

Download citation

Publish with us

Policies and ethics