In the last few years, courses on parallel computation have been developed and offered in many institutions in the UK, Europe and US as a recognition of the growing significance of this topic in mathematics and computer science. There is a clear need for texts that meet the needs of students and lecturers and this book, based on the author's lecture at ETH Zurich, is an ideal practical student guide to scientific computing on parallel computers working up from a hardware instruction level, to shared memory machines, and finally to distributed memory machines. Aimed at advanced undergraduate and graduate students in applied mathematics, computer science, and engineering, subjects covered include linear algebra, fast Fourier transform, and Monte-Carlo simulations, including examples in C and, in some cases, Fortran. This book is also ideal for practitioners and programmers.
The contents of this book are a distillation of many projects which have subsequently
become the material for a course on parallel computing given for several
years at the Swiss Federal Institute of Technology in Z¨urich. Students in this
course have typically been in their third or fourth year, or graduate students,
and have come from computer science, physics, mathematics, chemistry, and programs
for computational science and engineering. Student contributions, whether
large or small, critical or encouraging, have helped crystallize our thinking in a
quickly changing area. It is, alas, a subject which overlaps with all scientific
and engineering disciplines. Hence, the problem is not a paucity of material but
rather the distillation of an overflowing cornucopia. One of the students’ most
often voiced complaints has been organizational and of information overload. It is
thus the point of this book to attempt some organization within a quickly changing
interdisciplinary topic. In all cases, we will focus our energies on floating
point calculations for science and engineering applications.