I am new to HPC, and if I want to know more about HPC, what kinds of book should I read? or what kinds of knowledge should I have?And what is the relationship between HPC and parallel computing?thanks
Here are a couple of book recommendations for HPC:
High Performance Computing (2nd edition), Kevin Dowd and Charles Severance, O'Reilly and Associates, 1998. This book is a good place to start learning about HPC. It covers both serial optimization and parallel computing.
Beowulf Cluster Computing with Linux, Thomas Sterling (editor), The MIT Press, 2002.
ClusterWorld is a pretty good magazine for HPC, though as the title suggests, it cover clusters. You should also check-out Forrest Hoffman's Extreme Linux column in Linux Magazine. His column has been going for some time now and many of the articles are now available on-line.
What's the relationship between HPC and parallel computing? Parallel computing is a subset of HPC. The biggest problems are being solved today on parallel computers, so more and more, HPC andparallel computing are becoming synonymous.
I hope this helps.
Henry has some good suggestions. I would add "Software Optimization for High Performance Computing" (Prentice Hall PTR) by Wadleigh and Crawford as a second or third book. It deals with many different HPC topics (Hardware, Software, Applications) with a focus toward writing and running code. Quite a few optimization techniques that would benefit even serial codes, plus some introduction to parallel programming methods are included. (Beware that I've found three errors in the text, though.)
There are dozens of books on parallel algorithms and their analysis. These won't be needed until you actually start writing parallel applications. Before you do that, you will likely need some information and practice with MPI and I'd recommend "Parallel Programming with MPI" (Morgan Kaufmann) by Peter Pachco. There are one or two other MPI books, but this is a good one to start with.If you're interested in multithreaded programming, there are a handful of books that cover those topics (e.g, Butenhof for Pthreads and Cohen & Woodring for Win32 threads).
Thanks very much for your kind suggestions :)
I also want to point out that we have a Developer Center on the IDS website devoted to articles on HPC. You may be able to find some trainings too.
Good luck. Jen
not books, but also check out the Beowulf mailing list. There's a lot of great info stashed away in its archives.
RGB's Brahma site is a good place to start too:
I just ordered Michael J Quinn's book Parallel Programming in C with MPI & OpenMP a very poppular textbook for computer science department nowadays.
Unlike all the book recommended before, this bookhas thorough treatment onspecialized applications such as Monte Carlo Simulation, Finite Difference Method,etc.
This is a new textbook, which meansit'sprobably very readable, but very expensive and over-promoted. The publisher's website haschapter by chapter powerpoint slides, source codes, end-of-chapter questions and theanswers.
Soon I will know if it is a book worth $120 it charges. Anyone has prior experience?
This question was also asked during the webcast, An Introduction to High Performance Computing: Parallel Computing Issues. The presenter, Tom Lehmann, is the Advanced Projects Manager for the Enterprise Systems Group training organization at Intel. Here is Tom's answer to the question.
Q: Which books, resources, websites do you recommend?A: There are two books that will get everybody started. One of them is called "Beowulf Cluster Computing with Linux." It is from the MIT Press, and if you look through their catalog it was edited by Dr. Thomas Sterling and has a forward by Gordon Bell, who of course is one of the pioneers in computing with the Digital Equipment Corporation. There is a similar book, also published by MIT Press, called "Beowulf Cluster Computing with Windows." Most people are not aware of the fact that Windows makes an excellent operating system for clusters just as well as Linux does. Again, when we talk about the three rules of clustering, if the application that you intend to run is a Windows application, it's probably better that you use Windows as the operating system for your cluster.