Shared-Memory Parallelism Can be Simple, Fast, and Scalable

Shared-Memory Parallelism Can be Simple, Fast, and Scalable

Julian Shun

130,94 €
IVA incluido
Disponible
Editorial:
Association for Computing Machinery 6504698
Año de edición:
2017
ISBN:
9781970001884
130,94 €
IVA incluido
Disponible

Selecciona una librería:

  • Librería Samer Atenea
  • Librería Aciertas (Toledo)
  • Kálamo Books
  • Librería Perelló (Valencia)
  • Librería Elías (Asturias)
  • Donde los libros
  • Librería Kolima (Madrid)
  • Librería Proteo (Málaga)

Parallelism is the key to achieving high performance in computing. However, writing efficient and scalable parallel programs is notoriously difficult, and often requires significant expertise. To address this challenge, it is crucial to provide programmers with high-level tools to enable them to develop solutions easily, and at the same time emphasize the theoretical and practical aspects of algorithm design to allow the solutions developed to run efficiently under many different settings. This thesis addresses this challenge using a three-pronged approach consisting of the design of shared-memory programming techniques, frameworks, and algorithms for important problems in computing. The thesis provides evidence that with appropriate programming techniques, frameworks, and algorithms, shared-memory programs can be simple, fast, and scalable, both in theory and in practice. The results developed in this thesis serve to ease the transition into the multicore era.The first part of this thesis introduces tools and techniques for deterministic parallel programming, including means for encapsulating nondeterminism via powerful commutative building blocks, as well as a novel framework for executing sequential iterative loops in parallel, which lead to deterministic parallel algorithms that are efficient both in theory and in practice. The second part of this thesis introduces Ligra, the first high-level shared memory framework for parallel graph traversal algorithms. The framework allows programmers to express graph traversal algorithms using very short and concise code, delivers performance competitive with that of highly-optimized code, and is up to orders of magnitude faster than existing systems designed for distributed memory. This part of the thesis also introduces Ligra+, which extends Ligra with graph compression techniques to reduce space usage and improve parallel performance at the same time, and is also the first graph processing system to support in-memory graph compression.The third and fourth parts of this thesis bridge the gap between theory and practice in parallel algorithm design by introducing the first algorithms for a variety of important problems on graphs and strings that are efficient both in theory and in practice. For example, the thesis develops the first linear-work and polylogarithmic-depth algorithms for suffix tree construction and graph connectivity that are also practical, as well as a work-efficient, polylogarithmic-depth, and cache-efficient shared-memory algorithm for triangle computations that achieves a 2-5x speedup over the best existing algorithms on 40 cores.This is a revised version of the thesis that won the 2015 ACM Doctoral Dissertation Award.

Artículos relacionados

  • Heterogeneous Computing Architectures
    Heterogeneous Computing Architectures: Challenges and Vision provides an updated vision of the state-of-the-art of heterogeneous computing systems, covering all the aspects related to their design: from the architecture and programming models to hardware/software integration and orchestration to real-time and security requirements. ...
  • Heterogeneous Computing Architectures
    Heterogeneous Computing Architectures: Challenges and Vision provides an updated vision of the state-of-the-art of heterogeneous computing systems, covering all the aspects related to their design: from the architecture and programming models to hardware/software integration and orchestration to real-time and security requirements. ...
    Disponible

    141,80 €

  • Scheduling and Automatic Parallelization
    Alain Darte / Frederic Vivien / Yves Robert
    Readership This book is devoted to the study of compiler transformations that are needed to expose the parallelism hiddenin a program. This book is notan introductory book to parallel processing, nor is it an introductory book to parallelizing compilers. Weassume thatreaders are familiar withthebooks High Performance Compilers for Parallel Computingby...
  • Parallel Image Processing
    S. Feyrer / T. Bräunl / W. Rapf
    This book introduces the area of image processing and data-parallel processing. It covers a number of standard algorithms in image processing and describes their parallel implementation. The programming language chosen for all examples is a structured parallel programming language which is ideal for educational purposes. It has a number of advantages ...
  • FIRST STEP TO QUANTUM COMPUTING
    Eva Gurra / Javad Shabani / JAVAD SHABANI & EVA GURRA / SHABANI JAVAD
    Quantum information is a young and evolving field. This compendium introduces quantum information in a comprehensive self-contained guide without assuming a wealth of knowledge prior to reading.The volume highlights intuition on counterintuitive topics such as quantum mechanics, basic mathematical tools and calculations involving linear algebra, and applies these concepts to qu...
    Disponible

    72,92 €

  • FIRST STEP TO QUANTUM COMPUTING
    Eva Gurra / Javad Shabani / JAVAD SHABANI & EVA GURRA / SHABANI JAVAD
    Quantum information is a young and evolving field. This compendium introduces quantum information in a comprehensive self-contained guide without assuming a wealth of knowledge prior to reading.The volume highlights intuition on counterintuitive topics such as quantum mechanics, basic mathematical tools and calculations involving linear algebra, and applies these concepts to qu...

Otros libros del autor

  • Shared-Memory Parallelism Can be Simple, Fast, and Scalable
    Julian Shun
    Parallelism is the key to achieving high performance in computing. However, writing efficient and scalable parallel programs is notoriously difficult, and often requires significant expertise. To address this challenge, it is crucial to provide programmers with high-level tools to enable them to develop solutions easily, and at the same time emphasize the theoretical and practi...