Automatic Performance Prediction of Parallel Programs


Book Description

Automatic Performance Prediction of Parallel Programs presents a unified approach to the problem of automatically estimating the performance of parallel computer programs. The author focuses primarily on distributed memory multiprocessor systems, although large portions of the analysis can be applied to shared memory architectures as well. The author introduces a novel and very practical approach for predicting some of the most important performance parameters of parallel programs, including work distribution, number of transfers, amount of data transferred, network contention, transfer time, computation time and number of cache misses. This approach is based on advanced compiler analysis that carefully examines loop iteration spaces, procedure calls, array subscript expressions, communication patterns, data distributions and optimizing code transformations at the program level; and the most important machine specific parameters including cache characteristics, communication network indices, and benchmark data for computational operations at the machine level. The material has been fully implemented as part of P3T, which is an integrated automatic performance estimator of the Vienna Fortran Compilation System (VFCS), a state-of-the-art parallelizing compiler for Fortran77, Vienna Fortran and a subset of High Performance Fortran (HPF) programs. A large number of experiments using realistic HPF and Vienna Fortran code examples demonstrate highly accurate performance estimates, and the ability of the described performance prediction approach to successfully guide both programmer and compiler in parallelizing and optimizing parallel programs. A graphical user interface is described and displayed that visualizes each program source line together with the corresponding parameter values. P3T uses color-coded performance visualization to immediately identify hot spots in the parallel program. Performance data can be filtered and displayed at various levels of detail. Colors displayed by the graphical user interface are visualized in greyscale. Automatic Performance Prediction of Parallel Programs also includes coverage of fundamental problems of automatic parallelization for distributed memory multicomputers, a description of the basic parallelization strategy and a large variety of optimizing code transformations as included under VFCS.




Input/Output Intensive Massively Parallel Computing


Book Description

Massively parallel processing is currently the most promising answer to the quest for increased computer performance. This has resulted in the development of new programming languages and programming environments and has stimulated the design and production of massively parallel supercomputers. The efficiency of concurrent computation and input/output essentially depends on the proper utilization of specific architectural features of the underlying hardware. This book focuses on development of runtime systems supporting execution of parallel code and on supercompilers automatically parallelizing code written in a sequential language. Fortran has been chosen for the presentation of the material because of its dominant role in high-performance programming for scientific and engineering applications.




Conference Proceedings


Book Description




Hypercube Multiprocessors 1986


Book Description

Proceedings -- Parallel Computing.




Introduction to Parallel Computing


Book Description

A complete source of information on almost all aspects of parallel computing from introduction, to architectures, to programming paradigms, to algorithms, to programming standards. It covers traditional Computer Science algorithms, scientific computing algorithms and data intensive algorithms.




High-Level Parallel Programming Models and Supportive Environments


Book Description

On the 23rd of April, 2001, the 6th Workshop on High-Level Parallel P- gramming Models and Supportive Environments (LCTES’98) was held in San Francisco. HIPShas been held over the past six years in conjunction with IPDPS, the Internation Parallel and Distributed Processing Symposium. The HIPSworkshop focuses on high-level programming of networks of wo- stations, computing clusters and of massively-parallel machines. Its goal is to bring together researchers working in the areas of applications, language design, compilers, system architecture and programming tools to discuss new devel- ments in programming such systems. In recent years, several standards have emerged with an increasing demand of support for parallel and distributed processing. On one end, message-passing frameworks, such as PVM, MPI and VIA, provide support for basic commu- cation. On the other hand, distributed object standards, such as CORBA and DCOM, provide support for handling remote objects in a client-server fashion but also ensure certain guarantees for the quality of services. The key issues for the success of programming parallel and distributed en- ronments are high-level programming concepts and e?ciency. In addition, other quality categories have to be taken into account, such as scalability, security, bandwidth guarantees and fault tolerance, just to name a few. Today’s challenge is to provide high-level programming concepts without s- ri?cing e?ciency. This is only possible by carefully designing for those concepts and by providing supportive programming environments that facilitate program development and tuning.




CONPAR 90 - VAPP IV


Book Description

Parallel architectures are no longer pure research vehicles, as they were some years ago. There are now many commercial systems competing for market segments in scientific computing. The 1990s are likely to become the decade of parallel processing. CONPAR 90 - VAPP IV is the joint successor meeting of two highly successful international conference series in the field of vector and parallel processing. This volume contains the 79 papers presented at the conference. The various topics of the papers include hardware, software and application issues. Some of the session titles best reflect the contents: new models of computation, logic programming, large-grain data flow, interconnection networks, communication issues, reconfigurable and scalable systems, novel architectures and languages, high performance systems and accelerators, performance prediction / analysis / measurement, performance monitoring and debugging, compile-time analysis and restructurers, load balancing, process partitioning and concurrency control, visualization and runtime analysis, parallel linear algebra, architectures for image processing, efficient use of vector computers, transputer tools and applications, array processors, algorithmic studies for hypercube-type systems, systolic arrays and algorithms. The volume gives a comprehensive view of the state of the art in a field of current interest.




Advanced Symbolic Analysis for Compilers


Book Description

This book presents novel symbolic control and data flow techniques as well as symbolic techniques and algorithms for program analysis and program optimization. Program contexts, defining a new symbolic description of program semantics for control and data flow analysis, are at the center of the techniques and methods introduced. The authors develop solutions for a number of problems encountered in program analysis by using program contexts. The solutions proposed are efficient, versatile, unified, and more general than most existing methods. The authors' symbolic analysis framework is implemented as a prototype as part of the Vienna High Performance Compiler.




Programming Massively Parallel Processors


Book Description

Programming Massively Parallel Processors: A Hands-on Approach, Second Edition, teaches students how to program massively parallel processors. It offers a detailed discussion of various techniques for constructing parallel programs. Case studies are used to demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. This guide shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in depth. This revised edition contains more parallel programming examples, commonly-used libraries such as Thrust, and explanations of the latest tools. It also provides new coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more; increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism; and two new case studies (on MRI reconstruction and molecular visualization) that explore the latest applications of CUDA and GPUs for scientific research and high-performance computing. This book should be a valuable resource for advanced students, software engineers, programmers, and hardware engineers. - New coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more - Increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism - Two new case studies (on MRI reconstruction and molecular visualization) explore the latest applications of CUDA and GPUs for scientific research and high-performance computing




Encyclopedia of Parallel Computing


Book Description

Containing over 300 entries in an A-Z format, the Encyclopedia of Parallel Computing provides easy, intuitive access to relevant information for professionals and researchers seeking access to any aspect within the broad field of parallel computing. Topics for this comprehensive reference were selected, written, and peer-reviewed by an international pool of distinguished researchers in the field. The Encyclopedia is broad in scope, covering machine organization, programming languages, algorithms, and applications. Within each area, concepts, designs, and specific implementations are presented. The highly-structured essays in this work comprise synonyms, a definition and discussion of the topic, bibliographies, and links to related literature. Extensive cross-references to other entries within the Encyclopedia support efficient, user-friendly searchers for immediate access to useful information. Key concepts presented in the Encyclopedia of Parallel Computing include; laws and metrics; specific numerical and non-numerical algorithms; asynchronous algorithms; libraries of subroutines; benchmark suites; applications; sequential consistency and cache coherency; machine classes such as clusters, shared-memory multiprocessors, special-purpose machines and dataflow machines; specific machines such as Cray supercomputers, IBM’s cell processor and Intel’s multicore machines; race detection and auto parallelization; parallel programming languages, synchronization primitives, collective operations, message passing libraries, checkpointing, and operating systems. Topics covered: Speedup, Efficiency, Isoefficiency, Redundancy, Amdahls law, Computer Architecture Concepts, Parallel Machine Designs, Benmarks, Parallel Programming concepts & design, Algorithms, Parallel applications. This authoritative reference will be published in two formats: print and online. The online edition features hyperlinks to cross-references and to additional significant research. Related Subjects: supercomputing, high-performance computing, distributed computing