Teaching High Performance Computing Parallelizing a Real Computational Science Application

  • Giovanni Aloisio
  • Massimo Cafaro
  • Italo Epicoco
  • Gianvito Quarta
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3515)


In this paper we present our approach to teaching High Performance Computing at both the undergraduate and graduate level. For undergraduate students, we emphasize the key role of an hands on approach. Parallel computing theory at this stage is kept at minimal level since this knowledge is fundamental, but our main goal for undergraduate students is the required ability to develop real parallel applications. For this reason we spend about one third of the class lectures on the theory and remaining two thirds on programming environments, tools and libraries for development of parallel applications. The availability of widely adopted standards provides us, as teachers of high performance computing, with the opportunity to present parallel algorithms uniformly, to teach how portable parallel software must be developed, how to use parallel libraries etc. When teaching at the graduate level instead, we spend more time on theory, highlighting all of the relevant aspects of parallel computation, models, parallel complexity classes, architectures, message passing and shared memory paradigms etc. In particular, we stress the key points of design and analysis of parallel applications. As a case study, we present to our students the parallelization of a real computational science application, namely a remote sensing SAR (Synthetic Aperture Radar) processor, using both MPI and OpenMP.


Fast Fourier Transform Parallel Application Cache Line Azimuth Direction Range Direction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Foster, I.: Designing and Building Parallel Programs. Addison-Wesley, Reading (1995)zbMATHGoogle Scholar
  2. 2.
    Amdahl, G.: Validity of the single processor approach to achieving large scale computing capabilities. In: Proc. AFIPS, vol. 30, pp. 483–485 (1967)Google Scholar
  3. 3.
    Gustafson, J.L.: Reevaluating Amdahl’s law. Communications of the ACM 31(5), 532–533 (1988)CrossRefGoogle Scholar
  4. 4.
    Karp, A.H., Flatt, H.P.: Measuring parallel processor performance. Communications of the ACM 33(5), 539–543 (1990)CrossRefGoogle Scholar
  5. 5.
    Elachi, C.: Spaceborne Radar Remote Sensing: Applications and Techniques. IEEE Press, Los Alamitos (1988)Google Scholar
  6. 6.
    Barber, B.C.: Theory of digital imaging from orbital synthetic-aperture radar. INT. J. Remote Sensing 6, 1009 (1985)CrossRefGoogle Scholar
  7. 7.
    Smith, A.M.: A new apporach to range-Doppler SAR processing. Journal Remote Sensing 12(2), 235–251 (1991)CrossRefGoogle Scholar
  8. 8.
    Raney, R.K., Runge, H., Bamler, R., Cumming, I.G., Wong, F.H.: Precision SAR Processing Using Chirp Scaling. IEEE Transactions on Geoscience and Remote Sensing 32(4), 786–799 (1994)CrossRefGoogle Scholar
  9. 9.
    Frigo, M., Johnson, S.G.: FFTW: An Adaptive Software Architecture for the FFT. In: ICASSP conference proceedings, vol. 3, pp. 1381–1384 (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Giovanni Aloisio
    • 1
  • Massimo Cafaro
    • 1
  • Italo Epicoco
    • 1
  • Gianvito Quarta
    • 1
  1. 1.Center for Advanced Computational TechnologiesUniversity of Lecce/ISUFIItaly

Personalised recommendations