Parallel programming is designed for the use of parallel computer systems for solving time-consuming problems that cannot be solved on a sequential computer in a reasonable time. These problems can be divided into two classes: 1. Processing large data arrays (including processing images and signals in real time)2. Simulation of complex physical processes and chemical reactions For each of these classes, prospective methods are designed for solving problems. For data processing, one of the most promising technologies is the use of artificial neural networks. Particles-in-cell method and cellular automata are very useful for simulation. Problems of scalability of parallel algorithms and the transfer of existing parallel programs to future parallel computers are very acute now. An important task is to optimize the use of the equipment (including the CPU cache) of parallel computers. Along with parallelizing information processing, it is essential to ensure the processing reliability by the relevant organization of systems of concurrent interacting processes. From the perspective of creating qualitative parallel programs, it is important to develop advanced methods of learning parallel programming. The above reasons are the basis for the creation of this book, chapters of which are devoted to solving these problems. We hope this book will be of interest to researchers, students and all those working in the field of parallel programming and high performance computing.
{{comment.content}}