December 16, 2008
Managing Multi-Core Projects, Part 1: HPC on the Parallelism FrontierThe Dream Team
Part of the planning phase should be an evaluation of the skills of project team members. It's important to have familiarity with parallel programming throughout the team, from those responsible for the initial design to those providing field support.
In the ideal case, a "dream team" would deliver applications that delight the user with new functionality, scale up to the number of cores on the newest processors, all on schedule with market availability. In building that dream team, you'll get better results teaching an engineer with domain knowledge the principles of parallelism than training a computer scientist in what your users expect. Work toward a team with these skills:
Of course, reality rarely reflects the ideal case, but the critical point here is that all team members need to have experience with parallel computing.
Grow three types of knowledge: knowledge of what your users want in each function, horizontal knowledge of the architecture in clean synchronizing interfaces, and vertical knowledge in building and using thread-safe components. Don't have a developer that's added parallelism in one function move on to adding parallelism in another. The function's developer knows the code best and will have the best intuition on what is and what is not parallel.
Finally, whether you're developing an HPC application or productivity software, the fundamental things apply: Target some features where you can add parallelism today. Think strategically about parallelism in the whole application. And develop parallel skills in every member of the development team. In the next installment of this series, we'll move beyond the planning phase and explore the management issues surrounding implementation, test, and debug of parallel HPC systems.
Steve Apiki is senior developer at Appropriate Solutions, Inc., a Peterborough, NH consulting firm that builds server-based software solutions for a wide variety of platforms using an equally wide variety of tools. Steve has been writing about software and technology for over 15 years.
|
|
|||||||||||||||||||
|
|
|
|