Thông tin tài liệu
Professional
Multicore Programming
Design and Implementation for C++ Developers
Cameron Hughes
Tracey Hughes
Wiley Publishing, Inc.
ffirs.indd vffirs.indd v 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
ffirs.indd iiffirs.indd ii 7/31/08 3:13:36 PM7/31/08 3:13:36 PM
www.it-ebooks.info
Professional Multicore Programming
Introduction xxi
Chapter 1: The New Architecture 1
Chapter 2: Four Effective Multicore Designs 19
Chapter 3: The Challenges of Multicore Programming 35
Chapter 4: The Operating System’s Role 67
Chapter 5: Processes, C++ Interface Classes, and Predicates 95
Chapter 6: Multithreading 143
Chapter 7: Communication and Synchronization
of Concurrent Tasks 203
Chapter 8: PADL and PBS: Approaches to Application Design 283
Chapter 9: Modeling Software Systems
That Require Concurrency 331
Chapter 10: Testing and Logical Fault Tolerance
for Parallel Programs 375
Appendix A: UML for Concurrent Design 401
Appendix B: Concurrency Models 411
Appendix C: POSIX Standard for Thread Management 427
Appendix D: POSIX Standard for Process Managemnet 567
Bibliography 593
Index 597
ffirs.indd iffirs.indd i 7/31/08 3:13:36 PM7/31/08 3:13:36 PM
www.it-ebooks.info
ffirs.indd iiffirs.indd ii 7/31/08 3:13:36 PM7/31/08 3:13:36 PM
www.it-ebooks.info
Professional
Multicore Programming
ffirs.indd iiiffirs.indd iii 7/31/08 3:13:36 PM7/31/08 3:13:36 PM
www.it-ebooks.info
ffirs.indd ivffirs.indd iv 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
Professional
Multicore Programming
Design and Implementation for C++ Developers
Cameron Hughes
Tracey Hughes
Wiley Publishing, Inc.
ffirs.indd vffirs.indd v 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
Professional Multicore Programming:
Design and Implementation for C++ Developers
Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-28962-4
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
Library of Congress Cataloging-in-Publication Data
Hughes, Cameron, 1960-
Professional multicore programming : design and implementation for C++ developers/Cameron Hughes, Tracey
Hughes.
p. cm.
Includes index.
ISBN 978-0-470-28962-4 (paper/website)
1. Parallel programming (Computer science) 2. Multiprocessors. 3. C++ (Computer program language)
4. System design. I. Hughes, Tracey. I. Title.
QA76.642.H837 2008
005.13'3—dc22
2008026307
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,
electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of
the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers,
MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal
Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or
online at
http://www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with
respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including
without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or
promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is
sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional
services. If professional assistance is required, the services of a competent professional person should be sought. Neither
the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is
referred to in this work as a citation and/or a potential source of further information does not mean that the author or the
publisher endorses the information the organization or Web site may provide or recommendations it may make. Further,
readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this
work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the
United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are
trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other
countries, and may not be used without written permission. All other trademarks are the property of their respective
owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.
Excerpts from the POSIX Standard for Thread Management and the POSIX Standard for Process Management in
Appendixes C and D are reprinted with permission from IEEE Std. 1003.1-2001, IEEE Standard for Information
Technology – Portable Operating System Interface (POSIX), Copyright 2001, by IEEE. The IEEE disclaims any
responsibility or liability resulting from the placement and use in the described manner.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available
in electronic books.
ffirs.indd viffirs.indd vi 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
We would like to dedicate this book to Vera and Mary, our inspiration.
ffirs.indd viiffirs.indd vii 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
ffirs.indd viiiffirs.indd viii 7/31/08 3:13:37 PM7/31/08 3:13:37 PM
www.it-ebooks.info
[...]... multithreading and multiprocessing Parallel programming techniques that were once only the concern of theoretical computer scientists and university academics are in the process of being reworked for the masses The ideas of multicore application design and development are now a concern for the mainstream Learn Multicore Programming Our book Professional Multicore Programming: Design and Implementation for C++ Developers. .. approach for software development xxii www.it-ebooks.info flast.indd xxii 7/31/08 3:14:02 PM Introduction Why C++? There are C++ compilers available for virtually every platform and operating environment The ANSI American National Standards Institute (ANSI) and International Organization for Standardization (ISO) have defined standards for the C++ language and its library There are robust open-source implementations... points and problem size In most cases, software design and software implementation are separate efforts and in many situations are performed by different groups But in the case where software speedup or optimal performance is a primary system requirement, the software design effort has to at least be aware of the software implementation choices, and the software implementation choices have to be informed... shtml and complete the form there to send us the error you have found We’ll check the information and, if appropriate, post a message to the book’s errata page and fix the problem in subsequent editions of the book p2p.wrox.com For author and peer discussion, join the P2P forums at p2p.wrox.com The forums are a Web-based system for you to post messages relating to Wrox books and related technologies and. .. Connection From Single Core to Multicore Multiprogramming and Multiprocessing Parallel Programming Multicore Application Design and Implementation Summary 3 4 5 7 9 11 12 13 14 15 15 15 16 17 Chapter 2: Four Effective Multicore Designs The AMD Multicore Opteron 19 21 Opteron’s Direct Connect and HyperTransport System Request Interface and Crossbar The Opteron Is NUMA Cache and the Multiprocessor Opteron... begins your look at multicore programming We will cover: ❑ What is a multicore? ❑ What multicore architectures are there and how do they differ from each other? ❑ What do you as a designer and developer of software need to know about moving from sequential programming and single core application development to multicore programming? What Is a Multicore? A multicore is an architecture design that places... potential performance gains, the design and implementation are very similar We discuss minor differences throughout the book For developers who are only familiar with sequential programming and single core development, the multicore approach offers many new software development paradigms Multicore Architectures CMPs come in multiple flavors: two processors (dual core), four processors (quad core), and eight... hardware platforms, we rely on cross-platform approaches POSIX standard operating system calls and libraries are used Only features of C++ that are supported by the International C++ standard are used We advocate a component approach to the challenges and obstacles found in multiprocessing and multithreading Our primary objective is to take advantage of framework classes as building blocks for concurrency... them in a simple, understandable manner We address the pitfalls and traps of concurrency programming and synchronization We provide a no-nonsense discussion of multiprocessing and multithreading models This book provides numerous programming examples that demonstrate how successful multicore programming is done We also include methods and techniques for debugging and testing multicore programming Finally,... been designed to take advantage of the new multicore architectures In fact, to see any real speedup from the new multicore architectures, desktop software will have to be redesigned The approaches to designing and implementing application software that will take advantage of the multicore processors are radically different from techniques used in single core development The focus of software design and . PM7/31/08 3:13:37 PM
www.it-ebooks.info
Professional Multicore Programming:
Design and Implementation for C++ Developers
Published by
Wiley Publishing,. PM7/31/08 3:13:37 PM
www.it-ebooks.info
Professional
Multicore Programming
Design and Implementation for C++ Developers
Cameron Hughes
Tracey Hughes
Wiley
Ngày đăng: 23/03/2014, 06:20
Xem thêm: Professional Multicore Programming: Design and Implementation for C++ Developers ppt, Professional Multicore Programming: Design and Implementation for C++ Developers ppt