Professional Multicore Programming: Design and Implementation for C++ Developers ppt

650 968 0
Professional Multicore Programming: Design and Implementation for C++ Developers ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Từ khóa liên quan

Mục lục

  • Professional Multicore Programming Design and Implementation for C++ Developers

    • About the Authors

    • Credits

    • Acknowledgments

    • Contents

    • Introduction

      • Learn Multicore Programming

      • Different Points of View

      • Multiparadigm Approaches are the Solution

      • Why C++?

      • UML Diagrams

      • Development Environments Supported

      • Program Profiles

      • Testing and Code Reliability

      • Conventions

      • Source Code

      • Errata

      • p2p.wrox.com

      • Chapter 1: The New Architecture

        • What Is a Multicore?

        • Multicore Architectures

        • The Software Developer’s Viewpoint

        • The Bus Connection

Tài liệu cùng người dùng

Tài liệu liên quan