Multicore Application Programming: for Windows, Linux, and Oracle Solaris

Paperback (Print)
Buy New
Buy New from
Used and New from Other Sellers
Used and New from Other Sellers
from $28.34
Usually ships in 1-2 business days
(Save 43%)
Other sellers (Paperback)
  • All (10) from $28.34   
  • New (9) from $28.34   
  • Used (1) from $38.06   


Write High-Performance, Highly Scalable Multicore Applications for Leading Platforms

Multicore Application Programming is a comprehensive, practical guide to high-performance multicore programming that any experienced developer can use.

Author Darryl Gove covers the leading approaches to parallelization on Windows, Linux, and Oracle Solaris. Through practical examples, he illuminates the challenges involved in writing applications that fully utilize multicore processors, helping you produce applications that are functionally correct, offer superior performance, and scale well to eight cores, sixteen cores, and beyond.

The book reveals how specific hardware implementations impact application performance and shows how to avoid common pitfalls. Step by step, you’ll write applications that can handle large numbers of parallel threads, and you’ll master advanced parallelization techniques. You’ll learn how to

  • Identify your best opportunities to use parallelism
  • Share data safely between multiple threads
  • Write applications using POSIX or Windows threads
  • Hand-code synchronization and sharing
  • Take advantage of automatic parallelization and OpenMP
  • Overcome common obstacles to scaling
  • Apply new approaches to writing correct, fast, scalable parallel code

Multicore Application Programming isn’t wedded to a single approach or platform: It is for every experienced C programmer working with any contemporary multicore processor in any leading operating system environment.

Read More Show Less

Product Details

  • ISBN-13: 9780321711373
  • Publisher: Addison-Wesley
  • Publication date: 11/24/2010
  • Series: Developer's Library Series
  • Pages: 441
  • Sales rank: 1,441,131
  • Product dimensions: 7.00 (w) x 8.90 (h) x 1.00 (d)

Meet the Author

Darryl Gove is a senior principal software engineer in the Oracle Solaris Studio compiler team. He works on the analysis, parallelization, and optimization of both applications and benchmarks. Darryl has a master’s degree and a doctorate in operational research from the University of Southampton, UK. He is the author of the books Solaris Application Programming (Prentice Hall, 2008) and The Developer’s Edge (Sun Microsystems, 2009). He writes regularly about optimization and coding and maintains a blog at
Read More Show Less

Table of Contents

Preface xv

Acknowledgments xix

About the Author xxi

Chapter 1: Hardware, Processes, and Threads 1

Examining the Insides of a Computer 1

The Motivation for Multicore Processors 3

The Characteristics of Multiprocessor Systems 18

The Translation of Source Code to Assembly Language 21

Summary 29

Chapter 2: Coding for Performance 31

Defining Performance 31

Understanding Algorithmic Complexity 33

How Structure Impacts Performance 39

The Role of the Compiler 60

Identifying Where Time Is Spent Using Profiling 74

How Not to Optimize 80

Performance by Design 82

Summary 83

Chapter 3: Identifying Opportunities for Parallelism 85

Using Multiple Processes to Improve System Productivity 85

Multiple Users Utilizing a Single System 87

Improving Machine Efficiency Through Consolidation 88

Using Parallelism to Improve the Performance of a Single Task 92

Parallelization Patterns 100

How Dependencies Influence the Ability Run Code in Parallel 110

Identifying Parallelization Opportunities 118

Summary 119

Chapter 4: Synchronization and Data Sharing 121

Data Races 121

Synchronization Primitives 126

Deadlocks and Livelocks 132

Communication Between Threads and Processes 133

Storing Thread-Private Data 141

Summary 142

Chapter 5: Using POSIX Threads 143

Creating Threads 143

Compiling Multithreaded Code 151

Process Termination 153

Sharing Data Between Threads 154

Variables and Memory 175

Multiprocess Programming 179

Sockets 193

Reentrant Code and Compiler Flags 197

Summary 198

Chapter 6: Windows Threading 199

Creating Native Windows Threads 199

Methods of Synchronization and Resource Sharing 208

Wide String Handling in Windows 221

Creating Processes 222

Atomic Updates of Variables 238

Allocating Thread-Local Storage 240

Setting Thread Priority 242

Summary 244

Chapter 7: Using Automatic Parallelization and OpenMP 245

Using Automatic Parallelization to Produce a Parallel Application 245

Using OpenMP to Produce a Parallel Application 256

Ensuring That Code in a Parallel Region Is Executed in Order 285

Collapsing Loops to Improve Workload Balance 286

Enforcing Memory Consistency 287

An Example of Parallelization 288

Summary 293

Chapter 8: Hand-Coded Synchronization and Sharing 295

Atomic Operations 295

Operating System–Provided Atomics 309

Lockless Algorithms 312

Summary 332

Chapter 9: Scaling with Multicore Processors 333

Constraints to Application Scaling 333

Hardware Constraints to Scaling 352

Operating System Constraints to Scaling 369

Multicore Processors and Scaling 380

Summary 381

Chapter 10: Other Parallelization Technologies 383

GPU-Based Computing 383

Language Extensions 386

Alternative Languages 399

Clustering Technologies 402

Transactional Memory 407

Vectorization 408

Summary 409

Chapter 11: Concluding Remarks 411

Writing Parallel Applications 411

Parallel Code on Multicore Processors 414

The Future 416

Bibliography 417

Index 419

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Posted January 20, 2011

    Problem with eBook Format

    I tried to download this to my Nook, but got an error that the eBook format was not compatible and could not be display. It's a shame B&N doesn't check these types of things.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)