{"product_id":"task-scheduling-for-parallel-systems-9780471735762","title":"Task Scheduling for Parallel Systems","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eExtending beyond the classic approach by focusing on more advanced, accurate, and realistic models, this book investigates the concepts and techniques of task scheduling by developing a consistent and unifying theoretical framework.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\"The theoretical framework presented and the realistic parallel computing issues make reading this book worthwhile.\" (\u003ci\u003eComputing Reviews.com\u003c\/i\u003e, October 1, 2007)\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003ePreface xi\u003c\/p\u003e \u003cp\u003eAcknowledgments xii\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1. Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Overview 1\u003c\/p\u003e \u003cp\u003e1.2 Organization 5\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2. Parallel Systems and Programming 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Parallel Architectures 7\u003c\/p\u003e \u003cp\u003e2.1.1 Flynn’s Taxonomy 7\u003c\/p\u003e \u003cp\u003e2.1.2 Memory Architectures 9\u003c\/p\u003e \u003cp\u003e2.1.3 Programming Paradigms and Models 11\u003c\/p\u003e \u003cp\u003e2.2 Communication Networks 13\u003c\/p\u003e \u003cp\u003e2.2.1 Static Networks 13\u003c\/p\u003e \u003cp\u003e2.2.2 Dynamic Networks 18\u003c\/p\u003e \u003cp\u003e2.3 Parallelization 22\u003c\/p\u003e \u003cp\u003e2.4 Subtask Decomposition 24\u003c\/p\u003e \u003cp\u003e2.4.1 Concurrency and Granularity 24\u003c\/p\u003e \u003cp\u003e2.4.2 Decomposition Techniques 25\u003c\/p\u003e \u003cp\u003e2.4.3 Computation Type and Program Formulation 27\u003c\/p\u003e \u003cp\u003e2.4.4 Parallelization Techniques 28\u003c\/p\u003e \u003cp\u003e2.4.5 Target Parallel System 28\u003c\/p\u003e \u003cp\u003e2.5 Dependence Analysis 29\u003c\/p\u003e \u003cp\u003e2.5.1 Data Dependence 29\u003c\/p\u003e \u003cp\u003e2.5.2 Data Dependence in Loops 32\u003c\/p\u003e \u003cp\u003e2.5.3 Control Dependence 35\u003c\/p\u003e \u003cp\u003e2.6 Concluding Remarks 36\u003c\/p\u003e \u003cp\u003e2.7 Exercises 37\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3. Graph Representations 40\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Basic Graph Concepts 40\u003c\/p\u003e \u003cp\u003e3.1.1 Computer Representation of Graphs 43\u003c\/p\u003e \u003cp\u003e3.1.2 Elementary Graph Algorithms 46\u003c\/p\u003e \u003cp\u003e3.2 Graph as a Program Model 49\u003c\/p\u003e \u003cp\u003e3.2.1 Computation and Communication Costs 50\u003c\/p\u003e \u003cp\u003e3.2.2 Comparison Criteria 50\u003c\/p\u003e \u003cp\u003e3.3 Dependence Graph (DG) 51\u003c\/p\u003e \u003cp\u003e3.3.1 Iteration Dependence Graph 53\u003c\/p\u003e \u003cp\u003e3.3.2 Summary 55\u003c\/p\u003e \u003cp\u003e3.4 Flow Graph (FG) 56\u003c\/p\u003e \u003cp\u003e3.4.1 Data-Driven Execution Model 60\u003c\/p\u003e \u003cp\u003e3.4.2 Summary 61\u003c\/p\u003e \u003cp\u003e3.5 Task Graph (DAG) 62\u003c\/p\u003e \u003cp\u003e3.5.1 Graph Transformations and Conversions 64\u003c\/p\u003e \u003cp\u003e3.5.2 Motivations and Limitations 68\u003c\/p\u003e \u003cp\u003e3.5.3 Summary 69\u003c\/p\u003e \u003cp\u003e3.6 Concluding Remarks 69\u003c\/p\u003e \u003cp\u003e3.7 Exercises 70\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4. Task Scheduling 74\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Fundamentals 74\u003c\/p\u003e \u003cp\u003e4.2 With Communication Costs 76\u003c\/p\u003e \u003cp\u003e4.2.1 Schedule Example 81\u003c\/p\u003e \u003cp\u003e4.2.2 Scheduling Complexity 82\u003c\/p\u003e \u003cp\u003e4.3 Without Communication Costs 86\u003c\/p\u003e \u003cp\u003e4.3.1 Schedule Example 87\u003c\/p\u003e \u003cp\u003e4.3.2 Scheduling Complexity 88\u003c\/p\u003e \u003cp\u003e4.4 Task Graph Properties 92\u003c\/p\u003e \u003cp\u003e4.4.1 Critical Path 93\u003c\/p\u003e \u003cp\u003e4.4.2 Node Levels 95\u003c\/p\u003e \u003cp\u003e4.4.3 Granularity 101\u003c\/p\u003e \u003cp\u003e4.5 Concluding Remarks 105\u003c\/p\u003e \u003cp\u003e4.6 Exercises 105\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5. Fundamental Heuristics 108\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 List Scheduling 108\u003c\/p\u003e \u003cp\u003e5.1.1 Start Time Minimization 111\u003c\/p\u003e \u003cp\u003e5.1.2 With Dynamic Priorities 114\u003c\/p\u003e \u003cp\u003e5.1.3 Node Priorities 115\u003c\/p\u003e \u003cp\u003e5.2 Scheduling with Given Processor Allocation 118\u003c\/p\u003e \u003cp\u003e5.2.1 Phase Two 119\u003c\/p\u003e \u003cp\u003e5.3 Clustering 119\u003c\/p\u003e \u003cp\u003e5.3.1 Clustering Algorithms 121\u003c\/p\u003e \u003cp\u003e5.3.2 Linear Clustering 124\u003c\/p\u003e \u003cp\u003e5.3.3 Single Edge Clustering 128\u003c\/p\u003e \u003cp\u003e5.3.4 List Scheduling as Clustering 135\u003c\/p\u003e \u003cp\u003e5.3.5 Other Algorithms 138\u003c\/p\u003e \u003cp\u003e5.4 From Clustering to Scheduling 139\u003c\/p\u003e \u003cp\u003e5.4.1 Assigning Clusters to Processors 139\u003c\/p\u003e \u003cp\u003e5.4.2 Scheduling on Processors 141\u003c\/p\u003e \u003cp\u003e5.5 Concluding Remarks 141\u003c\/p\u003e \u003cp\u003e5.6 Exercises 142\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6. Advanced Task Scheduling 145\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Insertion Technique 145\u003c\/p\u003e \u003cp\u003e6.1.1 List Scheduling with Node Insertion 148\u003c\/p\u003e \u003cp\u003e6.2 Node Duplication 150\u003c\/p\u003e \u003cp\u003e6.2.1 Node Duplication Heuristics 153\u003c\/p\u003e \u003cp\u003e6.3 Heterogeneous Processors 154\u003c\/p\u003e \u003cp\u003e6.3.1 Scheduling 157\u003c\/p\u003e \u003cp\u003e6.4 Complexity Results 158\u003c\/p\u003e \u003cp\u003e6.4.1 \u003ci\u003eα\u003c\/i\u003e|\u003ci\u003eβ\u003c\/i\u003e|\u003ci\u003eγ\u003c\/i\u003e Classification 158\u003c\/p\u003e \u003cp\u003e6.4.2 Without Communication Costs 165\u003c\/p\u003e \u003cp\u003e6.4.3 With Communication Costs 165\u003c\/p\u003e \u003cp\u003e6.4.4 With Node Duplication 168\u003c\/p\u003e \u003cp\u003e6.4.5 Heterogeneous Processors 170\u003c\/p\u003e \u003cp\u003e6.5 Genetic Algorithms 170\u003c\/p\u003e \u003cp\u003e6.5.1 Basics 171\u003c\/p\u003e \u003cp\u003e6.5.2 Chromosomes 172\u003c\/p\u003e \u003cp\u003e6.5.3 Reproduction 177\u003c\/p\u003e \u003cp\u003e6.5.4 Selection, Complexity, and Flexibility 180\u003c\/p\u003e \u003cp\u003e6.6 Concluding Remarks 182\u003c\/p\u003e \u003cp\u003e6.7 Exercises 183\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7. Communication Contention in Scheduling 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Contention Awareness 188\u003c\/p\u003e \u003cp\u003e7.1.1 End-Point Contention 189\u003c\/p\u003e \u003cp\u003e7.1.2 Network Contention 190\u003c\/p\u003e \u003cp\u003e7.1.3 Integrating End-Point and Network Contention 192\u003c\/p\u003e \u003cp\u003e7.2 Network Model 192\u003c\/p\u003e \u003cp\u003e7.2.1 Topology Graph 192\u003c\/p\u003e \u003cp\u003e7.2.2 Routing 198\u003c\/p\u003e \u003cp\u003e7.2.3 Scheduling Network Model 202\u003c\/p\u003e \u003cp\u003e7.3 Edge Scheduling 203\u003c\/p\u003e \u003cp\u003e7.3.1 Scheduling Edge on Route 204\u003c\/p\u003e \u003cp\u003e7.3.2 The Edge Scheduling 208\u003c\/p\u003e \u003cp\u003e7.4 Contention Aware Scheduling 209\u003c\/p\u003e \u003cp\u003e7.4.1 Basics 209\u003c\/p\u003e \u003cp\u003e7.4.2 NP-Completeness 211\u003c\/p\u003e \u003cp\u003e7.5 Heuristics 216\u003c\/p\u003e \u003cp\u003e7.5.1 List Scheduling 216\u003c\/p\u003e \u003cp\u003e7.5.2 Priority Schemes—Task Graph Properties 219\u003c\/p\u003e \u003cp\u003e7.5.3 Clustering 220\u003c\/p\u003e \u003cp\u003e7.5.4 Experimental Results 221\u003c\/p\u003e \u003cp\u003e7.6 Concluding Remarks 223\u003c\/p\u003e \u003cp\u003e7.7 Exercises 224\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8. Processor Involvement in Communication 228\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Processor Involvement—Types and Characteristics 229\u003c\/p\u003e \u003cp\u003e8.1.1 Involvement Types 229\u003c\/p\u003e \u003cp\u003e8.1.2 Involvement Characteristics 232\u003c\/p\u003e \u003cp\u003e8.1.3 Relation to LogP and Its Variants 236\u003c\/p\u003e \u003cp\u003e8.2 Involvement Scheduling 238\u003c\/p\u003e \u003cp\u003e8.2.1 Scheduling Edges on the Processors 240\u003c\/p\u003e \u003cp\u003e8.2.2 Node and Edge Scheduling 246\u003c\/p\u003e \u003cp\u003e8.2.3 Task Graph 247\u003c\/p\u003e \u003cp\u003e8.2.4 NP-Completeness 248\u003c\/p\u003e \u003cp\u003e8.3 Algorithmic Approaches 250\u003c\/p\u003e \u003cp\u003e8.3.1 Direct Scheduling 251\u003c\/p\u003e \u003cp\u003e8.3.2 Scheduling with Given Processor Allocation 254\u003c\/p\u003e \u003cp\u003e8.4 Heuristics 257\u003c\/p\u003e \u003cp\u003e8.4.1 List Scheduling 257\u003c\/p\u003e \u003cp\u003e8.4.2 Two-Phase Heuristics 261\u003c\/p\u003e \u003cp\u003e8.4.3 Experimental Results 263\u003c\/p\u003e \u003cp\u003e8.5 Concluding Remarks 264\u003c\/p\u003e \u003cp\u003e8.6 Exercises 265\u003c\/p\u003e \u003cp\u003eBibliography 269\u003c\/p\u003e \u003cp\u003eAuthor Index 281\u003c\/p\u003e \u003cp\u003eSubject Index 285\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":49402664223063,"sku":"9780471735762","price":95.36,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780471735762.jpg?v=1730481162","url":"https:\/\/bookcurl.com\/products\/task-scheduling-for-parallel-systems-9780471735762","provider":"Book Curl","version":"1.0","type":"link"}