Communications of the ACM
Measuring parallel processor performance
Communications of the ACM
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
Validity of the single processor approach to achieving large scale computing capabilities
AFIPS '67 (Spring) Proceedings of the April 18-20, 1967, spring joint computer conference
Computational Sciences Learning Project for Pre-university Students
ICCS '07 Proceedings of the 7th international conference on Computational Science, Part III: ICCS 2007
Hi-index | 0.00 |
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.