具体描述
This book offers a detailed and self-contained presentation for studyi ng loop transformations, the detection of parallel loops, and how to u se them to detect parallelism in a specific program. It provides caref ul explanation and exposition for all parallel-loop algorithms that ha ve been designed recently in a framework of scheduling algorithms on c yclic graphs, primarily task graph scheduling and loop nest scheduling perspectives. The book is an essential text/reference for the latest developments in automatic parallelization methods used for scheduling, compilers, and program transformations. Professionals, researchers an d graduates in computer science, software engineering, and computer en gineering will find it an authoritative resource and reference. It is also suitable for self-study purposes by professionals and practitione rs.
作者简介
目录信息
Preface
Introduction
Part I Unidimensional Problems
1 Scheduling DAGs without Communications
1.1 Introduction .
1.2 Where Do Task Graphs Come From?
1.3 Scheduling DAGs
1.4 Solving Pb(00) . . . . . . . . . . . .
1.5 Solving Pb(P) .
1.5.1 NP-Completeness of Pb(p)
1.5.2 List Heuristics . . . . . . . .
1.5.3 Implementing a List Schedule.
1.5.4 Critical Path Scheduling .
1.6 Conclusion........
1.7 Bibliographical Notes.
1.8 Exercises.........
2 Scheduling DAGs with Communications
2.1 Introduction .
2.2 A Model with Communication Costs . . . . .
2.3 NP-Completeness of Pb(00) . . . . .
2.4 A Guaranteed Heuristic for Pb(00) . .
2.4.1 Favorite Successors .
2.4.2 Hanen and Munier's Heuristic
2.5 List Heuristics for Pb(p) .
2.5.1 Naive Critical Path .
2.5.2 Modified Critical Path . . . . . . .
2.5.3 Hints for Comparison . . . . . . . . . .
2.6 Two-Step Clustering Heuristics . . . . . . . . . . . . . . . . .
2.6.1 Heuristics for the Clustering Phase . . . . . . . . . . .
2.6.2 From Clustering to Scheduling with Resources.
2.6.3 Clustering Epilogue . . . . ..
2.7 Linear Clustering . . . . .....
2.8 Conclusion.......
2.9 Bibliographical Notes.
2.10 Exercises . . . .
3 Cyclic Scheduling
3.1 Introduction .
3.2 Problem Formulation .
3.2.1 An Example ..
3.2.2 Average Cycle Time . . . . .
3.2.3 Playing with the Example . . . . .
3.2.4 Problem Formulation: Summary ...
3.2.5 Lower Bounds for the Average Cycle Time
3.3 Solving BCS(00) . . . . . . . . . . . . . . . . . .
3.3.1 Scheduling Potential Graphs .
3.3.2 The Bellman-Ford Algorithm .
3.3.3 Optimal Schedule for Unlimited Resources
3.4 Solving BCS(p) .
3.4.1 NP-Completeness of BCS(p) .
3.4.2 Loop Compaction. . . . . . . . .
3.4.3 Loop Shifting . . . . . . . . . . . . . . . . .
3.4.4 The Leiserson-Saxe Retiming Algorithm. . . . .
3.4.5 Minimizing the Number of Constraints in A(Gr ) .••
3.5 Bibliographical Notes ....
3.6 Exercises..............................
Part II Multidimensional Problems
4 Systems of Uniform Recurrence Equations
4.1 Introduction .
4.2 Computability of Uniform Recurrence Equations .
4.2.1 Definition of a SURE . . . . . . . . . . . . .
4.2.2 Computability: Definition and Properties .
4.3 URE and Linear Scheduling . . . . . . . . . . . . . . . . 107
4.3.1 Introduction..................... 107
4.3.2 Construction of Dependence Paths . . . . . . . . 109
4.3.3 Computability Criterion for a Single Equation . 113
4.3.4 Optimal Linear Schedules. . . . . . . . . . . . 115
4.3.5 Conclusion 123
4.4 SURE and Multidimensional Scheduling. . . . . . . . 124
4.4.1 Introduction............... 124
4.4.2 Detecting Zero-Weight Cycles. . . . . . . . . . 126
4.4.3 Construction and Properties of G' .. . . . . . 134
4.4.4 Optimal Multidimensional Schedule for a SURE . 137
4.4.5 Conclusion 142
4.5 Bibliographical Notes. . . . . . . . . . . . . . . . . . . . . .. 143
4.6 Exercises . . . . . . . . . . . . . . . . . . . . . 144
4.6.1 Computability.............. 144
4.6.2 URE and Linear Scheduling. . . . . . 144
4.6.3 SURE and Multidimensional Scheduling 145
5 Parallelism Detection in Nested Loops 149
5.1 Introduction....................... 149
5.2 Dependence Analysis and Dependence Abstraction 152
5.2.1 Nested Loops and Dependence Relations . . 152
5.2.2 Dependence Analysis 157
5.2.3 Approximations of Distance Sets . . . 162
5.3 Allen and Kennedy's Algorithm .. 170
5.3.1 Loop Distribution. . . . . . . 171
5.3.2 Basic Algorithm. . . . . . . . 172
5.4 Unimodular Transformations . . . . 176
5.4.1 Definition and Validity. . . . . . . . . 177
5.4.2 The Hyperplane Method (Uniform Loop Nests) 180
5.4.3 The Hyperplane Method (Direction Vectors) . . 183
5.4.4 Wolf and Lam's Algorithm . . . . . . . 185
5.5 Darte and Vivien's Algorithm . . . . . . . . . . . .. 193
5.5.1 Motivation........... . . . . . . . .. 193
5.5.2 Uniformization...... . . . .. 196
5.5.3 Computability of a PRDG . . . . . . . . . . .. 201
5.5.4 Scheduling a PRDG . . . .. 206
5.5.5 Extension to Medium-Grain Parallelization . 214
5.5.6 Link with ALLEN-KENNEDY and WOLF-LAM 215
5.6 Feautrier's Algorithm. . . . . . . . . . . . . . . . . . . 216
5.6.1 Monodimensional Algorithm. . . . . . . . . 217
5.6.2 Extension to Multidimensional Scheduling . . 222
5.6.3 Extension to Other Dependence Representations .
5.6.4 Comparison with DARTE-VIVIEN .
5.7 Optimality .
5.7.1 The Difficulty of Defining an "Optimality" Notion ..
5.7.2 A Formal Definition . . . . . . . . .
5.7.3 Optimality of ALLEN-KENNEDY .
5.7.4 Optimality of WOLF-LAM. . . .
5.7.5 Optimality of DARTE-VIVIEN
5.7.6 Suboptimality of FEAUTRIER
5.7.7 Conclusion ..
Bibliographical Notes.
· · · · · · (收起)
读后感
对2000年以前的论文做了一个梳理,把主要成果简明扼要的列举出来的同时还勾勒出来了发展的路线,还加入了作者主观评价。概念的逐步推进以及每个理论的推导都很自然的承上启下,也因此比原始论文更容易理解,也更容易让读者建立全局观念。复杂性分析很严谨也很清楚,对实际...
对2000年以前的论文做了一个梳理,把主要成果简明扼要的列举出来的同时还勾勒出来了发展的路线,还加入了作者主观评价。概念的逐步推进以及每个理论的推导都很自然的承上启下,也因此比原始论文更容易理解,也更容易让读者建立全局观念。复杂性分析很严谨也很清楚,对实际...
对2000年以前的论文做了一个梳理,把主要成果简明扼要的列举出来的同时还勾勒出来了发展的路线,还加入了作者主观评价。概念的逐步推进以及每个理论的推导都很自然的承上启下,也因此比原始论文更容易理解,也更容易让读者建立全局观念。复杂性分析很严谨也很清楚,对实际...
对2000年以前的论文做了一个梳理,把主要成果简明扼要的列举出来的同时还勾勒出来了发展的路线,还加入了作者主观评价。概念的逐步推进以及每个理论的推导都很自然的承上启下,也因此比原始论文更容易理解,也更容易让读者建立全局观念。复杂性分析很严谨也很清楚,对实际...
对2000年以前的论文做了一个梳理,把主要成果简明扼要的列举出来的同时还勾勒出来了发展的路线,还加入了作者主观评价。概念的逐步推进以及每个理论的推导都很自然的承上启下,也因此比原始论文更容易理解,也更容易让读者建立全局观念。复杂性分析很严谨也很清楚,对实际...
用户评价
深入到后半部分,作者开始探讨一些前沿且具有挑战性的议题,这部分内容的深度和广度,着实让我感到震撼。它没有停留在教科书式的标准流程上,而是大胆地触及了当前研究领域中尚未完全解决的开放性问题,并对未来可能的研究方向进行了富有洞察力的展望。我尤其喜欢作者在讨论这些尖端话题时所保持的那种批判性思维——它不盲目推崇最新的模型,而是会审慎地评估其计算复杂度和实际部署的可行性,这种务实的态度在学术著作中非常宝贵。阅读这些章节,我感觉自己仿佛参与了一场高水平的学术研讨会,而不是被动地接收信息。作者在分析限制条件和不确定性时所展现出的细致入微,让我深刻认识到理论模型与真实世界之间的鸿沟,也激发了我去探索更具鲁棒性的解决方案的兴趣。
这本书的装帧设计确实是相当吸引人的,那种沉稳的深蓝色调配合着烫金的书名和作者信息,在书架上显得格外有分量感。我拿到手的时候,首先被其纸张的质感所打动,那种略带粗粝感的哑光纸张,使得长时间阅读也不会感到眼睛疲劳,这对于一本专业性较强的技术书籍来说,无疑是一个加分项。封面上的排版布局简洁而又不失细节,没有太多花哨的图案干扰,完全聚焦于内容的专业性传达,让人一眼就能感受到其中蕴含的知识深度。侧边的书脊设计也很有匠心,即便是紧密排列的书籍中,也能轻松找到它,显示出出版方在细节处理上的用心。整体而言,从视觉和触觉上来说,这是一本让人心甘情愿想要收藏并时常翻阅的作品,单从物理形态上就传递出一种严谨与权威的气息,让人对内页的知识体系充满了期待,仿佛在预示着一场深刻的思想洗礼即将开始。
这本书的排版和索引系统构建得极其友好,这对于一本内容密集的专业参考书而言,是确保其“工具书”价值的关键。页边距的合理留白,使得读者在阅读过程中可以方便地进行批注和标记,而不会显得拥挤不堪。更值得称赞的是其详尽的术语表和交叉引用系统,当你遇到一个不熟悉的专有名词时,可以直接通过索引快速定位到它首次被定义或深入讨论的章节,这极大地节省了查找和回顾的时间。此外,书末提供的参考书目列表,本身就是一个精心筛选过的知识地图,涵盖了从经典文献到最新会议论文的精华,为希望进一步深耕的读者指明了清晰的进阶路径。总而言之,这本书不仅仅是一本知识的载体,更是一个功能完善、易于检索的知识工作台,体现了作者对读者学习体验的深切关怀。
当我真正翻开内页,开始接触其文字内容时,我立刻意识到这不是那种浮于表面的科普读物,而是真正深入到核心算法与底层逻辑的硬核探讨。作者在引言部分便清晰地勾勒出了整个知识体系的宏大蓝图,这种结构化的梳理方式,极大地帮助初学者快速定位到自身的知识盲区。我特别欣赏它在处理复杂概念时所采取的“渐进式披露”策略,从最基础的模型定义出发,逐步引入高级的优化手段,每一步都配有详尽的数学推导和清晰的逻辑链条,绝不含糊带过。这种严谨的态度,使得即便是面对那些在其他资料中令人望而却步的证明过程,也能在作者的引导下逐步理解其内在的精妙之处。阅读过程中,我发现它大量引用了经典的研究成果作为基石,并巧妙地穿插了作者本人的独到见解,使得内容既有学术的厚重感,又不失时代的前沿性,让人感觉作者真正掌握了学科的精髓,而不是简单地复述他人观点。
这本书的例证和案例分析部分,可以说是我在所有同类书籍中见过的最精彩的部分之一。它不仅仅是提供了几行伪代码或抽象的场景描述,而是真正构建了多个具有现实意义的复杂应用场景,并全程演示如何运用书中介绍的方法论去解决实际中的瓶颈。例如,它对某一特定资源分配问题的剖析,从最初的贪婪算法的局限性讲起,到如何通过引入动态规划的思想来提升效率,每一步的决策点都解释得淋漓尽致,读者可以清晰地看到不同方法之间的性能差异和适用边界。更难得的是,作者在展示这些案例时,注重培养读者的“问题诊断”能力,教导我们如何识别出当前场景的内在限制,而非仅仅是套用已有的公式。这种注重实践指导而非纯粹理论灌输的写作风格,让学习过程充满了“我能行”的自信感,极大地增强了知识的转化率。