1. Express the operations (synchronization and communication as well as computations) of the algorithm in an appropriate MOPC.
2. Express the algorithm as a generalized dependence graph.
3. Determine the appropriate granularity of operations and partition the data structures to be processed among the replications of the operations.
4. Choose an appropriate language and represent the dependence graph in the language.