Multithreads et concurrence

5 livres et 3 critiques, dernière mise à jour le 25 octobre 2017 , note moyenne : 4.5

  1. Intel Threading Building Blocks - Outfitting C++ for Multi-Core Processor Parallelism
  2. The Art of Concurrency - A Thread Monkey's Guide to Writing Parallel Applications
  3. C++ Concurrency in action - Pratical multithreading
  4. The Art of Multiprocessor Programming
  5. An Introduction to Parallel Programming
couverture du livre Intel Threading Building Blocks

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

Intel Threading Building Blocks

Outfitting C++ for Multi-Core Processor Parallelism

de
Public visé : Débutant

Résumé de l'éditeur

More than ever, multithreading is a requirement for good performance of systems with multi-core chips. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert.

Multi-core chips from Intel and AMD offer a dramatic boost in speed and responsiveness, and plenty of opportunities for multiprocessing on ordinary desktop computers. But they also present a challenge: More than ever, multithreading is a requirement for good performance. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert.

Written by James Reinders, Chief Evangelist of Intel Software Products, and based on the experience of Intel's developers and customers, this book explains the key tasks in multithreading and how to accomplish them with TBB in a portable and robust manner. With plenty of examples and full reference material, the book lays out common patterns of uses, reveals the gotchas in TBB, and gives important guidelines for choosing among alternatives in order to get the best performance.

You'll learn how Intel Threading Building Blocks:
  • Enables you to specify tasks instead of threads for better portability, easier programming, more understandable source code, and better performance and scalability in general
  • Focuses on the goal of parallelizing computationally intensive work to deliver high-level solutions
  • Is compatible with other threading packages, and doesn't force you to pick one package for your entire program
  • Emphasizes scalable, data-parallel programming, which allows program performance to increase as you add processors
  • Relies on generic programming, which enables you to write the best possible algorithms with the fewest constraints

Any C++ programmer who wants to write an application to run on a multi-core system will benefit from this book. TBB is also very approachable for a C programmer or a C++ programmer without much experience with templates. Best of all, you don't need experience with parallel programming or multi-core processors to use this book.

Édition : O'Reilly UK - 332 pages , 1re édition, 1er juillet 2007

ISBN10 : 0596514808 - ISBN13 : 9780596514808

Commandez sur www.amazon.fr :

27.72 € TTC (prix éditeur 29.51 € TTC) livraison gratuite !
  • Why Threading Building Blocks?
  • Thinking Parallel
  • Basic Algorithms
  • Advanced Algorithms
  • Containers
  • Scalable Memory Allocation
  • Mutual Exclusion
  • Timing
  • Task Scheduler
  • Keys to Success
  • Examples
  • History and Related Projects
Critique du livre par la rédaction Matthieu Brucher le 31 janvier 2008
Ca faisait longtemps que je voulais savoir ce que valait cette bibliothèque proposée par Intel en Open Source. Ce livre est très explicite et va de plus en plus loin dans son utilisation. Au départ, on utilise les fonctions simples, puis on passe un étage en-dessous, jusqu'à arriver au scheduler.
Les explications sont claires, autant que cela puisse l'être. En revanche, sans exemple complet, c'est difficile à comprendre (les exemples complets ne sont donnés que dans l'avant-dernier chapitre).
Dans le côté négatif, il y a la qualité du code dans certains cas. Utiliser climits à la place de limits , on a vu mieux en C++. Il n'y a pas d'explication complète avec calcul du gain attendu lors de l'utilisation de la focntion parallel_scan , il m'a fallu plusieurs minutes pour comprendre. A part ces deux points, je ne trouve pas de points vraiment négatifs.
Bref, un livre indispensable pour qui veut utiliser cette bibliothèque.




 Poster une réponse

Avatar de zoom61 zoom61 - Rédacteur https://www.developpez.com
le 16/06/2014 à 17:09
Intel Threading Building Blocks
Outfitting C++ for Multi-Core Processor Parallelism
More than ever, multithreading is a requirement for good performance of systems with multi-core chips. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert.

Multi-core chips from Intel and AMD offer a dramatic boost in speed and responsiveness, and plenty of opportunities for multiprocessing on ordinary desktop computers. But they also present a challenge: More than ever, multithreading is a requirement for good performance. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert.

Written by James Reinders, Chief Evangelist of Intel Software Products, and based on the experience of Intel's developers and customers, this book explains the key tasks in multithreading and how to accomplish them with TBB in a portable and robust manner. With plenty of examples and full reference material, the book lays out common patterns of uses, reveals the gotchas in TBB, and gives important guidelines for choosing among alternatives in order to get the best performance.

You'll learn how Intel Threading Building Blocks:
  • Enables you to specify tasks instead of threads for better portability, easier programming, more understandable source code, and better performance and scalability in general
  • Focuses on the goal of parallelizing computationally intensive work to deliver high-level solutions
  • Is compatible with other threading packages, and doesn't force you to pick one package for your entire program
  • Emphasizes scalable, data-parallel programming, which allows program performance to increase as you add processors
  • Relies on generic programming, which enables you to write the best possible algorithms with the fewest constraints

Any C++ programmer who wants to write an application to run on a multi-core system will benefit from this book. TBB is also very approachable for a C programmer or a C++ programmer without much experience with templates. Best of all, you don't need experience with parallel programming or multi-core processors to use this book.

[Lire la suite]




couverture du livre The Art of Concurrency

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

The Art of Concurrency

A Thread Monkey's Guide to Writing Parallel Applications

de
Public visé : Intermédiaire

Résumé de l'éditeur

Looking to take full advantage of multi-core processors with concurrent programming ? As one of the few resources to focus on implementing algorithms in the shared-memory model of multi-core processors, rather than just on theoretical models or distributed-memory architectures, The Art of Concurrency provides the knowledge and hands-on experience you need. You'll get detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis to steer you clear of mistakes.

Édition : O'Reilly - 285 pages , 1re édition, 1er juin 2009

ISBN10 : 0596521537 - ISBN13 : 9780596521530

Commandez sur www.amazon.fr :

30.20 € TTC (prix éditeur 37.97 € TTC) livraison gratuite !
  • Chapter 1 : Want to Go Faster? Raise Your Hands if You Want to Go Faster!
    • Some Questions You May Have
    • Four Steps of a Threading Methodology
    • Background of Parallel Algorithms
    • Shared-Memory Programming Versus Distributed-Memory Programming
    • This Book's Approach to Concurrent Programming
  • Chapter 2 : Concurrent or Not Concurrent?
    • Design Models for Concurrent Algorithms
    • What's Not Parallel
  • Chapter 3 : Proving Correctness and Measuring Performance
    • Verification of Parallel Algorithms
    • Example: The Critical Section Problem
    • Performance Metrics (How Am I Doing?)
    • Review of the Evolution for Supporting Parallelism in Hardware
  • Chapter 4 : Eight Simple Rules for Designing Multithreaded Applications
    • Rule 1: Identify Truly Independent Computations
    • Rule 2: Implement Concurrency at the Highest Level Possible
    • Rule 3: Plan Early for Scalability to Take Advantage of Increasing Numbers of Cores
    • Rule 4: Make Use of Thread-Safe Libraries Wherever Possible
    • Rule 5: Use the Right Threading Model
    • Rule 6: Never Assume a Particular Order of Execution
    • Rule 7: Use Thread-Local Storage Whenever Possible or Associate Locks to Specific Data
    • Rule 8: Dare to Change the Algorithm for a Better Chance of Concurrency
    • Summary
  • Chapter 5 : Threading Libraries
    • Implicit Threading
    • Explicit Threading
    • What Else Is Out There?
    • Domain-Specific Libraries
  • Chapter 6 : Parallel Sum and Prefix Scan
    • Parallel Sum
    • Prefix Scan
    • Selection
    • A Final Thought
  • Chapter 7 : MapReduce
    • Map As a Concurrent Operation
    • Reduce As a Concurrent Operation
    • Applying MapReduce
    • MapReduce As Generic Concurrency
  • Chapter 8 : Sorting
    • Bubblesort
    • Odd-Even Transposition Sort
    • Shellsort
    • Quicksort
    • Radix Sort
  • Chapter 9 : Searching
    • Unsorted Sequence
    • Binary Search
  • Chapter 10 : Graph Algorithms
    • Depth-First Search
    • All-Pairs Shortest Path
    • Minimum Spanning Tree
  • Chapter 11 : Threading Tools
    • Debuggers
    • Performance Tools
    • Anything Else Out There?
    • Go Forth and Conquer
Critique du livre par la rédaction Matthieu Brucher le 1er décembre 2009
Free lunch is over, c'est le moment de paralléliser. The Art of Concurrency comble le manque d'une méthodologie pour développer des applications parallèles.
Basé principalement sur les applications multithreadées, le livre couvre pthread, les Windows threads, OpenMP et Intel Threading Building Blocks. On y parle aussi des applications multi-processus, lorsqu'il y a des indications spécifiques et différentes des applications multithreads.
Le livre commence après deux chapitres sur les actions à mener avant de parallélisé son application, ainsi que ce qui pourra être paralléliser et ce qui ne pourra jamais l'être. Avant les algorithmes usuels parallélisables, l'auteur utilise trois autres chapitres pour décrire sa méthodologie permettant d'atteindre notre objectif. L'assurance de la correction (i.e. vérifier si le comportement reste identique) est une tâche difficile, donc 8 règles sont proposées pour aider, et enfin les bibliothèques support (pthread, Windows thread, OpenMP et TBB) sont exposées.
La plus grande partie du livre est consacrée, comme je l'ai suggéré, à des algorithmes somme toute simples, mais qui peuvent être parallélisés : sommes et "scans", mapreduce, tri, recherche et algorithmes de graphes. Chaque fois, plusieurs algorithmes sont tout d'abord codés en sériel, puis parallélisés avec potentiellement plusieurs bibliothèques support. Enfin, à chaque fois l'efficacité, la simplicité, la potabilité et la scalabilité sont étudiés. Cela sert à prendre du recul sur l'opération effectuée.
Le dernier chapitre est une revue rapide des outils additionnels qu'on peut utiliser ( i.e. , non obligatoires). Il s'agit principalement d'outils Intel, surtout car Intel propose de nombreux outils parmi les meilleurs.
Même si l'auteur travaille pour Intel, les outils de celui-ci ne sont pas plus mis en avant que les autres. Le ton global du livre est adapté, pas trop sérieux, pas trop copain-copain, juste ce qu'il faut.
En résumé, un très bon livre pour qui veut paralléliser son application.
Free lunch is over,, it's time to go concurrent. The Art of Concurrency addresses the need for a workflow to develop concurrent/parallel applications.
Mainly based on multithreaded applications, the book covers pthreads, Windows threads, OpenMP or Intel Threading Building Blocks library. It also covers some part of multiprocess applications if there are differences with threaded ones.
The book starts with two chapers on what actions to take before parallelizing and what can and what cannot. Before the usual algorithms that can be parallelized, the author takes three chapters to explain how you may achieve your goal. Ensuring correctness is a difficult task, so the book gives 8 rules to help and then an explanation of several support libraries that can be used.
The biggest part of the book, as I've hinted, is dedicated to simple but usual algorithms that may be parallelized: sums and scans, mapreduce, sorts, searches, and graph algorithms. Each time, several different algorithms are first coded in a serial way and then parallelized with possibly different support libraries. Also each time, the efficiency, the simplicity, the portability and the scalability conclude the sub art: it helps standing back.
The last chapter is a small overview of the additional tools that you may use (but they are not mandatory). They are mainly Intel's tools, but it's mainly because Intel provides the developer with some of the best tools.
Although the author works for Intel, he doesn't expose Intel tools more than others. The book tone is adequate, not too much serious, not like a "For Dummies", so just enjoyable.
If you need advices to parallelize your applications and you don't want to buy Patterns for Parallel Programming , buy this one (well, buy it anyway).




 Poster une réponse

Avatar de zoom61 zoom61 - Rédacteur https://www.developpez.com
le 16/06/2014 à 17:09
The Art of Concurrency
A Thread Monkey's Guide to Writing Parallel Applications
Looking to take full advantage of multi-core processors with concurrent programming ? As one of the few resources to focus on implementing algorithms in the shared-memory model of multi-core processors, rather than just on theoretical models or distributed-memory architectures, The Art of Concurrency provides the knowledge and hands-on experience you need. You'll get detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis to steer you clear of mistakes.

[Lire la suite]




couverture du livre C++ Concurrency in action

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
0 commentaire
 
 

C++ Concurrency in action

Pratical multithreading

de
Public visé : Intermédiaire

Résumé de l'éditeur

Plusieurs processeurs possédant plusieurs cores sont la norme de nos jours. La version C++11 du langage C++ offre un support plus puissant pour les applications multithreads et exige que vous maîtrisiez les principes, les techniques et les nouvelles fonctionnalités du langage pour la programmation concurrente, pour rester à la pointe des connaissances.
Sans supposer que vous avez une expérience en la matière, « C++ Concurrency in Action » vous permet progressivement d'écrire des applications multithreads robustes et élégantes en C++11. Vous pourrez explorer le modèle de mémoire des threads, la nouvelle bibliothèque supportant le multithreading et le lancement basique de threads et des fonctionnalités de synchronisation.
Au cours de la lecture, vous apprendrez comment naviguer dans les points les plus délicats de la programmation concurrente.

Édition : Manning Publications - 352 pages , 1re édition, 8 mars 2012

ISBN10 : 1933988770 - ISBN13 : 9781933988771

Commandez sur www.amazon.fr :

39.00 € TTC (prix éditeur 39.29 € TTC) livraison gratuite !
  • Hello, world of concurrency in C++!
  • Managing threads
  • Sharing data between threads
  • Synchronizing concurrent operations
  • The C++ memory model and operations on atomic types
  • Designing lock-based concurrent data structures
  • Designing lock-free concurrent data structures
  • Designing concurrent code
  • Advanced thread management
  • Testing and debugging multithreaded applications
  • Appendix A - Brief reference for some C++11 language features
  • Appendix B - Brief comparison of concurrency libraries
  • Appendix C - A message-passing framework and complete ATM example
  • Appendix D - C++ Thread Library reference
Critique du livre par la rédaction Jean-Marc.Bourguet le 8 décembre 2012
e dont je me doutais en achetant ce livre, c'est que la précision technique serait au rendez-vous. Ce que je ne savais pas, c'est à quel point l'ouvrage serait accessible et traiterait au-delà de ce que le C++11 apporte des questions de conception.
C'est toujours difficile quand on a déjà une certaine connaissance du domaine de constater à quel point un ouvrage est accessible aux néophytes. L'exposé m'a semblé clair, cohérent et sans défaut majeur tant quand il traitait de choses que je connaissais déjà que quand il traitait de sujets que je savais ne pas maîtriser.
Le livre ne se contente pas d'expliquer comment utiliser ce que fournit le C++11, mais il traite aussi plus largement de la conception, du test et du débogage des applications multithreads. Celui du test et du débogage me semble être le plus complet que j'aie vu imprimé. Le traitement de la conception est lui un peu court, mais c'est un sujet qui mérite au moins un livre pour lui.
Malheureusement, la bibliographie est quasiment absente et se limite presque aux ouvrages cités. Et on n'y trouvera donc pas de ressources pour compléter le traitement de la conception ou de tout autre sujet que l'on désire approfondir. Autre chose importante dans un livre de référence, l'index. L'index est fortement hiérarchisé, ce qui fait que par exemple pour trouver l'explication de la relation « happens-before », il faut chercher à « M, memory model, acquire-release ordering, and happens-before » et il n'y a rien à « H, happens-before » qui renvoie à « memory model ».
L'exposé est trop rapide pour recommander le livre comme introduction à quelqu'un qui ne connaît rien du multithread, mais un néophyte motivé doit pouvoir s'en sortir avec. Si ce n'est peut-être pas la référence ultime sur le multithread en C++11, c'est principalement qu'une telle référence devra intégrer l'expérience d'une communauté plus large que celle dans laquelle ces fonctionnalités ont été conçues. En attendant que cette expérience existe, « C++ Concurrency in action » fera parfaitement l'affaire et met la barre haut pour celui qui désirera écrire cette référence ultime.




 Poster une réponse

Avatar de zoom61 zoom61 - Rédacteur https://www.developpez.com
le 16/06/2014 à 17:09
C++ Concurrency in action
Pratical multithreading
Plusieurs processeurs possédant plusieurs cores sont la norme de nos jours. La version C++11 du langage C++ offre un support plus puissant pour les applications multithreads et exige que vous maîtrisiez les principes, les techniques et les nouvelles fonctionnalités du langage pour la programmation concurrente, pour rester à la pointe des connaissances.
Sans supposer que vous avez une expérience en la matière, « C++ Concurrency in Action » vous permet progressivement d'écrire des applications multithreads robustes et élégantes en C++11. Vous pourrez explorer le modèle de mémoire des threads, la nouvelle bibliothèque supportant le multithreading et le lancement basique de threads et des fonctionnalités de synchronisation.
Au cours de la lecture, vous apprendrez comment naviguer dans les points les plus délicats de la programmation concurrente.

[Lire la suite]




couverture du livre The Art of Multiprocessor Programming

drapeau
Détails du livre
Critiques (0)
0 commentaire
 
 

The Art of Multiprocessor Programming

de
Public visé : Débutant

Résumé de l'éditeur

Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough coverage of key multiprocessor programming issues. This revised edition incorporates much-demanded updates throughout the book, based on feedback and corrections reported from classrooms since 2008 Learn the fundamentals of programming multiple threads accessing shared memory Explore mainstream concurrent data structures and the key elements of their design, as well as synchronization techniques from simple locks to transactional memory systems Visit the companion site and download source code, example Java programs, and materials to support and enhance the learning experience

Édition : Morgan Kaufmann - 536 pages , 2eédition, 5 juin 2012

ISBN10 : 0123973376 - ISBN13 : 9780123973375

Commandez sur www.amazon.fr :

40.00 € TTC (prix éditeur 41.99 € TTC) livraison gratuite !
Aucune critique n'a été faite pour l'instant



 Poster une réponse

Avatar de zoom61 zoom61 - Rédacteur https://www.developpez.com
le 16/06/2014 à 17:09
The Art of Multiprocessor Programming
Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough coverage of key multiprocessor programming issues. This revised edition incorporates much-demanded updates throughout the book, based on feedback and corrections reported from classrooms since 2008 Learn the fundamentals of programming multiple threads accessing shared memory Explore mainstream concurrent data structures and the key elements of their design, as well as synchronization techniques from simple locks to transactional memory systems Visit the companion site and download source code, example Java programs, and materials to support and enhance the learning experience

[Lire la suite]




couverture du livre An Introduction to Parallel Programming

drapeau
Détails du livre
Critiques (0)
0 commentaire
 
 

An Introduction to Parallel Programming

de
Public visé : Débutant

Résumé de l'éditeur

Author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP. The first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture, An Introduction to Parallel Programming explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. User-friendly exercises teach students how to compile, run and modify example programs. Key features: Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples Focuses on designing, debugging and evaluating the performance of distributed and shared-memory programs Explains how to develop parallel programs using MPI, Pthreads, and OpenMP programming models

Édition : Morgan Kaufmann - 392 pages , 2eédition, 21 janvier 2011

ISBN10 : 0123742609 - ISBN13 : 9780123742605

Commandez sur www.amazon.fr :

53.90 € TTC (prix éditeur 60.41 € TTC) livraison gratuite !
Aucune critique n'a été faite pour l'instant



 Poster une réponse

Avatar de zoom61 zoom61 - Rédacteur https://www.developpez.com
le 16/06/2014 à 17:09
An Introduction to Parallel Programming
Author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP. The first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture, An Introduction to Parallel Programming explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. User-friendly exercises teach students how to compile, run and modify example programs. Key features: Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples Focuses on designing, debugging and evaluating the performance of distributed and shared-memory programs Explains how to develop parallel programs using MPI, Pthreads, and OpenMP programming models

[Lire la suite]




Contacter le responsable de la rubrique C++