Parallel Computing Technologies

Parallel Computing Technologies
Author: Victor Malyshkin
Publisher: Springer Nature
Total Pages: 482
Release: 2021-09-06
Genre: Computers
ISBN: 303086359X

This book constitutes the proceedings of the 16th International Conference on Parallel Computing Technologies, PaCT 2021, which was held during September 13-18, 2021. The conference was planned to take place in Kaliningrad, Russia, but changed to an online event due to the COVID-19 pandemic. The 24 full and 12 short papers included in this book were carefully reviewed and selected from 62 submissions. They were organized in topical sections as follows: parallel programming methods and tools; applications; memory-efficient data structures; experimental studies; job management; essential algorithms; computing services; and cellular automata.

A Hybrid Approach to Automatic Program Parallelization Via Efficient Tasking with Composable Data Partitioning

A Hybrid Approach to Automatic Program Parallelization Via Efficient Tasking with Composable Data Partitioning
Author: Woenchan Lee
Publisher:
Total Pages:
Release: 2019
Genre:
ISBN:

Despite the decades of research, distributed programming is still a painful task and programming systems designed to improve productivity fall short in practice. Auto-parallelizing compilers simplify distributed programming by parallelizing sequential programs automatically for distributed execution. However, their applicability is severely limited due to the fundamental undecidability of their static analysis problem. Runtime systems for implicit parallelism can handle a broader class of programs via an expressive programming model, but their runtime overhead often becomes a performance bottleneck. To design a practical system for productive distributed programming, one must combine the strengths of different parallelization paradigms to overcome their weaknesses when used in isolation. This dissertation presents a hybrid approach to automatic program parallelization, which combines an auto-parallelizing compiler with an implicitly parallel tasking system. Our approach parallelizes programs in two steps. First, the auto-parallelizer materializes data parallelism in a program into task parallelism. Next, the tasking system dynamically analyzes dependencies between tasks and executes independent tasks in parallel. This two-stage process gives programmers a second chance when the auto-parallelizer "fails": When a part of a program is not amenable to the compiler auto-parallelization, the programmer can gracefully fall back to the run- time parallelization by writing that part directly with task parallelism. Furthermore, hand-written tasks can be seamlessly integrated with the auto-parallelized part via composable data partitioning enabled by our auto-parallelizer, which allows them to share the partitioning strategy and thereby avoid excessive communication. Key to the success of this hybrid approach is to minimize the overhead of the tasking system. To achieve this goal, we introduce dynamic tracing, a runtime mechanism for efficient tasking. The most expensive component in the tasking system is dynamic dependence analysis. Although this dynamic analysis is necessary when applications exhibit true dynamic behavior, the analysis is redundant for common cases where dependencies are (mostly) unchanging. Dynamic tracing eliminates this redundancy in dynamic dependence analysis by recording the dependence analysis of an execution trace and then replaying the recording for the subsequent occurrences of the same trace. To guarantee that a recording of a trace correctly replaces the trace's original analysis, dynamic tracing also records memory locations that hold valid data when it records a trace and replays the recording only when those locations are still valid. Dynamic tracing significantly improves the efficiency of tasking, and thereby brings the strong scalability of explicit parallelism to implicit task parallelism.

Automatic Parallelization

Automatic Parallelization
Author: Christoph W. Kessler
Publisher: Springer Science & Business Media
Total Pages: 235
Release: 2012-12-06
Genre: Computers
ISBN: 3322878651

Distributed-memory multiprocessing systems (DMS), such as Intel's hypercubes, the Paragon, Thinking Machine's CM-5, and the Meiko Computing Surface, have rapidly gained user acceptance and promise to deliver the computing power required to solve the grand challenge problems of Science and Engineering. These machines are relatively inexpensive to build, and are potentially scalable to large numbers of processors. However, they are difficult to program: the non-uniformity of the memory which makes local accesses much faster than the transfer of non-local data via message-passing operations implies that the locality of algorithms must be exploited in order to achieve acceptable performance. The management of data, with the twin goals of both spreading the computational workload and minimizing the delays caused when a processor has to wait for non-local data, becomes of paramount importance. When a code is parallelized by hand, the programmer must distribute the program's work and data to the processors which will execute it. One of the common approaches to do so makes use of the regularity of most numerical computations. This is the so-called Single Program Multiple Data (SPMD) or data parallel model of computation. With this method, the data arrays in the original program are each distributed to the processors, establishing an ownership relation, and computations defining a data item are performed by the processors owning the data.

Visualization of Scientific Parallel Programs

Visualization of Scientific Parallel Programs
Author: Gerald Tomas
Publisher: Springer Science & Business Media
Total Pages: 328
Release: 1994-02-28
Genre: Computers
ISBN: 9783540577386

The substantial effort of parallelizing scientific programs is only justified if the resulting codes are efficient. Thus, all types of performance tuning are important to parallel software development. But performance improvements are much more difficult to achieve with parallel programs than with sequential programs. One way to overcome this difficulty is to bring in graphical tools. This monograph covers recent developments in parallel program visualization techniques and tools and demonstrates the application of specific visualization techniques and software tools to scientific parallel programs. The solution of initial value problems of ordinary differential equations, and numerical integration are treated in detail as two important examples.

Performance Analysis of Parallel Applications for HPC

Performance Analysis of Parallel Applications for HPC
Author: Jidong Zhai
Publisher: Springer Nature
Total Pages: 259
Release: 2023-09-09
Genre: Computers
ISBN: 9819943663

This book presents a hybrid static-dynamic approach for efficient performance analysis of parallel applications on HPC systems. Performance analysis is essential to finding performance bottlenecks and understanding the performance behaviors of parallel applications on HPC systems. However, current performance analysis techniques usually incur significant overhead. Our book introduces a series of approaches for lightweight performance analysis. We combine static and dynamic analysis to reduce the overhead of performance analysis. Based on this hybrid static-dynamic approach, we then propose several innovative techniques for various performance analysis scenarios, including communication analysis, memory analysis, noise analysis, computation analysis, and scalability analysis. Through these specific performance analysis techniques, we convey to readers the idea of using static analysis to support dynamic analysis. To gain the most from the book, readers should have a basic grasp of parallel computing, computer architecture, and compilation techniques.

Formal and Adaptive Methods for Automation of Parallel Programs Construction: Emerging Research and Opportunities

Formal and Adaptive Methods for Automation of Parallel Programs Construction: Emerging Research and Opportunities
Author: Doroshenko, Anatoliy
Publisher: IGI Global
Total Pages: 279
Release: 2020-08-28
Genre: Computers
ISBN: 1522593861

Emerging scientific and industrial applications in today’s world require significant computing power. Modern software tools are available for such platforms but are relatively complex and require the use of innovative programming models. One promising area in modern software design is the development, analysis, and implementation of algorithms and adaptive methods. These advancements in programming are promising but lack relevant research and understanding. Formal and Adaptive Methods for Automation of Parallel Programs Construction: Emerging Research and Opportunities is an essential reference source that solves the problem of the development of efficient models, methods, and tools for parallel programming automation based on the algebra of algorithms, term rewriting, and auto-tuning paradigms. The results of this book will help to further develop and improve existing research on design, synthesis, and optimization of sequential and parallel algorithms and programs. Featuring research on topics such as auto-tuning methods, graphics processing, and algorithmic language, this book is ideally designed for mathematicians, software engineers, data scientists, researchers, academicians, and students seeking coverage on developing tools for automated design and parallel programs.

Recent Advances in Parallel Virtual Machine and Message Passing Interface

Recent Advances in Parallel Virtual Machine and Message Passing Interface
Author: Bernd Mohr
Publisher: Springer Science & Business Media
Total Pages: 429
Release: 2006-09-13
Genre: Computers
ISBN: 354039110X

This book constitutes the refereed proceedings of the 13th European PVM/MPI Users' Group Meeting, held in September 2006. The book presents 38 revised full papers together with abstracts of 6 invited contributions, 4 tutorial papers and 6 poster papers. The papers are organized in topical sections on collective communication, communication protocols, debugging and verification, fault tolerance, metacomputing and grid, parallel I/O, implementation issues, object-oriented message passing, limitations and extensions and performance.