did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780138134556

Solaris Application Programming

by
  • ISBN13:

    9780138134556

  • ISBN10:

    0138134553

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2007-12-27
  • Publisher: Prentice Hall
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $64.99
  • Digital
    $68.56
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

The detailed guide for developers who want to get the best performance out of their Solaris system.

Author Biography

A senior engineer in the Compiler Performance Engineering group at Sun Microsystems, Darryl Gove analyzes and optimizes application performance on current and future UltraSPARC systems. He is a regular contributor to the developer portal (http://developers.sun.com) and maintains a blog on developer topics (http://blogs.sun.com/d). Prior to joining Sun, Darryl worked for several U.K. organizations in software architecture and development. He earned M.Sc. and Ph.D. degrees in Operational Research from the University of Southampton, U.K.

Table of Contents

Prefacep. xix
Overview of the Processorp. 1
The Generic Processorp. 3
Chapter Objectivesp. 3
The Components of a Processorp. 3
Clock Speedp. 4
Out-of-Order Processorsp. 5
Chip Multithreadingp. 6
Execution Pipesp. 7
Cachesp. 11
Interacting with the Systemp. 14
Virtual Memoryp. 16
Indexing and Tagging of Memoryp. 18
Instruction Set Architecturep. 18
The SPARC Familyp. 21
Chapter Objectivesp. 21
The UltraSPARC Familyp. 21
The SPARC Instruction Setp. 23
32-bit and 64-bit Codep. 30
The UltraSPARC III Family of Processorsp. 30
UltraSPARC T1p. 37
UltraSPARC T2p. 37
SPARC64 VIp. 38
The x64 Family of Processorsp. 39
Chapter Objectivesp. 39
The x64 Family of Processorsp. 39
The x86 Processor: CISC and RISCp. 40
Byte Orderingp. 41
Instruction Templatep. 42
Registersp. 43
Instruction Set Extensions and Floating Pointp. 46
Memory Orderingp. 46
Developer Toolsp. 47
Informational Toolsp. 4
Chapter Objectivesp. 49
Tools That Report System Configurationp. 49
Tools That Report Current System Statusp. 55
Process- and Processor-Specific Toolsp. 72
Information about Applicationsp. 84
Using the Compilerp. 93
Chapter Objectivesp. 93
Three Sets of Compiler Optionsp. 93
Using -xtarget=generic on x86p. 95
Optimizationp. 96
Generating Debug Informationp. 102
Selecting the Target Machine Type for an Applicationp. 103
Code Layout Optimizationsp. 107
General Compiler Optimizationsp. 116
Pointer Aliasing in C and C++p. 123
Other C- and C++-Specific Compiler Optimizationsp. 133
Fortran-Specific Compiler Optimizationsp. 135
Compiler Pragmasp. 136
Using Pragmas in C for Finer Aliasing Controlp. 142
Compatibility with GCCp. 147
Floating-Point Optimizationp. 149
Chapter Objectivesp. 149
Floating-Point Optimization Flagsp. 149
Floating-Point Multiply Accumulate Instructionsp. 173
Integer Mathp. 174
Floating-Point Parameter Passing with SPARC V8 Codep. 178
Libraries and Linkingp. 181
Introductionp. 181
Linkingp. 181
Libraries of Interestp. 193
Library Callsp. 199
Performance Profiling Toolsp. 207
Introductionp. 207
The Sun Studio Performance Analyzerp. 207
Collecting Profilesp. 208
Compiling for the Performance Analyzerp. 210
Viewing Profiles Using the GUIp. 210
Caller Callee Informationp. 212
Using the Command-Line Tool for Performance Analysisp. 214
Interpreting Profilesp. 215
Intepreting Profiles from UltraSPARC III/IV Processorsp. 217
Profiling Using Performance Countersp. 218
Interpreting Call Stacksp. 219
Generating Mapfilesp. 222
Generating Reports on Performance Using spotp. 223
Profiling Memory Access Patternsp. 226
er_kernelp. 233
Tail-Call Optimization and Debugp. 235
Gathering Profile Information Using gprofp. 237
Using tcov to Get Code Coverage Informationp. 239
Using dtrace to Gather Profile and Coverage Informationp. 241
Compiler Commentaryp. 244
Correctness and Debugp. 247
Introductionp. 247
Compile-Time Checkingp. 248
Runtime Checkingp. 256
Debugging Using dbxp. 262
Locating Optimization Bugs Using ATSp. 271
Debugging Using mdbp. 274
Table of Contents provided by Publisher. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

About This Book This book is a guide to getting the best performance out of computers running the Solaris operating system. The target audience is developers and software architects who are interested in using the tools that are available, as well as those who are interested in squeezing the last drop of performance out of the system. The book caters to those who are new to performance analysis and optimization, as well as those who are experienced in the area. To do this, the book starts with an overview of processor fundamentals, before introducing the tools and getting into the details. One of the things that distinguishes this book from others is that it is a practical guide. There are often two problems to overcome when doing development work. The first problem is knowing the tools that are available. This book is written to cover the breadth of tools available today and to introduce the common uses for them. The second problem is interpreting the output from the tools. This book includes many examples of tool use and explains their output. One trap this book aims to avoid is that of explaining how to manually do the optimizations that the compiler performs automatically. The book's focus is on identifying the problems using appropriate tools and solving the problems using the easiest approach. Sometimes, the solution is to use different compiler flags so that a particular hot spot in the application is optimized away. Other times, the solution is to change the code because the compiler is unable to perform the optimization; I explain this with insight into why the compiler is unable to transform the code. Goals and Assumptions The goals of this book are as follows. Provide a comprehensive introduction to the components that influence processor performance. Introduce the tools that you can use for performance analysis and improvement, both those that ship with the operating system and those that ship with the compiler. Introduce the compiler and explain the optimizations that it supports to enable improved performance. Discuss the features of the SPARC and x64 families of processors and demonstrate how you can use these features to improve application performance. Talk about the possibilities of using multiple processors or threads to enable better performance, or more efficient use of computer resources. The book assumes that the reader is comfortable with the C programming language. This language is used for most of the examples in the book. The book also assumes a willingness to learn some of the lower-level details about the processors and the instruction sets that the processors use. The book does not attempt to go into the details of processor internals, but it does introduce some of the features of modern processors that will have an effect on application performance. The book assumes that the reader has access to the Sun Studio compiler and tools. These tools are available as free downloads. Most of the examples come from using Sun Studio 12, but any recent compiler version should yield similar results. The compiler is typically installed in /opt/SUNWspro/bin/ and it is assumed that the compiler does appear on the reader's path. The book focuses on Solaris 10. Many of the tools discussed are also available in prior versions. I note in the text when a tool has been introduced in a relatively recent version of Solaris. Chapter Overview Part IOverview of the Processor Chapter 1The Generic Processor Chapter 2The SPARC Family Chapter 3The x64 Family of Processors Part IIDeveloper Tools Chapter 4Informational Tools Chapter 5Using the Compiler Chapter 6Floating-Point Optimization Chapter 7Libraries and Linking

Rewards Program