Introduction to High Performance Computing for Scientists and Engineers

Author: Georg Hager,Gerhard Wellein

Publisher: CRC Press

ISBN: 9781439811931

Category: Computers

Page: 356

View: 9919

Written by high performance computing (HPC) experts, Introduction to High Performance Computing for Scientists and Engineers provides a solid introduction to current mainstream computer architecture, dominant parallel programming models, and useful optimization strategies for scientific HPC. From working in a scientific computing center, the authors gained a unique perspective on the requirements and attitudes of users as well as manufacturers of parallel computers. The text first introduces the architecture of modern cache-based microprocessors and discusses their inherent performance limitations, before describing general optimization strategies for serial code on cache-based architectures. It next covers shared- and distributed-memory parallel computer architectures and the most relevant network topologies. After discussing parallel computing on a theoretical level, the authors show how to avoid or ameliorate typical performance problems connected with OpenMP. They then present cache-coherent nonuniform memory access (ccNUMA) optimization techniques, examine distributed-memory parallel programming with message passing interface (MPI), and explain how to write efficient MPI code. The final chapter focuses on hybrid programming with MPI and OpenMP. Users of high performance computers often have no idea what factors limit time to solution and whether it makes sense to think about optimization at all. This book facilitates an intuitive understanding of performance limitations without relying on heavy computer science knowledge. It also prepares readers for studying more advanced literature. Read about the authors’ recent honor: Informatics Europe Curriculum Best Practices Award for Parallelism and Concurrency
Posted in Computers

Introduction to High Performance Computing for Scientists and Engineers

Author: Georg Hager

Publisher: CRC Press

ISBN: 9781138470897

Category:

Page: N.A

View: 1419

Written by high performance computing (HPC) experts, Introduction to High Performance Computing for Scientists and Engineers provides a solid introduction to current mainstream computer architecture, dominant parallel programming models, and useful optimization strategies for scientific HPC. From working in a scientific computing center, the authors gained a unique perspective on the requirements and attitudes of users as well as manufacturers of parallel computers. The text first introduces the architecture of modern cache-based microprocessors and discusses their inherent performance limitations, before describing general optimization strategies for serial code on cache-based architectures. It next covers shared- and distributed-memory parallel computer architectures and the most relevant network topologies. After discussing parallel computing on a theoretical level, the authors show how to avoid or ameliorate typical performance problems connected with OpenMP. They then present cache-coherent non-uniform memory access (ccNUMA) optimization techniques, examine distributed-memory parallel programming with message passing interface (MPI), and explain how to write efficient MPI code. The final chapter focuses on hybrid programming with MPI and OpenMP. Users of high performance computers often have no idea what factors limit time to solution and whether it makes sense to think about optimization at all. This book facilitates an intuitive understanding of performance limitations without relying on heavy computer science knowledge. It also prepares readers for studying more advanced literature. Read about the authors' recent honor: Informatics Europe Curriculum Best Practices Award for Parallelism and Concurrency.
Posted in

High Performance Computing

Programming and Applications

Author: John Levesque,Gene Wagenbreth

Publisher: CRC Press

ISBN: 9781420077063

Category: Computers

Page: 244

View: 4203

High Performance Computing: Programming and Applications presents techniques that address new performance issues in the programming of high performance computing (HPC) applications. Omitting tedious details, the book discusses hardware architecture concepts and programming techniques that are the most pertinent to application developers for achieving high performance. Even though the text concentrates on C and Fortran, the techniques described can be applied to other languages, such as C++ and Java. Drawing on their experience with chips from AMD and systems, interconnects, and software from Cray Inc., the authors explore the problems that create bottlenecks in attaining good performance. They cover techniques that pertain to each of the three levels of parallelism: Message passing between the nodes Shared memory parallelism on the nodes or the multiple instruction, multiple data (MIMD) units on the accelerator Vectorization on the inner level After discussing architectural and software challenges, the book outlines a strategy for porting and optimizing an existing application to a large massively parallel processor (MPP) system. With a look toward the future, it also introduces the use of general purpose graphics processing units (GPGPUs) for carrying out HPC computations. A companion website at www.hybridmulticoreoptimization.com contains all the examples from the book, along with updated timing results on the latest released processors.
Posted in Computers

Introduction to Reversible Computing

Author: Kalyan S. Perumalla

Publisher: CRC Press

ISBN: 1439873402

Category: Computers

Page: 325

View: 5932

Few books comprehensively cover the software and programming aspects of reversible computing. Filling this gap, Introduction to Reversible Computing offers an expanded view of the field that includes the traditional energy-motivated hardware viewpoint as well as the emerging application-motivated software approach. Collecting scattered knowledge into one coherent account, the book provides a compendium of both classical and recently developed results on reversible computing. It explores up-and-coming theories, techniques, and tools for the application of reversible computing—the logical next step in the evolution of computing systems. The book covers theory, hardware and software aspects, fundamental limits, complexity analyses, practical algorithms, compilers, efficiency improvement techniques, and application areas. The topics span several areas of computer science, including high-performance computing, parallel/distributed systems, computational theory, compilers, power-aware computing, and supercomputing. The book presents sufficient material for newcomers to easily get started. It provides citations to original articles on seminal results so that readers can consult the corresponding publications in the literature. Pointers to additional resources are included for more advanced topics. For those already familiar with a certain topic within reversible computing, the book can serve as a one-stop reference to other topics in the field.
Posted in Computers

High Performance Visualization

Enabling Extreme-Scale Scientific Insight

Author: E. Wes Bethel,Hank Childs,Charles Hansen

Publisher: CRC Press

ISBN: 1439875731

Category: Computers

Page: 520

View: 5089

Visualization and analysis tools, techniques, and algorithms have undergone a rapid evolution in recent decades to accommodate explosive growth in data size and complexity and to exploit emerging multi- and many-core computational platforms. High Performance Visualization: Enabling Extreme-Scale Scientific Insight focuses on the subset of scientific visualization concerned with algorithm design, implementation, and optimization for use on today’s largest computational platforms. The book collects some of the most seminal work in the field, including algorithms and implementations running at the highest levels of concurrency and used by scientific researchers worldwide. After introducing the fundamental concepts of parallel visualization, the book explores approaches to accelerate visualization and analysis operations on high performance computing platforms. Looking to the future and anticipating changes to computational platforms in the transition from the petascale to exascale regime, it presents the main research challenges and describes several contemporary, high performance visualization implementations. Reflecting major concepts in high performance visualization, this book unifies a large and diverse body of computer science research, development, and practical applications. It describes the state of the art at the intersection of scientific visualization, large data, and high performance computing trends, giving readers the foundation to apply the concepts and carry out future research in this area.
Posted in Computers

High Performance Parallel I/O

Author: Prabhat,Quincey Koziol

Publisher: CRC Press

ISBN: 1466582340

Category: Computers

Page: 434

View: 8761

Gain Critical Insight into the Parallel I/O Ecosystem Parallel I/O is an integral component of modern high performance computing (HPC), especially in storing and processing very large datasets to facilitate scientific discovery. Revealing the state of the art in this field, High Performance Parallel I/O draws on insights from leading practitioners, researchers, software architects, developers, and scientists who shed light on the parallel I/O ecosystem. The first part of the book explains how large-scale HPC facilities scope, configure, and operate systems, with an emphasis on choices of I/O hardware, middleware, and applications. The book then traverses up the I/O software stack. The second part covers the file system layer and the third part discusses middleware (such as MPIIO and PLFS) and user-facing libraries (such as Parallel-NetCDF, HDF5, ADIOS, and GLEAN). Delving into real-world scientific applications that use the parallel I/O infrastructure, the fourth part presents case studies from particle-in-cell, stochastic, finite volume, and direct numerical simulations. The fifth part gives an overview of various profiling and benchmarking tools used by practitioners. The final part of the book addresses the implications of current trends in HPC on parallel I/O in the exascale world.
Posted in Computers

Scientific Computing with Multicore and Accelerators

Author: Jakub Kurzak,David A. Bader,Jack Dongarra

Publisher: CRC Press

ISBN: 1439825378

Category: Computers

Page: 514

View: 1302

The hybrid/heterogeneous nature of future microprocessors and large high-performance computing systems will result in a reliance on two major types of components: multicore/manycore central processing units and special purpose hardware/massively parallel accelerators. While these technologies have numerous benefits, they also pose substantial performance challenges for developers, including scalability, software tuning, and programming issues. Researchers at the Forefront Reveal Results from Their Own State-of-the-Art Work Edited by some of the top researchers in the field and with contributions from a variety of international experts, Scientific Computing with Multicore and Accelerators focuses on the architectural design and implementation of multicore and manycore processors and accelerators, including graphics processing units (GPUs) and the Sony Toshiba IBM (STI) Cell Broadband Engine (BE) currently used in the Sony PlayStation 3. The book explains how numerical libraries, such as LAPACK, help solve computational science problems; explores the emerging area of hardware-oriented numerics; and presents the design of a fast Fourier transform (FFT) and a parallel list ranking algorithm for the Cell BE. It covers stencil computations, auto-tuning, optimizations of a computational kernel, sequence alignment and homology, and pairwise computations. The book also evaluates the portability of drug design applications to the Cell BE and illustrates how to successfully exploit the computational capabilities of GPUs for scientific applications. It concludes with chapters on dataflow frameworks, the Charm++ programming model, scan algorithms, and a portable intracore communication framework. Explores the New Computational Landscape of Hybrid Processors By offering insight into the process of constructing and effectively using the technology, this volume provides a thorough and practical introduction to the area of hybrid computing. It discusses introductory concepts and simple examples of parallel computing, logical and performance debugging for parallel computing, and advanced topics and issues related to the use and building of many applications.
Posted in Computers

Introduction to Concurrency in Programming Languages

Author: Matthew J. Sottile,Timothy G. Mattson,Craig E Rasmussen

Publisher: CRC Press

ISBN: 9781420072143

Category: Mathematics

Page: 344

View: 9018

Exploring how concurrent programming can be assisted by language-level techniques, Introduction to Concurrency in Programming Languages presents high-level language techniques for dealing with concurrency in a general context. It provides an understanding of programming languages that offer concurrency features as part of the language definition. The book supplies a conceptual framework for different aspects of parallel algorithm design and implementation. It first addresses the limitations of traditional programming techniques and models when dealing with concurrency. The book then explores the current state of the art in concurrent programming and describes high-level language constructs for concurrency. It also discusses the historical evolution of hardware, corresponding high-level techniques that were developed, and the connection to modern systems, such as multicore and manycore processors. The remainder of the text focuses on common high-level programming techniques and their application to a range of algorithms. The authors offer case studies on genetic algorithms, fractal generation, cellular automata, game logic for solving Sudoku puzzles, pipelined algorithms, and more. Illustrating the effect of concurrency on programs written in familiar languages, this text focuses on novel language abstractions that truly bring concurrency into the language and aid analysis and compilation tools in generating efficient, correct programs. It also explains the complexity involved in taking advantage of concurrency with regard to program correctness and performance.
Posted in Mathematics

Petascale Computing

Algorithms and Applications

Author: David A. Bader

Publisher: CRC Press

ISBN: 9781584889106

Category: Computers

Page: 616

View: 2948

Although the highly anticipated petascale computers of the near future will perform at an order of magnitude faster than today’s quickest supercomputer, the scaling up of algorithms and applications for this class of computers remains a tough challenge. From scalable algorithm design for massive concurrency toperformance analyses and scientific visualization, Petascale Computing: Algorithms and Applications captures the state of the art in high-performance computing algorithms and applications. Featuring contributions from the world’s leading experts in computational science, this edited collection explores the use of petascale computers for solving the most difficult scientific and engineering problems of the current century. Covering a wide range of important topics, the book illustrates how petascale computing can be applied to space and Earth science missions, biological systems, weather prediction, climate science, disasters, black holes, and gamma ray bursts. It details the simulation of multiphysics, cosmological evolution, molecular dynamics, and biomolecules. The book also discusses computational aspects that include the Uintah framework, Enzo code, multithreaded algorithms, petaflops, performance analysis tools, multilevel finite element solvers, finite element code development, Charm++, and the Cactus framework. Supplying petascale tools, programming methodologies, and an eight-page color insert, this volume addresses the challenging problems of developing application codes that can take advantage of the architectural features of the new petascale systems in advance of their first deployment.
Posted in Computers

Explorations in Computing

An Introduction to Computer Science and Python Programming

Author: John S. Conery

Publisher: CRC Press

ISBN: 1466572450

Category: Computers

Page: 439

View: 8412

An Active Learning Approach to Teaching the Main Ideas in Computing Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to computer science concepts and computer programming. Designed for CS0 and CS1 courses, it is very well suited for alternative lecture styles, including flipped classrooms. Prepares Students for Advanced Work in Computer Science A revised and updated version of the author’s Explorations in Computing: An Introduction to Computer Science, this text incorporates two major differences. It now uses Python, instead of Ruby, as the lab software so that students can seamlessly transition from introductory projects to more advanced studies in later courses. The book also introduces Python programming, providing students with sufficient programming skills so they can implement their own programs. Practical, Step-by-Step Projects The interactive lab projects in each chapter allow students to examine important ideas in computer science, particularly how algorithms offer computational solutions to problems. Students can type expressions, view results, and run experiments that help them understand the concepts in a hands-on way. Web Resources The Python software modules for each lab project are available on the author’s website. The modules include data files and sample Python code that students can copy and modify. In addition, the site provides a lab manual of installation instructions and tips for editing programs and running commands in a terminal emulator.
Posted in Computers

Contemporary High Performance Computing

From Petascale toward Exascale

Author: Jeffrey S. Vetter

Publisher: CRC Press

ISBN: 1466568356

Category: Computers

Page: 730

View: 5593

Contemporary High Performance Computing: From Petascale toward Exascale focuses on the ecosystems surrounding the world’s leading centers for high performance computing (HPC). It covers many of the important factors involved in each ecosystem: computer architectures, software, applications, facilities, and sponsors. The first part of the book examines significant trends in HPC systems, including computer architectures, applications, performance, and software. It discusses the growth from terascale to petascale computing and the influence of the TOP500 and Green500 lists. The second part of the book provides a comprehensive overview of 18 HPC ecosystems from around the world. Each chapter in this section describes programmatic motivation for HPC and their important applications; a flagship HPC system overview covering computer architecture, system software, programming systems, storage, visualization, and analytics support; and an overview of their data center/facility. The last part of the book addresses the role of clouds and grids in HPC, including chapters on the Magellan, FutureGrid, and LLGrid projects. With contributions from top researchers directly involved in designing, deploying, and using these supercomputing systems, this book captures a global picture of the state of the art in HPC.
Posted in Computers

Introduction to HPC with MPI for Data Science

Author: Frank Nielsen

Publisher: Springer

ISBN: 3319219030

Category: Computers

Page: 282

View: 4538

This gentle introduction to High Performance Computing (HPC) for Data Science using the Message Passing Interface (MPI) standard has been designed as a first course for undergraduates on parallel programming on distributed memory models, and requires only basic programming notions. Divided into two parts the first part covers high performance computing using C++ with the Message Passing Interface (MPI) standard followed by a second part providing high-performance data analytics on computer clusters. In the first part, the fundamental notions of blocking versus non-blocking point-to-point communications, global communications (like broadcast or scatter) and collaborative computations (reduce), with Amdalh and Gustafson speed-up laws are described before addressing parallel sorting and parallel linear algebra on computer clusters. The common ring, torus and hypercube topologies of clusters are then explained and global communication procedures on these topologies are studied. This first part closes with the MapReduce (MR) model of computation well-suited to processing big data using the MPI framework. In the second part, the book focuses on high-performance data analytics. Flat and hierarchical clustering algorithms are introduced for data exploration along with how to program these algorithms on computer clusters, followed by machine learning classification, and an introduction to graph analytics. This part closes with a concise introduction to data core-sets that let big data problems be amenable to tiny data problems. Exercises are included at the end of each chapter in order for students to practice the concepts learned, and a final section contains an overall exam which allows them to evaluate how well they have assimilated the material covered in the book.
Posted in Computers

High-Performance Computing in Finance

Problems, Methods, and Solutions

Author: M. A. H. Dempster,Juho Kanniainen,John Keane,Erik Vynckier

Publisher: CRC Press

ISBN: 1315354691

Category: Computers

Page: 614

View: 2394

High-Performance Computing (HPC) delivers higher computational performance to solve problems in science, engineering and finance. There are various HPC resources available for different needs, ranging from cloud computing– that can be used without much expertise and expense – to more tailored hardware, such as Field-Programmable Gate Arrays (FPGAs) or D-Wave’s quantum computer systems. High-Performance Computing in Finance is the first book that provides a state-of-the-art introduction to HPC for finance, capturing both academically and practically relevant problems.
Posted in Computers

Introduction to Modeling and Simulation with MATLAB and Python

Author: Steven I. Gordon,Brian Guilfoos

Publisher: CRC Press

ISBN: 9781498773874

Category: Computer programming

Page: 186

View: 9233

Introduction to Modeling and Simulation with MATLAB and Python is intended for students and professionals in science, social science, and engineering that wish to learn the principles of computer modeling, as well as basic programming skills. The book content focuses on meeting a set of basic modeling and simulation competencies that were developed as part of several National Science Foundation grants. Even though computer science students are much more expert programmers, they are not often given the opportunity to see how those skills are being applied to solve complex science and engineering problems and may also not be aware of the libraries used by scientists to create those models. The book interleaves chapters on modeling concepts and related exercises with programming concepts and exercises. The authors start with an introduction to modeling and its importance to current practices in the sciences and engineering. They introduce each of the programming environments and the syntax used to represent variables and compute mathematical equations and functions. As students gain more programming expertise, the authors return to modeling concepts, providing starting code for a variety of exercises where students add additional code to solve the problem and provide an analysis of the outcomes. In this way, the book builds both modeling and programming expertise with a "just-in-time" approach so that by the end of the book, students can take on relatively simple modeling example on their own. Each chapter is supplemented with references to additional reading, tutorials, and exercises that guide students to additional help and allows them to practice both their programming and analytical modeling skills. In addition, each of the programming related chapters is divided into two parts - one for MATLAB and one for Python. In these chapters, the authors also refer to additional online tutorials that students can use if they are having difficulty with any of the topics. The book culminates with a set of final project exercise suggestions that incorporate both the modeling and programming skills provided in the rest of the volume. Those projects could be undertaken by individuals or small groups of students. The companion website at http: //www.intromodeling.com provides updates to instructions when there are substantial changes in software versions, as well as electronic copies of exercises and the related code. The website also offers a space where people can suggest additional projects they are willing to share as well as comments on the existing projects and exercises throughout the book. Solutions and lecture notes will also be available for qualifying instructors.
Posted in Computer programming

The End of Error

Unum Computing

Author: John L. Gustafson

Publisher: CRC Press

ISBN: 1482239876

Category: Computers

Page: 416

View: 8215

The Future of Numerical Computing Written by one of the foremost experts in high-performance computing and the inventor of Gustafson’s Law, The End of Error: Unum Computing explains a new approach to computer arithmetic: the universal number (unum). The unum encompasses all IEEE floating-point formats as well as fixed-point and exact integer arithmetic. This new number type obtains more accurate answers than floating-point arithmetic yet uses fewer bits in many cases, saving memory, bandwidth, energy, and power. A Complete Revamp of Computer Arithmetic from the Ground Up Richly illustrated in color, this groundbreaking book represents a fundamental change in how to perform calculations automatically. It illustrates how this novel approach can solve problems that have vexed engineers and scientists for decades, including problems that have been historically limited to serial processing. Suitable for Anyone Using Computers for Calculations The book is accessible to anyone who uses computers for technical calculations, with much of the book only requiring high school math. The author makes the mathematics interesting through numerous analogies. He clearly defines jargon and uses color-coded boxes for mathematical formulas, computer code, important descriptions, and exercises.
Posted in Computers

Using OpenMP

Portable Shared Memory Parallel Programming

Author: Barbara Chapman,Gabriele Jost,Ruud van der Pas

Publisher: MIT Press

ISBN: 0262533022

Category: Computers

Page: 353

View: 8421

Using OpenMP discusses hardware developments, describes where OpenMP is applicable, and compares OpenMP to other programming interfaces for shared and distributed memory parallel architectures. It introduces the individual features of OpenMP, provides many source code examples that demonstrate the use and functionality of the language constructs, and offers tips on writing an efficient OpenMP program. It describes how to use OpenMP in full-scale applications to achieve high performance on large-scale architectures, discussing several case studies in detail, and offers in-depth troubleshooting advice. It explains how OpenMP is translated into explicitly multithreaded code, providing a valuable behind-the-scenes account of OpenMP program performance. Finally, Using OpenMP considers trends likely to influence OpenMP development, offering a glimpse of the possibilities of a future OpenMP 3.0 from the vantage point of the current OpenMP 2.5.
Posted in Computers

Introduction to Elementary Computational Modeling

Essential Concepts, Principles, and Problem Solving

Author: Jose Garrido

Publisher: CRC Press

ISBN: 1439867399

Category: Mathematics

Page: 329

View: 522

With an emphasis on problem solving, this book introduces the basic principles and fundamental concepts of computational modeling. It emphasizes reasoning and conceptualizing problems, the elementary mathematical modeling, and the implementation using computing concepts and principles. Examples are included that demonstrate the computation and visualization of the implemented models. The author provides case studies, along with an overview of computational models and their development. The first part of the text presents the basic concepts of models and techniques for designing and implementing problem solutions. It applies standard pseudo-code constructs and flowcharts for designing models. The second part covers model implementation with basic programming constructs using MATLAB®, Octave, and FreeMat. Aimed at beginning students in computer science, mathematics, statistics, and engineering, Introduction to Elementary Computational Modeling: Essential Concepts, Principles, and Problem Solving focuses on fundamentals, helping the next generation of scientists and engineers hone their problem solving skills.
Posted in Mathematics

Introduction to Software Engineering

Author: Ronald J. Leach

Publisher: CRC Press

ISBN: 9780849314452

Category: Computers

Page: 448

View: 3073

Software engineering lies at the heart of the computer revolution. Software is used in automobiles, airplanes, and many home appliances. As the boundaries between the telecommunications, entertainment, and computer industries continue to blur in multimedia and networking, the need for software will only increase, and software will become increasingly complex. Introduction to Software Engineering gives your students the fundamentals of this growing and rapidly changing field. The book highlights the goals of software engineering, namely to write programs that have all the following attributes: efficient, reliable, usable, modifiable, portable, testable, reusable, maintainable, compatible and correct. The nine chapters cover topics that include project management, defining requirements, software design, coding, testing and integration, delivery and installation, documentation, maintenance, and research issues. The author uses a hybrid approach, combining object-oriented technology and classical programming techniques to solve computing problems. He also places a strong emphasis on Internet technology and resources. A simple, but non-trivial, running example illustrates all stages of the software engineering process. In addition, where applicable, he covers the impact of Internet technology. Introduction to Software Engineering presents the basics of software engineering in a concise and direct format. With emphasis on Internet technology, software tools for programming, and hands-on learning, this book effectively prepares students to move from an educational situation towards applying their knowledge to the complex projects faced in the professional arena. Features
Posted in Computers

Combinatorial Scientific Computing

Author: Uwe Naumann,Olaf Schenk

Publisher: CRC Press

ISBN: 1439827354

Category: Computers

Page: 600

View: 4435

Combinatorial Scientific Computing explores the latest research on creating algorithms and software tools to solve key combinatorial problems on large-scale high-performance computing architectures. It includes contributions from international researchers who are pioneers in designing software and applications for high-performance computing systems. The book offers a state-of-the-art overview of the latest research, tool development, and applications. It focuses on load balancing and parallelization on high-performance computers, large-scale optimization, algorithmic differentiation of numerical simulation code, sparse matrix software tools, and combinatorial challenges and applications in large-scale social networks. The authors unify these seemingly disparate areas through a common set of abstractions and algorithms based on combinatorics, graphs, and hypergraphs. Combinatorial algorithms have long played a crucial enabling role in scientific and engineering computations and their importance continues to grow with the demands of new applications and advanced architectures. By addressing current challenges in the field, this volume sets the stage for the accelerated development and deployment of fundamental enabling technologies in high-performance scientific computing.
Posted in Computers