000 -LEADER |
fixed length control field |
06958nam a2200685 i 4500 |
001 - CONTROL NUMBER |
control field |
6813266 |
003 - CONTROL NUMBER IDENTIFIER |
control field |
IEEE |
005 - DATE AND TIME OF LATEST TRANSACTION |
control field |
20200413152904.0 |
006 - FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS |
fixed length control field |
m eo d |
007 - PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION |
fixed length control field |
cr cn |||m|||a |
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION |
fixed length control field |
120215s2012 caua foab 000 0 eng d |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER |
International Standard Book Number |
9781608458424 (electronic bk.) |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER |
Canceled/invalid ISBN |
9781608458417 (pbk.) |
024 7# - OTHER STANDARD IDENTIFIER |
Standard number or code |
10.2200/S00340ED1V01Y201201CAC019 |
Source of number or code |
doi |
035 ## - SYSTEM CONTROL NUMBER |
System control number |
(CaBNVSL)swl00400480 |
035 ## - SYSTEM CONTROL NUMBER |
System control number |
(OCoLC)777009395 |
040 ## - CATALOGING SOURCE |
Original cataloging agency |
CaBNVSL |
Transcribing agency |
CaBNVSL |
Modifying agency |
CaBNVSL |
050 #4 - LIBRARY OF CONGRESS CALL NUMBER |
Classification number |
QA76.58 |
Item number |
.M532 2012 |
082 04 - DEWEY DECIMAL CLASSIFICATION NUMBER |
Classification number |
004.35 |
Edition number |
23 |
100 1# - MAIN ENTRY--PERSONAL NAME |
Personal name |
Midkif, Samuel P. |
245 10 - TITLE STATEMENT |
Title |
Automatic parallelization |
Medium |
[electronic resource] : |
Remainder of title |
an overview of fundamental compiler techniques / |
Statement of responsibility, etc. |
Samuel P. Midkif. |
260 ## - PUBLICATION, DISTRIBUTION, ETC. |
Place of publication, distribution, etc. |
San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA) : |
Name of publisher, distributor, etc. |
Morgan & Claypool, |
Date of publication, distribution, etc. |
c2012. |
300 ## - PHYSICAL DESCRIPTION |
Extent |
1 electronic text (xii, 157 p.) : |
Other physical details |
ill., digital file. |
490 1# - SERIES STATEMENT |
Series statement |
Synthesis lectures on computer architecture, |
International Standard Serial Number |
1935-3243 ; |
Volume/sequential designation |
# 19 |
538 ## - SYSTEM DETAILS NOTE |
System details note |
Mode of access: World Wide Web. |
538 ## - SYSTEM DETAILS NOTE |
System details note |
System requirements: Adobe Acrobat Reader. |
500 ## - GENERAL NOTE |
General note |
Part of: Synthesis digital library of engineering and computer science. |
500 ## - GENERAL NOTE |
General note |
Series from website. |
504 ## - BIBLIOGRAPHY, ETC. NOTE |
Bibliography, etc. note |
Includes bibliographical references (p. 133-156). |
505 0# - FORMATTED CONTENTS NOTE |
Formatted contents note |
1. Introduction and overview -- 1.1 Parallelism and independence -- 1.2 Parallel execution -- 1.2.1 Shared and distributed memory parallelism -- 1.2.2 Structures of parallel computation -- 1.3 Compiler fundamentals -- 1.3.1 Compiler phases -- 1.3.2 Parsing -- 1.3.3 Intermediate representations -- 1.4 Compiler support for parallel machines -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
2. Dependence analysis, dependence graphs and alias analysis -- 2.1 Dataflow analysis -- 2.1.1 Constant propagation -- 2.1.2 Alias analysis -- 2.2 Abstract interpretation -- 2.3 Data dependence analysis -- 2.3.1 Determining references to test for dependence -- 2.3.2 Testing for dependence -- 2.3.3 Arrays of arrays and dependence analysis -- 2.4 Control dependence -- 2.5 Use-def chains and dependence -- 2.6 Dependence analysis in parallel programs -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
3. Program parallelization -- 3.1 Simple loop parallelization -- 3.2 Parallelizing loops with acyclic and cyclic dependence graphs -- 3.3 Targeting vector hardware -- 3.4 Parallelizing loops using producer/consumer synchronization -- 3.4.1 Producer and consumer synchronization -- 3.4.2 Optimizing producer/consumer synchronization -- 3.5 Parallelizing recursive constructs -- 3.6 Parallelization of while loops -- 3.6.1 Determining iterations to be executed by a thread -- 3.6.2 Dealing with the effects of speculation -- 3.7 Software pipelining for instruction level parallelism -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
4. Transformations to modify and eliminate dependences -- 4.1 Loop peeling and splitting -- 4.2 Loop skewing -- 4.3 Induction variable substitution -- 4.4 Forward substitution -- 4.5 Scalar expansion and privatization -- 4.6 Array privatization -- 4.7 Node splitting -- 4.8 Reduction recognition -- 4.9 Which transformations are most important? -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
5. Transformation of iterative and recursive constructs -- 5.1 Loop blocking or strip mining -- 5.2 Loop unrolling -- 5.3 Loop fusion and fission -- 5.4 Loop reversal -- 5.5 Loop interchange -- 5.6 Tiling -- 5.7 Unimodular transformations -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
6. Compiling for distributed memory machines -- 6.1 Data distribution -- 6.1.1 Replicated distribution -- 6.1.2 Block distribution -- 6.1.3 Cyclic distribution -- 6.1.4 Block-cyclic distribution -- 6.2 Computing the reference set -- 6.3 Computation partitioning -- 6.3.1 Bounds of replicated array dimensions -- 6.3.2 Bounds of block distributed array dimensions -- 6.3.3 Bounds of cyclically distributed array dimensions -- 6.3.4 Bounds of block-cyclically distributed array dimensions -- 6.3.5 Subscripts with multiple loop indices -- 6.3.6 Generating loop bounds for multi-dimensional arrays -- 6.3.7 Generating loop bounds with multiple references -- 6.4 Generating communication -- 6.4.1 The shift communication pattern -- 6.4.2 The broadcast communication pattern -- 6.5 Distributed memory programming languages -- 6.5.1 High performance Fortran (HPF) -- 6.5.2 Co-array Fortran -- 6.5.3 Unified parallel C (UPC) -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
7. Solving diophantine equations -- 7.1 Solving single diophantine equations -- 7.2 Solving multiple diophantine equations -- 7.3 Extreme values of integer functions -- |
505 8# - FORMATTED CONTENTS NOTE |
Formatted contents note |
8. A guide to further reading -- 8.1 Compiler fundamentals -- 8.2 Dependence analysis, dependence graphs and alias analysis -- 8.3 Program parallelization -- 8.4 Transformations to modify and eliminate dependences -- 8.5 Reduction recognition -- 8.6 Transformation of iterative and recursive constructs -- 8.7 Tiling -- 8.8 Compiling for distributed memory machines -- 8.9 Current and future directions in parallelizing compilers -- Author's biography. |
506 1# - RESTRICTIONS ON ACCESS NOTE |
Terms governing access |
Abstract freely available; full-text restricted to subscribers or individual document purchasers. |
510 0# - CITATION/REFERENCES NOTE |
Name of source |
Compendex |
510 0# - CITATION/REFERENCES NOTE |
Name of source |
INSPEC |
510 0# - CITATION/REFERENCES NOTE |
Name of source |
Google scholar |
510 0# - CITATION/REFERENCES NOTE |
Name of source |
Google book search |
520 3# - SUMMARY, ETC. |
Summary, etc. |
Compiling for parallelism is a longstanding topic of compiler research. This book describes the fundamental principles of compiling "regular" numerical programs for parallelism.We begin with an explanation of analyses that allow a compiler to understand the interaction of data reads and writes in different statements and loop iterations during program execution. These analyses include dependence analysis, use-def analysis and pointer analysis. Next, we describe how the results of these analyses are used to enable transformations that make loops more amenable to parallelization, and discuss transformations that expose parallelism to target shared memory multicore and vector processors. We then discuss some problems that arise when parallelizing programs for execution on distributed memory machines. Finally, we conclude with an overview of solving Diophantine equations and suggestions for further readings in the topics of this book to enable the interested reader to delve deeper into the field. |
530 ## - ADDITIONAL PHYSICAL FORM AVAILABLE NOTE |
Additional physical form available note |
Also available in print. |
588 ## - SOURCE OF DESCRIPTION NOTE |
Source of description note |
Title from PDF t.p. (viewed on February 15, 2012). |
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM |
Topical term or geographic name entry element |
Parallelizing compilers. |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
compilers |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
automatic parallelization |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
data dependence analysis |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
data flow analysis |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
intermediate representations |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
transformations |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
optimization |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
shared memory |
653 ## - INDEX TERM--UNCONTROLLED |
Uncontrolled term |
distributed memory |
776 08 - ADDITIONAL PHYSICAL FORM ENTRY |
Relationship information |
Print version: |
International Standard Book Number |
9781608458417 |
830 #0 - SERIES ADDED ENTRY--UNIFORM TITLE |
Uniform title |
Synthesis digital library of engineering and computer science. |
830 #0 - SERIES ADDED ENTRY--UNIFORM TITLE |
Uniform title |
Synthesis lectures in computer architecture ; |
Volume/sequential designation |
# 19. |
International Standard Serial Number |
1935-3243 |
856 42 - ELECTRONIC LOCATION AND ACCESS |
Materials specified |
Abstract with links to resource |
Uniform Resource Identifier |
http://ieeexplore.ieee.org/servlet/opac?bknumber=6813266 |