Introduction to Concurrency in Programming Languages / Edition 1

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $82.85
Usually ships in 1-2 business days
(Save 9%)
Other sellers (Hardcover)
  • All (7) from $82.85   
  • New (4) from $82.85   
  • Used (3) from $83.25   

Overview

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.

Read More Show Less

Editorial Reviews

From the Publisher
… a clear focus in this book is on keeping the material accessible. The authors succeed at this brilliantly. … if you are just jumping into the world of concurrent programming, or taking a more theoretical look at the approaches we’ve all been taking for granted for the past 20 years in an attempt to make things better, then this book is a great start. The authors present a clear motivation for the relevance of continuing this work, and provide both the historical context and knowledge of present day practice that you’ll need to get off on the right foot. That they manage to do this while keeping the language clear and the text accessible is a tribute to the effort Sottile, Mattson, and Rasmussen put into the creation of the text.
—insideHPC.com, October 2010

Sottile, Mattson, and Rasmussen have successfully managed to provide a nice survey of the current state of the art of parallel algorithm design and implementation in this well-written 300-page textbook, suitable for undergraduate computer science students … this concise yet thorough book provides an outstanding introduction to the important field of concurrent programming and the techniques currently employed to design parallel algorithms. It is clearly written, well organized, and cuts to the point … It is an informative read that I highly recommend to those interested in the design and implementation of parallel algorithms.
—Fernando Berzal, Computing Reviews, May 2010

Read More Show Less

Product Details

  • ISBN-13: 9781420072136
  • Publisher: Taylor & Francis
  • Publication date: 10/7/2009
  • Series: Chapman & Hall/CRC Computational Science Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 344
  • Product dimensions: 6.40 (w) x 9.30 (h) x 1.00 (d)

Meet the Author

Matthew J. Sottile is a research associate and adjunct assistant professor in the Department of Computer and Information Sciences at the University of Oregon. He has a significant publication record in both high performance computing and scientific programming. Dr. Sottile is currently working on research in concurrent programming languages and parallel algorithms for signal and image processing in neuroscience and medical applications.

Timothy G. Mattson is a principal engineer at Intel Corporation. Dr. Mattson’s noteworthy projects include the world’s first TFLOP computer, OpenMP, the first generally programmable TFLOP chip (Intel’s 80 core research chip), OpenCL, and pioneering work on design patterns for parallel programming.

Craig E Rasmussen is a staff member in the Advanced Computing Laboratory at Los Alamos National Laboratory (LANL). Along with extensive publications in computer science, space plasma, and medical physics, Dr. Rasmussen is the principal developer of PetaVision, a massively parallel, spiking neuron model of visual cortex that ran at 1.14 Petaflops on LANL’s Roadrunner computer in 2008.

Read More Show Less

Table of Contents

Introduction

Motivation

Where does concurrency appear?

Why is concurrency considered hard?

Timeliness

Approach

Concepts in Concurrency

Terminology

Concepts

Concurrency Control

Correctness

Techniques

The State of the Art

Limitations of libraries

Explicit techniques

Higher-level techniques

The limits of explicit control

Concluding remarks

High-Level Language Constructs

Common high-level constructs

Using and evaluating language constructs

Implications of concurrency

Interpreted languages

Historical Context and Evolution of Languages

Evolution of machines

Evolution of programming languages

Limits to automatic parallelization

Modern Languages and Concurrency Constructs

Array abstractions

Message passing

Control flow

Functional languages

Functional operators

Performance Considerations and Modern Systems

Memory

Amdahl’s law, speedup, and efficiency

Locking

Thread overhead

Introduction to Parallel Algorithms

Designing parallel algorithms

Finding concurrency

Strategies for exploiting concurrency

Algorithm patterns

Patterns supporting parallel source code

Demonstrating parallel algorithm patterns

Pattern: Task Parallelism

Supporting algorithm structures

Case study: Genetic algorithms

Case study: Mandelbrot set computation

Pattern: Data Parallelism

Case study: Matrix multiplication

Case study: Cellular automaton

Limitations of SIMD data parallel programming

Beyond SIMD

Geometric decomposition

Pattern: Recursive Algorithms

Recursion concepts

Case study: Sorting

Case study: Sudoku

Pattern: Pipelined Algorithms

Pipelining as a software design pattern

Language support for pipelining

Case study: Pipelining in Erlang

Case study: Visual cortex

Appendix A: OpenMP Quick Reference

Appendix B: Erlang Quick Reference

Appendix C: Cilk Quick Reference

References

Read More Show Less

Customer Reviews

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

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com 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 & Noble.com 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 & Noble.com 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 BN.com 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

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com 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 BN.com. 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

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