Parallel programming: techniques and applications using networked workstations and parallel computers
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ
Prentice Hall
2005
|
Ausgabe: | 2. ed. |
Schriftenreihe: | An Alan R. Apt book
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 467 S. Ill., graph. Darst. |
ISBN: | 0131918656 0131405632 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV019998229 | ||
003 | DE-604 | ||
005 | 20090211 | ||
007 | t | ||
008 | 050815s2005 ad|| |||| 00||| eng d | ||
020 | |a 0131918656 |9 0-13-191865-6 | ||
020 | |a 0131405632 |9 0-13-140563-2 | ||
035 | |a (OCoLC)255459545 | ||
035 | |a (DE-599)BVBBV019998229 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-1051 |a DE-92 |a DE-29T |a DE-634 |a DE-83 | ||
050 | 0 | |a QA76.642 | |
082 | 0 | |a 005.275 | |
084 | |a ST 151 |0 (DE-625)143595: |2 rvk | ||
084 | |a ST 200 |0 (DE-625)143611: |2 rvk | ||
084 | |a DAT 416f |2 stub | ||
100 | 1 | |a Wilkinson, Barry |e Verfasser |4 aut | |
245 | 1 | 0 | |a Parallel programming |b techniques and applications using networked workstations and parallel computers |c Barry Wilkinson ; Michael Allen |
250 | |a 2. ed. | ||
264 | 1 | |a Upper Saddle River, NJ |b Prentice Hall |c 2005 | |
300 | |a XX, 467 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a An Alan R. Apt book | |
650 | 4 | |a Parallelverarbeitung | |
650 | 0 | 7 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Allen, Michael |e Sonstige |4 oth | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013320008&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-013320008 |
Datensatz im Suchindex
_version_ | 1804133547950211072 |
---|---|
adam_text | Titel: Parallel programming
Autor: Wilkinson, Barry
Jahr: 2005
Contents
Preface v
About the Authors x¡
PARTI BASIC TECHNIQUES Í
CHAPTER 1 PARALLEL COMPUTERS 3
1.1 The Demand for Computational Speed 3
1.2 Potential for Increased Computational Speed 6
Speedup Factor 6
What Is the Maximum Speedup? 8
Message-Passing Computations 13
1.3 Types of Parallel Computers 13
Shared Memory Multiprocessor System 14
Message-Passing Multicomputer 16
Distributed Shared Memory 24
M1MD and SIMD Classifications 25
1.4 Cluster Computing 26
Interconnected Computers as a Computing Platform 26
Cluster Configurations 32
Setting Up a Dedicated Beowulf Style Cluster 36
1.5 Summary 38
Further Reading 38
xiii
Bibliography 39
Problems 41
CHAPTER 2 MESSAGE-PASSING COMPUTING 42
2.1 Basics of Message-Passing Programming 42
Programming Options 42
Process Creation 43
Message-Passing Routines 46
2.2 Using a Cluster of Computers 51
Software Tools 51
MPI 52
Pseudocode Constructs 60
2.3 Evaluating Parallel Programs 62
Equations for Parallel Execution Time 62
Time Complexity 65
Comments on Asymptotic Analysis 68
Communication Time of Broadcast/Gather 69
2.4 Debugging and Evaluating Parallel Programs Empirically 70
Low-Level Debugging 70
Visualization Tools 71
Debugging Strategies 72
Evaluating Programs 72
Comments on Optimizing Parallel Code 74
2.5 Summary 75
Further Reading 75
Bibliography 76
Problems 77
CHAPTER 3 EMBARRASSINGLY PARALLEL COMPUTATIONS 79
3.1 Ideal Parallel Computation 79
3.2 Embarrassingly Parallel Examples 81
Geometrical Transformations of Images 81
Mandelbrot Set 86
Monte Carlo Methods 93
3.3 Summary 98
Further Reading 99
Bibliography 99
Problems 100
Contents
CHAPTER 4 PARTITIONING AND DIVIDE-AND-CONQUER
STRATEGIES W6
4.1 Partitioning 106
Partitioning Strategies 106
Divide and Conquer 111
M-ary Divide and Conquer 116
4.2 Partitioning and Divide-and-Conquer Examples 117
Sorting Using Bucket Sort 117
Numerical Integration 122
N-Body Problem 126
4.3 Summary 131
Further Reading 131
Bibliography 132
Problems 133
CHAPTERS PIPELINED COMPUTATIONS 140
5.1 Pipeline Technique 140
5.2 Computing Platform for Pipelined Applications 144
5.3 Pipeline Program Examples 145
Adding Numbers 145
Sorting Numbers 148
Prime Number Generation 152
Solving a System of Linear Equations — Special Case 154
5.4 Summary 157
Further Reading 158
Bibliography 158
Problems 158
CHAPTER 6 SYNCHRONOUS COMPUTATIONS 163
6.1 Synchronization 163
Barrier 163
Counter Implementation 165
Tree Implementation 167
Butterfly Barrier 167
Local Synchronization 169
Deadlock 169
Contents xv
6.2 Synchronized Computations 170
Data Parallel Computations 170
Synchronous Iteration 173
6.3 Synchronous Iteration Program Examples 174
Solving a System of Linear Equations by Iteration 174
Heat-Distribution Problem 180
Cellular Automata 190
6.4 Partially Synchronous Methods 191
6.5 Summary 193
Further Reading 193
Bibliography 193
Problems 194
CHAPTER 7 LOAD BALANCING AND TERMINA TION DETECTION 201
7.1 Load Balancing 201
7.2 Dynamic Load Balancing 203
Centralized Dynamic Load Balancing 204
Decentralized Dynamic Load Balancing 205
Load Balancing Using a Line Structure 207
7.3 Distributed Termination Detection Algorithms 210
Termination Conditions 210
Using Acknowledgment Messages 211
Ring Termination Algorithms 212
Fixed Energy Distributed Termination Algorithm 214
7.4 Program Example 214
Shortest-Path Problem 214
Graph Representation 215
Searching a Graph 217
7.5 Summary 223
Further Reading 223
Bibliography 224
Problems 225
CHAPTER 8 PROGRAMMING WITH SHARED MEMORY 23°
8.1 Shared Memory Multiprocessors 230
8.2 Constructs for Specifying Parallelism 232
Creating Concurrent Processes 232
Threads 234
Contents
8.3 Sharing Data 239
Creating Shared Data 239
Accessing Shared Data 239
8.4 Parallel Programming Languages and Constructs 247
Languages 247
Language Constructs 248
Dependency Analysis 250
8.5 OpenMP 253
8.6 Performance Issues 258
Shared Data Access 258
Shared Memory Synchronization 260
Sequential Consistency 262
8.7 Program Examples 265
UNIX Processes 265
Pthreads Example 268
Java Example 270
8.8 Summary 271
Further Reading 272
Bibliography 272
Problems 273
CHAPTER 9 DISTRIBUTED SHARED MEMORY SYSTEMS
AND PROGRAMMING 279
9.1 Distributed Shared Memory 279
9.2 Implementing Distributed Shared Memory 281
Software DSM Systems 281
Hardware DSM Implementation 282
Managing Shared Data 283
Multiple Reader/Single Writer Policy in a Page-Based System 284
9.3 Achieving Consistent Memory in a DSM System 284
9.4 Distributed Shared Memory Programming Primitives 286
Process Creation 286
Shared Data Creation 287
Shared Data Access 287
Synchronization Accesses 288
Features to Improve Performance 288
9.5 Distributed Shared Memory Programming 290
9.6 Implementing a Simple DSM system 291
User Interface Using Classes and Methods 291
Basic Shared-Variable Implementation 292
Overlapping Data Groups 295
Contents xvii
9.7 Summary 297
Further Reading 297
Bibliography 297
Problems 298
PART II ALGORITHMS AND APPLICATIONS 301
CHAPTER 10 SORTING ALGORITHMS 303
10.1 General 303
Sorting 303
Potential Speedup 304
10.2 Compare-and-Exchange Sorting Algorithms 304
Compare and Exchange 304
Bubble Sort and Odd-Even Transposition Sort 307
Mergesort 311
Quicksort 313
Odd-Even Mergesort 316
Bitonic Mergesort 317
10.3 Sorting on Specific Networks 320
Two-Dimensional Sorting 321
Quicksort on a Hypercube 323
10.4 Other Sorting Algorithms 327
Rank Sort 327
Counting Sort 330
Radix Sort 331
Sample Sort 333
Implementing Sorting Algorithms on Clusters 333
10.5 Summary 335
Further Reading 335
Bibliography 336
Problems 337
CHAPTER 11 NUMERICAL ALGORITHMS 340
11.1 Matrices—A Review 340
Matrix Addition 340
Matrix Multiplication 341
Matrix-Vector Multiplication 341
Relationship of Matrices to Linear Equations 342
Contents
11.2 Implementing Matrix Multiplication 342
Algorithm 342
Direct Implementation 343
Recursive Implementation 346
Mesh Implementation 348
Other Matrix Multiplication Methods 352
11.3 Solving a System of Linear Equations 352
Linear Equations 352
Gaussian Elimination 353
Parallel Implementation 354
11.4 Iterative Methods 356
Jacobi Iteration 357
Faster Convergence Methods 360
11.5 Summary 365
Further Reading 365
Bibliography 365
Problems 366
CHAPTER 12 IMAGE PROCESSING 370
12.1 Low-level Image Processing 370
12.2 Point Processing 372
12.3 Histogram 373
12.4 Smoothing, Sharpening, and Noise Reduction 374
Mean 374
Median 375
Weighted Masks 377
12.5 Edge Detection 379
Gradient and Magnitude 379
Edge-Detection Masks 380
12.6 The Hough Transform 383
12.7 Transformation into the Frequency Domain 387
Fourier Series 387
Fourier Transform 388
Fourier Transforms in Image Processing 389
Parallelizing the Discrete Fourier Transform Algorithm 391
Fast Fourier Transform 395
12.8 Summary 400
Further Reading 401
Contents xix
Bibliography 401
Problems 403
CHAPTER 13 SEARCHING AND OPTIMIZATION 406
13.1 Applications and Techniques 406
13.2 Branch-and-Bound Search 407
Sequential Branch and Bound 407
Parallel Branch and Bound 409
13.3 Genetic Algorithms 411
Evolution and Genetic Algorithms 411
Sequential Genetic Algorithms 413
Initial Population 413
Selection Process 415
Offspring Production 416
Variations 418
Termination Conditions 418
Parallel Genetic Algorithms 419
13.4 Successive Refinement 423
13.5 Hill Climbing 424
Banking Application 425
Hill Climbing in a Banking Application 427
Parallelization 428
13.6 Summary 428
Further Reading 428
Bibliography 429
Problems 430
APPENDIX A BASIC MPI ROUTINES 437
APPENDIX B BASIC PTHREAD ROUTINES 444
APPENDIX C OPENMP DIRECTIVES, LIBRARY FUNCTIONS,
AND ENVIRONMENT VARIABLES 449
INDEX 460
xx Contents
|
any_adam_object | 1 |
author | Wilkinson, Barry |
author_facet | Wilkinson, Barry |
author_role | aut |
author_sort | Wilkinson, Barry |
author_variant | b w bw |
building | Verbundindex |
bvnumber | BV019998229 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.642 |
callnumber-search | QA76.642 |
callnumber-sort | QA 276.642 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 151 ST 200 |
classification_tum | DAT 416f |
ctrlnum | (OCoLC)255459545 (DE-599)BVBBV019998229 |
dewey-full | 005.275 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.275 |
dewey-search | 005.275 |
dewey-sort | 15.275 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 2. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01597nam a2200421 c 4500</leader><controlfield tag="001">BV019998229</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20090211 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">050815s2005 ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0131918656</subfield><subfield code="9">0-13-191865-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0131405632</subfield><subfield code="9">0-13-140563-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)255459545</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV019998229</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-83</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.642</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.275</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 151</subfield><subfield code="0">(DE-625)143595:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 200</subfield><subfield code="0">(DE-625)143611:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 416f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Wilkinson, Barry</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Parallel programming</subfield><subfield code="b">techniques and applications using networked workstations and parallel computers</subfield><subfield code="c">Barry Wilkinson ; Michael Allen</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ</subfield><subfield code="b">Prentice Hall</subfield><subfield code="c">2005</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 467 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">An Alan R. Apt book</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Parallelverarbeitung</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Allen, Michael</subfield><subfield code="e">Sonstige</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013320008&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-013320008</subfield></datafield></record></collection> |
id | DE-604.BV019998229 |
illustrated | Illustrated |
indexdate | 2024-07-09T20:10:28Z |
institution | BVB |
isbn | 0131918656 0131405632 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-013320008 |
oclc_num | 255459545 |
open_access_boolean | |
owner | DE-1051 DE-92 DE-29T DE-634 DE-83 |
owner_facet | DE-1051 DE-92 DE-29T DE-634 DE-83 |
physical | XX, 467 S. Ill., graph. Darst. |
publishDate | 2005 |
publishDateSearch | 2005 |
publishDateSort | 2005 |
publisher | Prentice Hall |
record_format | marc |
series2 | An Alan R. Apt book |
spelling | Wilkinson, Barry Verfasser aut Parallel programming techniques and applications using networked workstations and parallel computers Barry Wilkinson ; Michael Allen 2. ed. Upper Saddle River, NJ Prentice Hall 2005 XX, 467 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier An Alan R. Apt book Parallelverarbeitung Parallelverarbeitung (DE-588)4075860-6 gnd rswk-swf Parallelverarbeitung (DE-588)4075860-6 s DE-604 Allen, Michael Sonstige oth HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013320008&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Wilkinson, Barry Parallel programming techniques and applications using networked workstations and parallel computers Parallelverarbeitung Parallelverarbeitung (DE-588)4075860-6 gnd |
subject_GND | (DE-588)4075860-6 |
title | Parallel programming techniques and applications using networked workstations and parallel computers |
title_auth | Parallel programming techniques and applications using networked workstations and parallel computers |
title_exact_search | Parallel programming techniques and applications using networked workstations and parallel computers |
title_full | Parallel programming techniques and applications using networked workstations and parallel computers Barry Wilkinson ; Michael Allen |
title_fullStr | Parallel programming techniques and applications using networked workstations and parallel computers Barry Wilkinson ; Michael Allen |
title_full_unstemmed | Parallel programming techniques and applications using networked workstations and parallel computers Barry Wilkinson ; Michael Allen |
title_short | Parallel programming |
title_sort | parallel programming techniques and applications using networked workstations and parallel computers |
title_sub | techniques and applications using networked workstations and parallel computers |
topic | Parallelverarbeitung Parallelverarbeitung (DE-588)4075860-6 gnd |
topic_facet | Parallelverarbeitung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013320008&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT wilkinsonbarry parallelprogrammingtechniquesandapplicationsusingnetworkedworkstationsandparallelcomputers AT allenmichael parallelprogrammingtechniquesandapplicationsusingnetworkedworkstationsandparallelcomputers |