We live in an era in which parallel computing has become mainstream and very affordable. This is mainly because hardware costs have come down rapidly. With the advent of the Internet, we also experience the phenomenon of data explosion in every application of interest. Processing voluminous datasets is highly computation intensive. Parallel computing has been fruitfully employed in numerous application domains to process large datasets and handle other time-consuming operations of interest. As a result, unprecedented advances have been made in such areas as biology, scientific computing, modeling and simulations, and so forth. In this handbookwe present recent developments in the areas of parallel models, algorithms, and applications.
There are many ways of achieving parallelism. Some examples include the use of supercomputers, clusters, network of workstations, and grid computing. In sequential computing, the Random Access Machine (RAM), which executes arithmetic and Boolean operations as well as read and write memory operations, has been universally accepted as an appropriate model of computing. On the other hand, numerous parallel models of computing have been proposed in the literature. These models differ in the way the processors communicate among themselves.

