As was the case with P573 I will provide you with rather detailed lecture notes in HTML and PostScript. These will be available on-line under

`http://beige.ucs.indiana.edu/B673`(HTML version), and`http://beige.ucs.indiana.edu/gustav/B673.ps.gz`(PostScript version), or`/afs/ovpit.indiana.edu/common/www/htdocs/gustav/B673.ps.gz`(same).

towards the end of the page, which will send you directly to the lecture notes.http://www.cs.indiana.edu/dept/acad/courses.html

But you should also remember that these are just notes and not a book. They're likely to be sometimes incomplete or messy or even downright incorrect, since we're all prone to make mistakes.

The notes may well grow to a considerable size
by the time the course is finished. Use GNU `ghostview` to view
the PostScript document and select *new* pages for printing
as they become available.

The following is a somewhat incomplete list of books and other publications that I am going to base this course, B673, on. You should also check the recommended reading list for P573.

- ``Designing and Building Parallel Programs, Concepts and Tools
for Parallel Software Engineering'' by I. Foster,
Addison Wesley Publishing Company, 1994, ISBN 0-201-57594-9, pp. 380:
*A good broad review of parallel computing with numerous examples and case studies. Not a book from which to learn HPF or MPI programming though. But it gives a fairly good coverage of the issues.* - ``Using MPI, Portable Parallel Programming with the
Message-Passing Interface'' by W. Gropp, E. Lusk, and A. Skjelum,
The MIT Press, 1994, ISBN 0-262-57104-8, pp. 328:
*An easy to follow introduction to Message Passing Interface, MPI, with numerous examples in C and F77* - MPI: A Message-Passing Interface Standard (in HTML)
- MPI: A Message-Passing Interface Standard (in PostScript)
- MPI-2: Extensions to the Message-Passing Interface
(in PostScript)
*These three documents are available on-line from*`http://beige.ucs.indiana.edu`*and from*`http://www.mcs.anl.gov`*They define MPI. They are much more readable than one could expect, and abound in numerous examples.* - ``Numerical Recipes, The Art of Scientific Computing'' by
W. H. Press, B. P. Flannery, S. A. Teukolsky and W. T. Vetterling,
Cambridge University Press, 1986, ISBN 0 521 30811 9, pp. 818:
*This is one of the best and the most useful books for scientists working with computers, be it to analyse their experimental results, or develop numerical models. Written by four consummate practitioners of computational science with extensive academic and industrial experience, the book is positively hated by great many numerical analysts, primarily for not having mentioned their latest favourite method and papers. A good enough reason to buy it: stick to the classics. This book will serve you well for years to come. The ISBN number quoted above refers to one of its first editions. Since then the book has been reprinted and improved many times and in many ways, much like the Bible. Go for the latest edition.* - ``Numerical Recipes in Fortran 90'' by William Press, Saul Teukolsky,
William Vetterling, and Brian Flannery, Cambridge University Press,
1996, pp. 550:
*As volume 2 of the Fortran Numerical Recipes series, this book takes up where volume 1 (see 1.5 above) leaves off. Volume 2 begins with three completely new chapters that provide a detailed introduction to the Fortran 90 language and then present the basic concepts of parallel programming, all with the same clarity and good cheer for which**Numerical Recipes*is famous. - ``Introduction to High-Performance Scientific Computing'' by
Lloyd D. Fosdick, Elizabeth R. Jessup, Carolyn J. C. Schauble,
and Gitta Domik, The MIT Press, 1996, ISBN 0-262-06181-3, 750 pp.,
$60.00 (cloth):
*This text evolved from a course given to undergraduate science and engineering majors at MIT. It covers most of our syllabus and we are going to use it quite frequently, although not all the time. The book is not too expensive, given its size and scope. It is a highly recommended reading for this course.* - ``Numerical Linear Algebra for High-Performance Computers''
by J. J. Dongarra, I. S. Duff, D. C. Sorensen,
and H. A. van der Vorst,
Society for Industrial and Applied Mathematics, 1998,
ISBN 0-89871-428-1, pp. 342:
*The book presents a unified treatment of recently developed techniques and current understanding about solving systems of linear equations and large-scale eigenvalue problems on high-performance computers. The book provides an introduction to the world of vector and parallel processing for these linear algebra applications.* - ``Solving Linear Systems on Vector and Shared Memory Computers''
by J. J. Dongarra, I. S. Duff, D. C. Sorensen, and
H. A. van der Vorst, Second Printing,
Society for Industrial and Applied Mathematics, 1993,
ISBN 0-89871-270-X, pp. 256:
*An older version of ``Numerical Linear Algebra for High-Performance Computers''.* - ``Introduction to Scientific Computing, A Matrix-Vector Approach
Using MATLAB'' by Charles F. van Loan, Prentice Hall, 1997,
ISBN 0-13-125444-8, pp. 374:
*A good easy going introduction to MATLAB and to Octave. The latter is not mentioned in the book, but as you begin working with Octave you'll notice that it's uncannily similar to MATLAB (though**free*). The book covers some elementary numerical analysis too - not a bad way to learn about it. - ``GNU Octave, A high-level interactive language for
numerical computations'',
by John W. Eaton,
Edition 3 for Octave version 2.0.13, February 1997.
This text can be also found in
`/afs/ovpit.indiana.edu/common/gnu/doc/octave-2.0.13/interpreter``/afs/ovpit.indiana.edu/@sys/gnu/info`*An official Octave manual that is distributed together with Octave source. It covers a Brief Introduction, a Getting Started tutorial, and then goes into the details of the system discussing every available function.* - ``Explorations in Quantum Computing'' by Colin P. Williams
and Scott H. Clearwater, Springer Verlag, ISBN 0-387-94768-X,
1997, pp. 307:
*A very interesting and useful introduction to this difficult but at the same time so very promising field. Quantum computing may provide performance many orders of magnitude better than the best that you will**ever*be able to squeeze out of conventional computers based on*sloooowly*diffusing semi-classical electrons trapped in a crystal lattice of even the fastest semiconductors. Quantum computing is also going to be orders of magnitude cheaper. You can do it even today with a cup of coffe (seriously) and a Nuclear Magnetic Resonance machine.