'Hard work is a series of simple jobs that were not carried out on time'
Parallel computing involves the simultaneous use of multiple computer resources to solve a single computational problem. The problem is divided into multiple discrete series of instructions that can be executed simultaneously on different processors. Parallel computing has traditionally been associated with 'high performance computing', which uses high-end computer resources to solve 'grand challenge' computational problems. With the advent of commodity-market multi-core processors [AMD08] [Intel08] and clusters of blade computers or low-cost servers, parallel computing is now available to many application developers. Regardless of the parallel computing infrastructure, however, many computational problems can be divided into discrete parts that can be solved simultaneously, and hence solved in less time than with a single-core computer resource. Parallel computing is also commonly used to conduct numerical simulations of complex systems in diverse domains, such as cosmology, weather forecasting, biology and genetics, business operations, material science and so on.