Categories Pricing Corporate
Free Textbook

Parallel Programming Made Simple

Using Groovy Parallel Patterns

0 Reviews
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
Business subscription free for the first 30 days, then $5.99/mo

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

Jon Kerridge obtained his PhD from the Computer Science Department at the University of Manchester in 1975. Since then he has lectured at Sheffield City Polytechnic, Sheffield University and most recently at Edinburgh Napier University. He is a Fellow of the British Computer Society and a Chartered Engineer.

He has a long standing interest in both Database Technology and in Concurrent and Parallel Programming. From the early 1980’s to the mid-1990’s he was a member of the British Group on the International Standards Committee that standardised the Database Language SQL.

He built his first concurrent system, using Concurrent Pascal, in 1976 and has retained an interest in such systems ever since. He was an early user of the Inmos Transputer and its programming language occam. While at Sheffield University he became Director of the National Transputer Support Centre. One of his main achievements during this period was to build a parallel database machine, using more than 200 Transputers, that was capable of undertaking both SQL queries and on-line transaction processing in parallel on the same data at the same time.

Since the mid-1980’s he has taught concurrent and parallel programming techniques to both post- and under-graduate students. As he moved between education institutions he always had to introduce the teaching of this subject. In particular, the teaching of Concurrent and Parallel Programming to students who have never seen the concepts before or who have been shown old-fashioned and outdated mechanisms. This book draws upon the wealth of experience he has gained during that time.

Author website: