1.Module Name: Case Study of Concurrent Program Design for Visual Computing Face Simulation
2. Writers: Selwyn You
3.Targeted availability: Jan.30, 2009
4.Brief Module Description
Proposed duration: 1 1.5 hours (variable)
The module presents a case study of a multi-threaded benchmark Face Simulation, an application animates an anatomical model of a human face driven by the action of facial musculature and the motion of the jawbone. This case study comes from a benchmark suite PARSEC, which focuses on emerging workloads and was designed to be representative of next-generation shared-memory programs for chip-multiprocessors.
The module illustrates how scalable parallelism can be achieved in this increasingly important production-quality physical simulation application, through proper decomposition strategies and threading algorithms.
This module follows the context for material detailed in the modules Berkeley motifs and Patterns, and is within the series of case studies currently planned for release in 2009.
The current shift from sequential to multicore and manycore processors presents seriouschallenges to software developers. How to familiarize the developers with adequate skills of concurrent programming may still be under debate.
On the other hand, examples or case studies are an excellent, proven means of providing relevant illustrations for learners. This module presents the concurrent program solution design methods based on common design constructs using examples of popular applications and known algorithms. With this approach, the audience scope is enlarged to any programmer who has acquired basic knowledge of programming language and algorithms, and who would like to gain performance advantages through parallelization.
6.Subject Matter Experts (SMEs):
The ideal student for this module is an adult learner at a university, who in addition to exhibiting the learning characteristics of adult learners. In particular:
Has been a programmer in the C/C++ and/or other programming languages (Java), who has at least 1.5 year programming experience (or the equivalent)
o Could be a junior or senior level programmer (3rd or 4th year college student), or an advanced younger student
o Is able to routinely write simple sorting or computation programs (between 10 and 100 lines) from scratch in a day or less, with no difficulty whatsoever
o Is able to compile and run the developed program with corresponding software tools (like editor, and compiler etc) on any operating system environment
Has the ability to describe at least a high-level algorithmic solution to a given computational problem.
o Is currently or will soon be an application developer.
Has the ability to learn from lecture/discussion environment only.
Has an ability to generalize from examples.
Demonstrates a willingness to tackle a difficult concept and deal with complexity.
- May or may not have an understanding of the issues of parallel programming and are at least familiar with one concurrent programming method.
Currently instruct or plan to instruct adult students who fit in the learner description earlier in this section.
Currently using a successful programming curriculum, or intend to soon create or teach one.
The purpose of a Context Analysis is to identify and describe the environmental factors that inform the design of this module. Environmental factors include:
1. Media Selection: lecture presentation will be in Microsoft* Power Point* format including speaker notes and references to more detailed content. Since there are no labs involved with this module, no lab guide or document will be provided. But sources files for demonstration purpose with corresponding description documents will be provided as needed.
2. Learning Activities: Lecture-only presentation; discussion of similarities and differences between models presented is encouraged between students and between students and instructor.
3. Participant Materials and Instructor/Leader Guides: Instructor notes are included in Power Point Notes sections. Recorded presentation and lecture notes for the slides, narrated by course author, will be made available to internal Intel instructor candidates (and may be made available to external academics through the Intel Academic Community website).
4. Transcript of expert delivery
5. Packaging and production of training materials: Materials are posted to Intel Academic Community website, for worldwide use and alteration
The primary Bodies of Knowledge (BKs) include, but are not limited to:
- Mattson et al, Patterns for Parallel Programming, Addison Wesley 2004
- The Landscape of Parallel Computing Research: a View From Berkeley
- Design Patterns (several books, especially Gamma et al, Addison Wesley, 1995)
- ACM Computing Curricula 2001
- Partially defined by the Software Engineering Body of Knowledge (SWEBOK): http://www.swebok.org
Relevant IEEE standards for relevant job activities include but are not limited to:
- Standards in Construction, Coding, Construction Quality IEEE12207-95
- (IEEE829-98) IEEE Std 829-1998, IEEE Standard for Software Test Documentation, IEEE, 1998.
- (IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE Standard for Software Unit Testing, IEEE, 1987.
- (IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE Standard for Software Reviews, IEEE, 1997.
- (IEEE1517-99) IEEE Std 1517-1999, IEEE Standard for Information Technology-Software Life Cycle Processes- Reuse Processes, IEEE, 1999.
- (IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology-Software Life Cycle Processes, IEEE, 1996.
10. Concept Analysis
- Work partitioning strategies
- Data decomposition
- Task decomposition
- Threading algorithm
- Thread pool and Task queue
11. Learning Objectives
Given the examples from the module, students will be able to describe, recognize and use instances of:
Data and Task decomposition strategies
Task queue technique for threading algorithm
as defined by the UC Berkeley / Intel research effort.
12. Criterion Items
Q: What is a proper parallel solution for data intensive physics simulation?
A: Data decomposition
Q: What benefit can Task queue or thread pool provide to the parallel solution?
A: Scalability and avoidance of the threads creation/destructions overhead.
13. Expert Appraisal
This Content Design Document will be posted to the Intel Academic Community forum with an invitation to solicit comments from readers of the forum. Additionally, new focused SME review from outside the company will be solicited and used. The planned Academic Community Advisory Council (at least two professors) will get a look at this in January 09. Content will be finalized based on those feedbacks.
14. Developmental Testing
Planned beta material will be posted to the ISC WIKI will be Jan. 30, 2009.
Upon completion and successful passing of the Product Readiness Approval in the PDT, the materials produced for this module will be posted to the Intel Academic Community (IAC) website. There they will be available for download by IAC registered participants. This short, introductory module will be taught as appropriate (by SMEs as well as CAT)