Using Intel Performance Primitives for Threading Applications
[Intel Confidential List]
3. Targeted availability
June 30th, 2008
4. Brief Description
The module introduces the Intel Performance Primitives (IPP) with regards to the library being used within multithreaded application development. It targets software developers who would like to have quick performance gains on threaded applications performance.
This module gives a brief overview on the basic architecture (or called API domains) of IPP, and focuses on how IPP helps threaded applications, which is achieved by showing audience the threading support of IPP with examples of multimedia encoding applications.
The completion of the module is expected to motivate student to explore the IPP library and to use specific IPP domains that can be applied to applications in development.
5. Needs Analysis
With multi-core processor platforms becoming mainstream, concurrent/parallel programming has grabbed more and more attention because its ability to release the full power of these processors. Yet successful concurrent/parallel programming requires practice and experience, regardless of the parallel programming techniques that have been developed for decades. Tools or facilities that can support rapid construction of concurrent/parallel programming will be of immense help to developers.
Intel Performance Primitives (IPP) provide such opportunity since they are threaded APIs and libraries. This module introduces IPP in the context of multithreading applications and shows methods of using IPP with multimedia processing examples.
6. Subject Matter Experts (SMEs)
[Intel Confidential List]
7. Learner Analysis
The ideal student for this module is an adult learner at a university, who in addition to exhibiting the learning characteristics of adult learners, has also the following traits:
- a programmer in the C/C++ compiled programming languages, who has between 0.5 and 2 years programming experience
- could be a freshman, or sophomore or junior level programmer (1st, 2nd or 3rd year college student), or an advanced younger student
- A programmer who routinely writes simple sorting or computation programs (between 10 and 100 lines) from scratch in a day or less, with no difficulty whatsoever
- these short programs routinely compile with few or no problems, or the student is well able to solve the problems to a successful compile
- A programmer who may have a primary interest in writing applications for use on a multi-core nature
- should have basic knowledge of compiler optimization strategies
- may already be actively seeking ways to use current available resources more effectively to solve even more challenging problems
- should have some experience or understanding of multimedia applications
Special notes for Faculty Training learners/attendees
Faculty Training (FT) attendees are special cases wherein they likely have more experience than the usual target audience for this class, and, they have the immediate goal of teaching this class in a live classroom environment with targeted students.
Ideal FT candidates for this material have the following traits:
- 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
- Currently has multimedia processing experience
- NOTE: There are no inherent limitations for instructors based on the experience or lack of it with regard to these objectives and content
Further, the course materials will use Intel software tools to easily illuminate important concepts, but those concepts can be explained and exploited using many other tools. ?
8. Context Analysis
The purpose of a Context Analysis is to identify and describe the environmental factors that inform the design of this module. The Environmental Factors for the module include:
a. Media Selection
i. No Tapes, CDs, or DVDs are available or provided
ii. Electronic files are provided
1. Can be printed out for classroom use if desired
2. Lecture presentation is .PPT format
a. includes instructor notes
b. Learning Activities
i. Lectures include optional demos for the instructor
ii. Class Q+A
c. Participant Materials and Instructor/Leader Guides
i. There is a short Lecture presentation with this module
1. Minimal instructor notes are included in PPT Notes sections
sp; ii. An archive of class binaries, if no customized or student binaries are available
d. Packaging and production of training materials
i. Materials will be posted to Intel Curriculum Wiki, for worldwide use and alteration
ii. Training Schedule
iii. The module is 1 hour of lecture
a. Class size is not restricted in any way by the course materials themselves
e. Other References
i. Intel Integrated Performance Primitives, by Stewart Taylor, Intel Press, ISBN-10: 0971786135
ii. Optimizing Applications for Multi-Core Processors, by Stewart Taylor, Intel Press, ISBN-10: 1934053
9. Task Analysis
The relevant Job/Task Analysis for this material is defined by the Software Engineering Body of Knowledge (SWEBOK) and can be viewed in detail here:
The primary Bodies of Knowledge (BKs) used include, but are not limited to:
- Software Requirements BK
- Software Design BK
- Key issues in Software Design (Concurrency)
- Data persistence, etc.
- Software Construction BK
- Software Construction Fundamentals
- Managing Construction
- Practical Considerations (Coding, Construction Testing, etc.)
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
Thread safe library
11. Learning Objectives
- Know the architecture (domains) of IPP and their general functionality
- Apply appropriate threaded library functions for threading serial applications
12. Criterion Items
Q. Name at least five domains of IPP.
A. Image Processing, Color Conversion, JPEG (Image Coding), Video Codi
ng, Computer Vision, Realistic Rendering, Digital Signal Processing, Audio Coding, Speech Coding, Speech Recognition, Data Compression, Cryptography, String Processing, Matrices, Vector Operations.
13. Expert Appraisal
SME demo walkthrough of material. Optional Webinar on the material may be completed; if so, the Webinar will be announced on the ISC Community Forum.
14. Developmental Testing
Alpha by the end of May'08; final by end of June08.
Presentation slides deck