This contributed volume highlights two areas of fundamental interest in high-performance computing: core algorithms for important kernels and computationally demanding applications. The first few chapters explore algorithms, numerical techniques, and their parallel formulations for a variety of kernels that arise in applications. The rest of the volume focuses on state-of-the-art applications from diverse domains. By structuring the volume around these two areas, it presents a comprehensive view of the application landscape for high-performance computing, while also enabling readers to develop new applications using the kernels. Readers will learn how to choose the most suitable parallel algorithms for any given application, ensuring that theory and practicality are clearly connected. Applications using these techniques are illustrated in detail, including: Computational materials science and engineering Computational cardiovascular analysis Multiscale analysis of wind turbines and turbomachinery Weather forecasting Machine learning techniques Parallel Algorithms in Computational Science and Engineering will be an ideal reference for applied mathematicians, engineers, computer scientists, and other researchers who utilize high-performance computing in their work.
Our aim in this book is to present and enlarge upon those aspects of parallel computing that are needed by practitioners of computational science. Today al most all classical sciences, such as mathematics, physics, chemistry and biology, employ numerical methods to help gain insight into nature. In addition to the traditional numerical methods, such as matrix inversions and the like, a whole new field of computational techniques has come to assume central importance, namely the numerical simulation methods. These methods are much less fully developed than those which are usually taught in a standard numerical math ematics course. However, they form a whole new set of tools for research in the physical sciences and are applicable to a very wide range of problems. At the same time there have been not only enormous strides forward in the speed and capability of computers but also dramatic new developments in computer architecture, and particularly in parallel computers. These improvements offer exciting prospects for computer studies of physical systems, and it is the new techniques and methods connected with such computer simulations that we seek to present in this book, particularly in the light of the possibilities opened up by parallel computers. It is clearly not possible at this early stage to write a definitive book on simulation methods and parallel computing.
This book presents advances in high performance computing as well as advances accomplished using high performance computing. It contains a collection of papers presenting results achieved in the collaboration of scientists from computer science, mathematics, physics, and mechanical engineering. From science problems to mathematical algorithms and on to the effective implementation of these algorithms on massively parallel and cluster computers, the book presents state-of-the-art methods and technology, and exemplary results in these fields.
Parallel computing has been the enabling technology of high-end machines for many years. Now, it has finally become the ubiquitous key to the efficient use of any kind of multi-processor computer architecture, from smart phones, tablets, embedded systems and cloud computing up to exascale computers. _x000D_ This book presents the proceedings of ParCo2013 – the latest edition of the biennial International Conference on Parallel Computing – held from 10 to 13 September 2013, in Garching, Germany. The conference focused on several key parallel computing areas. Themes included parallel programming models for multi- and manycore CPUs, GPUs, FPGAs and heterogeneous platforms, the performance engineering processes that must be adapted to efficiently use these new and innovative platforms, novel numerical algorithms and approaches to large-scale simulations of problems in science and engineering._x000D_ The conference programme also included twelve mini-symposia (including an industry session and a special PhD Symposium), which comprehensively represented and intensified the discussion of current hot topics in high performance and parallel computing. These special sessions covered large-scale supercomputing, novel challenges arising from parallel architectures (multi-/manycore, heterogeneous platforms, FPGAs), multi-level algorithms as well as multi-scale, multi-physics and multi-dimensional problems._x000D_ It is clear that parallel computing – including the processing of large data sets (“Big Data”) – will remain a persistent driver of research in all fields of innovative computing, which makes this book relevant to all those with an interest in this field.
Parallel algorithms Made Easy The complexity of today's applications coupled with the widespread use of parallel computing has made the design and analysis of parallel algorithms topics of growing interest. This volume fills a need in the field for an introductory treatment of parallel algorithms-appropriate even at the undergraduate level, where no other textbooks on the subject exist. It features a systematic approach to the latest design techniques, providing analysis and implementation details for each parallel algorithm described in the book. Introduction to Parallel Algorithms covers foundations of parallel computing; parallel algorithms for trees and graphs; parallel algorithms for sorting, searching, and merging; and numerical algorithms. This remarkable book: * Presents basic concepts in clear and simple terms * Incorporates numerous examples to enhance students' understanding * Shows how to develop parallel algorithms for all classical problems in computer science, mathematics, and engineering * Employs extensive illustrations of new design techniques * Discusses parallel algorithms in the context of PRAM model * Includes end-of-chapter exercises and detailed references on parallel computing. This book enables universities to offer parallel algorithm courses at the senior undergraduate level in computer science and engineering. It is also an invaluable text/reference for graduate students, scientists, and engineers in computer science, mathematics, and engineering.
– Martin Walker:NewParadigmsforComputationalScience – Yong Shi:MultipleCriteriaMathematicalProgrammingandDataMining – Hank Childs: Why Petascale Visualization and Analysis Will Change the Rules – Fabrizio Gagliardi:HPCOpportunitiesandChallengesine-Science – Pawel Gepner:Intel'sTechnologyVisionandProductsforHPC – Jarek Nieplocha:IntegratedDataandTaskManagementforScienti?c- plications – Neil F. Johnson:WhatDoFinancialMarkets,WorldofWarcraft,andthe War in Iraq, all Have in Common? Computational Insights into Human CrowdDynamics We would like to thank all keynote speakers for their interesting and inspiring talks and for submitting the abstracts and papers for these proceedings. Fig. 1. Number of papers in the general track by topic The main track of ICSS 2008 was divided into approximately 20 parallel sessions (see Fig. 1) addressing the following topics: 1. e-Science Applications and Systems 2. Scheduling and Load Balancing 3. Software Services and Tools Preface VII 4. New Hardware and Its Applications 5. Computer Networks 6. Simulation of Complex Systems 7. Image Processing and Visualization 8. Optimization Techniques 9. Numerical Linear Algebra 10. Numerical Algorithms # papers 25 23 19 20 17 14 14 15 10 10 10 10 9 10 8 8 8 7 5 0 Fig. 2. Number of papers in workshops The conference included the following workshops (Fig. 2): 1. 7th Workshop on Computer Graphics and Geometric Modeling 2. 5th Workshop on Simulation of Multiphysics Multiscale Systems 3. 3rd Workshop on Computational Chemistry and Its Applications 4. Workshop on Computational Finance and Business Intelligence 5. Workshop on Physical, Biological and Social Networks 6. Workshop on GeoComputation 7. 2nd Workshop on Teaching Computational Science 8.
Scientific computing has often been called the third approach to scientific discovery, emerging as a peer to experimentation and theory. Historically, the synergy between experimentation and theory has been well understood: experiments give insight into possible theories, theories inspire experiments, experiments reinforce or invalidate theories, and so on. As scientific computing has evolved to produce results that meet or exceed the quality of experimental and theoretical results, it has become indispensable.Parallel processing has been an enabling technology in scientific computing for more than 20 years. This book is the first in-depth discussion of parallel computing in 10 years; it reflects the mix of topics that mathematicians, computer scientists, and computational scientists focus on to make parallel processing effective for scientific problems. Presently, the impact of parallel processing on scientific computing varies greatly across disciplines, but it plays a vital role in most problem domains and is absolutely essential in many of them. Parallel Processing for Scientific Computing is divided into four parts: The first concerns performance modeling, analysis, and optimization; the second focuses on parallel algorithms and software for an array of problems common to many modeling and simulation applications; the third emphasizes tools and environments that can ease and enhance the process of application development; and the fourth provides a sampling of applications that require parallel computing for scaling to solve larger and realistic models that can advance science and engineering. This edited volume serves as an up-to-date reference for researchers and application developers on the state of the art in scientific computing. It also serves as an excellent overview and introduction, especially for graduate and senior-level undergraduate students interested in computational modeling and simulation and related computer science and applied mathematics aspects.Contents List of Figures; List of Tables; Preface; Chapter 1: Frontiers of Scientific Computing: An Overview; Part I: Performance Modeling, Analysis and Optimization. Chapter 2: Performance Analysis: From Art to Science; Chapter 3: Approaches to Architecture-Aware Parallel Scientific Computation; Chapter 4: Achieving High Performance on the BlueGene/L Supercomputer; Chapter 5: Performance Evaluation and Modeling of Ultra-Scale Systems; Part II: Parallel Algorithms and Enabling Technologies. Chapter 6: Partitioning and Load Balancing; Chapter 7: Combinatorial Parallel and Scientific Computing; Chapter 8: Parallel Adaptive Mesh Refinement; Chapter 9: Parallel Sparse Solvers, Preconditioners, and Their Applications; Chapter 10: A Survey of Parallelization Techniques for Multigrid Solvers; Chapter 11: Fault Tolerance in Large-Scale Scientific Computing; Part III: Tools and Frameworks for Parallel Applications. Chapter 12: Parallel Tools and Environments: A Survey; Chapter 13: Parallel Linear Algebra Software; Chapter 14: High-Performance Component Software Systems; Chapter 15: Integrating Component-Based Scientific Computing Software; Part IV: Applications of Parallel Computing. Chapter 16: Parallel Algorithms for PDE-Constrained Optimization; Chapter 17: Massively Parallel Mixed-Integer Programming; Chapter 18: Parallel Methods and Software for Multicomponent Simulations; Chapter 19: Parallel Computational Biology; Chapter 20: Opportunities and Challenges for Parallel Computing in Science and Engineering; Index.
Motivation It is now possible to build powerful single-processor and multiprocessor systems and use them efficiently for data processing, which has seen an explosive ex pansion in many areas of computer science and engineering. One approach to meeting the performance requirements of the applications has been to utilize the most powerful single-processor system that is available. When such a system does not provide the performance requirements, pipelined and parallel process ing structures can be employed. The concept of parallel processing is a depar ture from sequential processing. In sequential computation one processor is in volved and performs one operation at a time. On the other hand, in parallel computation several processors cooperate to solve a problem, which reduces computing time because several operations can be carried out simultaneously. Using several processors that work together on a given computation illustrates a new paradigm in computer problem solving which is completely different from sequential processing. From the practical point of view, this provides sufficient justification to investigate the concept of parallel processing and related issues, such as parallel algorithms. Parallel processing involves utilizing several factors, such as parallel architectures, parallel algorithms, parallel programming lan guages and performance analysis, which are strongly interrelated. In general, four steps are involved in performing a computational problem in parallel. The first step is to understand the nature of computations in the specific application domain.
This textbook is a concise introduction to the basic toolbox of structures that allow efficient organization and retrieval of data, key algorithms for problems on graphs, and generic techniques for modeling, understanding, and solving algorithmic problems. The authors aim for a balance between simplicity and efficiency, between theory and practice, and between classical results and the forefront of research. Individual chapters cover arrays and linked lists, hash tables and associative arrays, sorting and selection, priority queues, sorted sequences, graph representation, graph traversal, shortest paths, minimum spanning trees, optimization, collective communication and computation, and load balancing. The authors also discuss important issues such as algorithm engineering, memory hierarchies, algorithm libraries, and certifying algorithms. Moving beyond the sequential algorithms and data structures of the earlier related title, this book takes into account the paradigm shift towards the parallel processing required to solve modern performance-critical applications and how this impacts on the teaching of algorithms. The book is suitable for undergraduate and graduate students and professionals familiar with programming and basic mathematical language. Most chapters have the same basic structure: the authors discuss a problem as it occurs in a real-life situation, they illustrate the most important applications, and then they introduce simple solutions as informally as possible and as formally as necessary so the reader really understands the issues at hand. As they move to more advanced and optional issues, their approach gradually leads to a more mathematical treatment, including theorems and proofs. The book includes many examples, pictures, informal explanations, and exercises, and the implementation notes introduce clean, efficient implementations in languages such as C++ and Java.
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.