Matrix Preconditioning Techniques and Applications

Parallelism has sometimes been viewed as a rare and exotic subarea of computing, interesting but of little relevance to the average programmer. A study of trends in applications, computer architecture, and networking shows that this view is no longer tenable. Parallelism is becoming ubiquitous, and parallel computing is becoming central to the programming enterprise.
Ian Foster. Designing and Building Parallel Programs. Addison-Wesley (1995)
I rather kill myself than debug a MPI program.
Anonymous
Parallel computing represents a major research direction for the future and offers the best and often the only solution to large-scale computational problems in today s technology. A book on fast solvers is incomplete without a discussion of this important topic. However, any incomplete description of the subject is of no use and there are already too many books available. Nevertheless, the author believes that too much emphasis has been put from a computer scientist s view (on parallelization) so that a beginner may feel either confused with various warnings and jargons of new phrases or intimated by the complexity of some published programs (algorithms) of well-known methods. Hence we choose to give complete details for a few selected examples that fall into the category of embarrassingly parallelizable methods.
Therefore the purpose of this chapter is to convey two simple messages.
Parallel computing is relatively simple to implement, so all readers should gain certain experience by implementing some algorithms.
Many parallel inefficiencies may well be due to the nonexistence of reliable and parallel algorithms. Serious imbalance between...