2 Planning for parallel
This chapter covers
- Planning steps for a new parallel project
- Version control and team development workflows
- A workflow for turning serial applications into parallel applications
- Understanding the performance capabilities and limits of your compute resources and your application
- How to develop a plan to parallelize a routine based on its unique characteristics within your whole application.
Developing a parallel application, or making an existing application run in parallel, can feel challenging at first. Most often, new parallel developers are unsure of where to begin and what pitfalls they may encounter. This chapter focuses on a workflow model for developing parallel applications, illustrated in figure 2.1. This model provides the context for describing where to get started and how to maintain progress in developing your parallel application. Generally, it is best to implement parallelization in many small increments so that if problems are encountered, the last few commits can be reversed. This kind of pattern is very suited to agile project management techniques.