- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
Used Trade Paper
Ships in 1 to 3 days
High Performance Computingby Kevin Dowd
Synopses & Reviews
The computing power that's available on the average desktop has exploded in the past few years. A typical PC has performance exceeding that of a multi-million dollar supercomputer a mere decade ago. To some people, that might mean that it's time to sit back and watch computers get faster: performance is no longer an issue, we'll let hardware do the work. But if you're looking at this book, you're not one of them. Performance is always an issue. Even with the fastest computers, there's a need to harness the processing power and get more work done in a limited amount of time.If you're a software developer, you probably know that getting the most out of a modern workstation or PC can be tricky. Paying closer attention to memory reference patterns and loop structure can have a huge payoff. High Performance Computing discusses how modern workstations get their performance and how you can write code that makes optimal use of your hardware. You'll learn what the newest buzzwords really mean, how caching and other memory design features affect the way your software behaves, and where the newest "post-RISC" architectures are headed.If you're involved with purchasing or evaluating workstations, this book will help you make intelligent comparisons. You'll learn how to interpret the commonly quoted industry benchmarks, what vendors do to show their machines in the best possible light, and how to run your own benchmarks.Whether you're using the latest Pentium PC or a highly specialized multiprocessor, you'll find High Performance Computing an indispensable guide. Topics covered include:
This second edition gives a thorough overview of the latest workstation and PC architectures and the trends that will influence the next generation. It pays special attention to memory design, tuning code for the best performance, multiprocessors, and benchmarking.
In the late '90s, workstations and PCs have become a lot more interesting for "armchair" architects. If you'd like to know how the hardware on your desk works, this second edition of "High Performance Computing" is a good place to start. You'll learn what the newest buzzwords really mean, how caching and other memory design features affect performance, and where the newest "post-RISC" architectures are headed. If you're a software developer, you probably know that getting the most out of a modern workstation or PC can be tricky. Paying closer attention to memory reference patterns and loop structure can have a huge payoff. "High Performance Computing" discusses how modern workstations get their performance and how you can write code that makes optimal use of your hardware. If you're involved with purchasing or evaluating workstations, this book will help you make intelligent comparisons. You'll learn how to interpret the commonly quoted industry benchmarks, what vendors do to show their machines in the best possible light, and how to run your own benchmarks. Whether you're using the latest Pentium PC or a highly specialized multiprocessor, you'll find "High Performance Computing an indispensable guide.
About the Author
KEVIN DOWD is Professor of Financial Risk Management at Nottingham University Business School and a member of the School's Centre for Research in Risk and Insurance Studies.
Table of Contents
Table of Contents Preface Part 1. Modern Computer Architectures Chapter 1. What Is High Performance Computing? Why Worry About Performance? Scope of High Performance Computing Studying High Performance Computing Measuring Performance The Next Step Chapter 2. High Performance Microprocessors Why CISC? Fundamentals of RISC Second-Generation RISC Processors RISC Means Fast Out-of-Order Execution: The Post-RISC Architecture Future Trends: Intel IA-64 and EPIC Closing Notes Chapter 3. Memory Memory Technology Registers Caches Cache Organization Virtual Memory Improving Memory Performance Closing Notes Chapter 4. Floating-Point Numbers Reality Representation Effects of Floating-Point Representation Improving Accuracy Using Guard Digits History of IEEE Floating-Point Format IEEE Floating-Point Standard IEEE Storage Format IEEE Operations Special Values Exceptions and Traps Compiler Issues Closing Notes Part 2. Programming and Tuning Software Chapter 5. What a Compiler Does History of Compilers Which Language to Optimize? Optimizing Compiler Tour Optimization Levels Classical Optimizations Closing Notes Chapter 6. Timing and Profiling Timing Subroutine Profiling Basic Block Profilers Virtual Memory Closing Notes Chapter 7. Eliminating Clutter Subroutine Calls Branches Branches Within Loops Other Clutter Closing Notes Chapter 8. Loop Optimizations Operation Counting Basic Loop Unrolling Qualifying Candidates for Loop Unrolling Nested Loops Loop Interchange Memory Access Patterns When Interchange Won't Work Blocking to Ease Memory Access Patterns Programs That Require More Memory Than You Have Closing Notes Part 3. Shared-Memory Parallel Processors Chapter 9. Understanding Parallelism Dependencies Loops Loop-Carried Dependencies Ambiguous References Closing Notes Chapter 10. Shared-Memory Multiprocessors Symmetric Multiprocessing Hardware Multiprocessor Software Concepts Techniques for Multithreaded Programs A Real Example Closing Notes Chapter 11. Programming Shared-Memory Multiprocessors Automatic Parallelization Assisting the Compiler Closing Notes Part 4. Scalable Parallel Processing Chapter 12. Large-Scale Parallel Computing Amdahl's Law Interconnect Technology A Taxonomy of Parallel Architectures A Survey of Parallel Architectures The Top 500 Report Shared Uniform Memory MIMD Shared Non-Uniform Memory MIMD Systems Distributed-Memory MIMD Architecture Single Instruction, Multiple Data Closing Notes Chapter 13. Language Support for Performance Data-Parallel Problem: Heat Flow Explicitly Parallel Languages FORTRAN 90 Problem Decomposition High Performance FORTRAN (HPF) Closing Notes Chapter 14. Message-Passing Environments Parallel Virtual Machine (PVM) Message-Passing Interface (MPI) Closing Notes Part 5. Benchmarking Chapter 15. Using Published Benchmarks User Benchmarks Industry Benchmarks Closing Notes Chapter 16. Running Your Own Benchmarks Choosing What to Benchmark Types of Benchmarks Preparing the Code Closing Notes Part 6. Appendixes Appendix A. Processor Architectures Appendix B. Looking at Assembly Language Appendix C. Future Trends: Intel IA-64 Appendix D. How FORTRAN Manages Threads at Runtime Appendix E. Memory Performance Index
What Our Readers Are Saying
Other books you might like