High performance computing research had an interesting journey from the year 1972 to this day. In the initial years HPC was considered synonyms with supercomputing and was accessible to the scientists and researchers who worked in the domain of aeronautics, automobiles, petrochemicals, pharmaceuticals, particle physics, weather forecasting, etc. to name a few. Next came a phase where the term supercomputing gradually was replaced by high performance computing and the computing power gradually shifted to PCs in the form of multicore processors for various reasons. This was the time when lot of researchers saw benefit in parallelizing their applications achieving speedups, scale ups and robustness. This was possible because of concepts like Message passing interface, OpenMP, etc. which got evolved. Lot of research was carried out related to HPC systems architecture, computational models, parallel algorithms, and performance optimization, as a result of which renewed interest was created in parallel computing for HPC. This interest was also sustained because of:
Real time applications needed parallel processing for improving speedup.
Growing interest in artificial intelligence and machine learning.
Huge amount of data collected because of the revolution in the mobile industry.
The past decade has seen democratization of massively parallel computing with the introduction of accelerators in various forms, GPUs, and technologies like cloud computing, HPC, Big data, and web technologies converging. The extent to which we can parallelize an application/program depends on the granularity required. A program running on the system can be considered as a big task which can be split into smaller tasks and if these smaller tasks can be executed in parallel, then the parallel programming can be applied to achieve better performance. Because of the various new parallel architectures available, the developers now are in a better position to decide whether they want the application to be coarse grained or fine grained. The next decade will see a rise in the applications related to computer vision, image and video processing, machine and deep learning, web services, natural language processing, medicine, drug discovery, autonomous driving, and biotechnology.
The research/application development today aims to solve the real world problems in the area of healthcare, automobiles, weather, security, etc. The chapters in this edited volume try to capture few of the recent research work in related areas.
The next decade will see the convergence of high performance computing and massively parallel computing for various applications and will help the researchers and scientists to solve problems which few years back were thought to be unsolvable.
The editor would like to acknowledge the support of the management of K LE Technological University during the duration of the editing of this book. This edition would not have been released on time without the support of the editorial team of IntechOpen, especially the Author Service Manager, Mrs. Marina Dusevic.