Languages, Compilers and Run-time Environments for Distributed Memory Machines

Languages, Compilers and Run-time Environments for Distributed Memory Machines

von: J. Saltz, P. Mehrotra

Elsevier Reference Monographs, 2014

ISBN: 9781483295381 , 320 Seiten

Format: PDF

Kopierschutz: DRM

Windows PC,Mac OSX Apple iPad, Android Tablet PC's

Preis: 65,39 EUR

Mehr zum Inhalt

Languages, Compilers and Run-time Environments for Distributed Memory Machines


 

Front Cover

1

Languages, Compilers and Run-Time Environments for Distributed Memory Machines

4

Copyright Page

5

Table of Contents

8

PREFACE

6

Chapter 1. SUPERB: Experiences and Future Research

10

Abstract

10

1 Introduction

10

2 Program Splitting

12

3 Data Partitioning

12

4 Interprocedural Partitioning Analysis

13

5 Automatic Insertion of Masking and Communication

14

6 Optimization

15

7 System Structure

17

8 Current and Future Research

19

9 Conclusion

22

References

23

Chapter 2. Scientific Programming Languages for Distributed Memory Multiprocessors : Paradigms and Research Issues

26

Abstract

26

1. Introduction

26

2. An Emerging Paradigm for Distributed Parallel Languages

27

3. An Example of the Paradigm : The DINO Language

29

4. Research Issues Regarding Virtual Parallel Computers

33

5. Research Issues Regarding Distributed Data Structures

34

6. Research Issues Regarding Models of Parallel Computation

35

7. Additional Research Issues Regarding Communication Features

42

8. Research Issues Regarding Support for Complex Parallel Programs

43

9. References

43

Chapter 3. VIENNA FORTRAN - A FORTRAN LANGUAGE EXTENSION FOR DISTRIBUTED MEMORY MULTIPROCESSORS*

48

Abstract

48

1 Introduction

48

2 The Basic Features of Vienna Fortran

49

3 Examples

59

4 Related Work

67

5 Conclusions

69

Acknowledgments

69

References

69

Chapter 4. Compiler Parallelization of SIMPLE for a Distributed Memory Machine

72

Abstract

72

1 Introduction

72

2 What is SIMPLE?

74

3 Machine Model

75

4 Data Distribution

77

5 Code Generation

77

6 Results and Analysis

83

7 Summary

86

Acknowledgements

87

References

87

Chapter 5. Applications of the "Phase Abstractions" for Portable and Scalable Parallel Programming

88

Abstract

88

1 Introduction

88

2 Preliminaries

89

3 Jacobi Iteration Example

92

4 Specification of the Processes, Level X

92

5 Global Data Declaration

96

6 Phase Definitions, Y Level

97

7 Main Program Body, Æ Level

103

8 Commentary on the Program and Abstractions

105

9 Conclusions

109

10 Acknowledgments

109

References

110

Chapter 6. Nicke - C Extensions for Programming on Distributed-Memory Machines

112

Abstract

112

1 Introduction

112

2 Basic Constructs

115

3 Shared Variables

118

4 Impiementation

121

5 Conclusion

125

References

126

Chapter 7. A Static Performance Estimator in the Fortran D Programming System

128

Abstract

128

1. INTRODUCTION

128

2. DISTRIBUTED MEMORY PROGRAMMING MODEL

133

3. CHOOSING THE DATA DECOMPOSITION SCHEME

134

4. AN EXAMPLE

136

5. THE TRAINING SET METHOD OF PERFORMANCE ESTIMATION

138

6. THE PERFORMANCE ESTIMATION ALGORITHM

142

7. A PROTOTYPE IMPLEMENTATION

142

8. CONCLUSION AND FUTURE WORK

144

References

146

Chapter 8. Compiler Support for Machine-Independent Parallel Programming in Fortran D

148

Abstract

148

1 Introduction

148

2 Fortran D

152

3 Basic Compilation Strategy

156

4 Compilation of Whole Programs

164

5 Validation

173

6 Relationship to Other Research

174

7 Conclusions and Future Work

179

8 Acknowledgements

180

References

180

Chapter 9. PANDORE: A System to Manage Data Distribution

186

Abstract

186

1. INTRODUCTION

186

2. OVERVIEW OF THE PANDORE SYSTEM

187

3. THE PANDORE LANGUAGE

187

4. FURTHER WORK

192

References

193

Chapter 10. DISTRIBUTED MEMORY COMPILER METHODS FOR IRREGULAR PROBLEMS - DATA COPY REUSE AND RUNTIME PARTITIONING1

194

Abstract

194

1 Introduction

194

2 Overview

196

3 The PARTI Primitives

199

4 PARTI Compiler

213

5 Experimental Results

218

6 Conclusions

221

Acknowledgements

224

References

224

Chapter 11. Scheduling EPL Programs for Parallel Processing

230

1 Introduction

230

2 Basic Scheduling in EPL

232

3 Case Study: Horizontal Partitioning for the CM

234

4 Alignment Problem

236

5 Optimum Direction of Computation

240

6 Conclusion

244

References

245

Chapter 12. Parallelizing Programs for Distributed-Memory Machines using the Crystal System

246

Abstract

246

1 Introduction

246

2 Summary of Our Position

247

3 The Crystal Model and its Language and Metalanguage Features

248

4 The Crystal Compiler

252

5 Performance Results

254

6 Crystalizing FORTRAN

258

References

258

A Appendix

261

Chapter 13. Iteration Space Tiling for Distributed Memory Machines

264

Abstract

264

1 Introduction

264

2 Background

265

3 Issues in tiling of iteration spaces

267

4 Extreme vectors and deadlock free tiling

268

5 Computing the extreme vectors

269

6 Choosing deadlock-free tiles

270

7 Tile Space Graph (TSG)

273

8 Optimizing tile size

275

9 Discussion

277

References

277

Chapter 14. Systolic Loops

280

Abstract

280

1. SUMMARY

280

2. TARGET PROCESSOR ARCHITECTURE

281

3. EFFICIENT PARALLEL LOOPS

282

4. UNIFORM RECURRENCE EQUATIONS AND SYSTOLIC ARRAYS

285

5. SYSTOLIC ARRAYS, WAVEFRONTS AND LOOP SKEWING

287

6. SYSTOLIC LOOP PROCESSING

289

7. OTHER WORK

291

References

291

Chapter 15. An Optimizing C* Compiler for a Hypercube Multicomputer

294

Abstract

294

1 Introduction

294

2 The C* Programming Language

295

3 Design of the C* Compiler

298

4 The Optimizer

300

5 Supporting Program Analysis

302

6 Evaluating the Optimizer

303

7 Summary

306

References

306

Chapter 16. The Paragon Programming Paradigm and Distributed Memory Multicomputers

308

Abstract

308

1 Introduction

308

2 Programming in Paragon

310

3 Paragon Primitive Implementation

317

4 Conclusion

323

References

323