Categories Corporate
Free Textbook

Parallel Programming Made Simple

Using Groovy Parallel Patterns

159
Language:  English
The use of the Groovy Parallel Patterns Library is described, using many diverse examples, showing how a parallel application can be easily created from existing sequential codes.
Download free PDF textbooks or read online. Less than 15% adverts
Byznys předplatné zdarma během prvních 30 dnů, pak $5.99/m
Description
Content

The use of the Groovy Parallel Patterns Library is explained by using published sequential algorithms for problems such as Montecarlo simulation, Concordance, the n-body problem, Jacobi’s method, Mandelbrot, image processing, sorting, and the Goldbach Conjecture. The parallel solution’s performance is compared to that of the sequential implementation, explaining how the speedup has been obtained. A novel visualization system is described that shows how the objects pass through the parallel structure. One chapter is devoted to demonstrating the model is provably correct using CSPm and FDR.

About the Author

Jon Kerridge has been researching concurrent and parallel systems and programming languages since 1976, when he built his first system. His recent research has focused on creating concurrent and parallel systems that exploit modern multi-core processes as simply as possible. He has focused on Process Architectures using Communicating Sequential Processes as the underlying model and theoretical underpinning. He has published more than 100 articles in academic journals and conferences.

  • Preface
  1. Let’s Get Going
    1. Data Parallel Farms
    2. Task Parallel Pipelines
    3. Speedup and Efficiency
    4. A first example – Monte Carlo
    5. The objects piData and piResults
    6. Process Network Termination
    7. Sequential Performance
    8. Performance of the Data Parallel Collect Pattern
    9. Summary
    10. References
  2. More, Delving Deeper
    1. Process Connectors
    2. Groups of Workers
    3. Terminating Thoughts
    4. References
  3. Searching Texts – A Map-Reduce Algorithm
    1. The Concordance Algorithm
    2. Process Network
    3. Concordance Object Definitions
    4. Pipeline Solution
    5. Sequential Solution
    6. Performance Analysis
    7. Pipelines, Composites and Patterns
    8. Performance Analysis
    9. Summary
    10. References
  4. BUT – is it correct?
    1. Communicating Process Architectures
    2. Groovy Support
    3. Formal Proof of the Correct Operation of Process Networks
    4. Asserting Process Networks are Equivalent
    5. Concluding Comments
    6. References
  5. Celestial Bodies – solutions using matrices
    1. The MultiCoreEngine Process
    2. The MultiCoreEngine Properties
    3. The n-body Problem
    4. The n-body Process Network
    5. The n-body data objects
    6. The sequential solution
    7. Performance Evaluation
    8. Concluding remarks
    9. References
  6. Solving Real World Problems
    1. Jacobi’s Method
    2. Jacobi Solution Network
    3. Jacobi Data Objects
    4. Sequential Version of Jacobi Solution
    5. Performance Analysis
    6. Concluding Remarks
    7. References
  7. What’s Going On?
    1. Visualising PAD Concordance
    2. What the Visualisation Reveals
    3. A Change of Design for Concordance
    4. Consideration of the Log File
    5. Concluding Remarks
    6. Acknowledgement
    7. Reference
  8. Getting Embarrassed
    1. Mandelbrot Process Definition
    2. Performance Evaluation
    3. Commentary
    4. References
  9. Processing Images
    1. Properties of the StencilEngine Process
    2. Processing an Image
    3. Performance Analysis
    4. Commentary
    5. References
  10. Getting Sorted – An Exercise in Thinking Parallel
    1. Process Network – First Thoughts
    2. Performance Analysis – First Version
    3. Sorted at Last!
    4. Performance Analysis – Second Version
    5. Commentary
    6. References
  11. Playing with Goldbach Numbers
    1. Goldbach Network
    2. Class Definitions Used in the Network
    3. Description of the Transferred Classes
    4. Description of the Local Worker Classes
    5. Performance Analysis
    6. Commentary
    7. References
  12. Let’s Wrap Up
  • Appendix Detail Objects, Specific Process Methods and Functional Properties
  1. Detail Objects and Their Methods
    1. Data Details
    2. Result Details
    3. Local Details
    4. Pipeline Details
    5. Group Details
    6. Composite Details
  2. Process Specific methods
    1. Worker process
    2. Three Phase Worker process
    3. Combine N to 1 Process
    4. N-way Merge Process
    5. One Indexed List Process
    6. Multi-core Engine Process
    7. Stencil Engine Process
  3. Functionals Specific Properties
    1. Package pipelines
    2. Package groups
    3. Package composites
  • Index
About the Author

Jon Kerridge