Exploiting Parallelism - The Art of the Possible vs The Art of the Feasible
A quick summary
I am Minesh B. Amin from MBA Sciences. In this Open Space, I'd like to:
- introduce and share insights into the power of Parallel Management Patterns (PMPs), and how they help us transition from the possible to the feasible when exploiting parallelism;
- learn about problems others are trying to solve and together see how PMPs might apply.
Parallel Management Patterns (PMPs) are a framework for decomposing and authoring scalable, fault tolerant parallel capabilities that span the entire spectrum of parallel solutions from coarse grain on one end to fine-grain on the other. They capture the top-down view of a huge class of parallel applications in terms of policies governing:
- how work is to be distributed
- nature of communication primitives one may use (so as to avoid most, if not all, parallel deadlocks)
- handling of any premature terminations
First 20 minutes of the Open Space
We'll start with a quick introduction on the "Art of the Possible" vs the "Art of the Feasible" when it comes to exploiting parallelism. So, for example, how do parallel enabling technologies (like MapReduce and OpenMPI) influence the way we think, decompose, and implement parallel capabilities? Why is it that only some ideas are very easy to express in terms of "Map" + "Reduce"? On the other hand, why does exploiting parallelism using OpenMPI sound and feel like we are building a wall one grain of sand at a time?
Next, we will introduce Parallel Management Patterns, and describe how they formalize the process for going from the "possible" to the "feasible", and enable us to
- estimate the asymptotic effort required to convert an idea into a robust, and therefore deployable, software solution,
- produce results that are scalable and fault tolerant,
- develop in a "serial-like" environment, and yet
- deploy on any cluster or cloud
We will conclude the first half with a quick overview of six PMPs:
- Partition (List, DAG)
- PartitionAggregate (Decentralized, Centralized)
- PartitionDataStructures (Grid, and time permitting Probabilistic)
As an aside, note that using PMP terminology, the classical MapReduce would be a form of PartitionAggregate (Decentralized) pattern.
The last 40 minutes or so
We'll have an informal session to discuss a variety of problems we're trying to solve, the challenges that make them difficult, and the applicability of the PMPs. For anyone interested in exploring PMPs after the Open Space, I'll provide a DVD containing a trial edition of SPM.Python with examples. The concepts can be applied using other technologies and tools, but this would be an easy and comprehensive way to test drive them.