Parallel computing for imaging applications
Imaging applications can take advantage of Hyper-Threading technology, reaping substantial performance benefits.

from Intel Corp.

Desktop developers, it's time to thread your apps. Today's operating systems are engineered to make best use of computer resources, and Hyper-Threading Technology (HT technology) better utilizes those resources. This article illustrates how imaging applications can take advantage of this groundbreaking technology, reaping substantial performance benefits. The code samples discussed in this paper show an18–20% performance gain.

Threading a serial application
To reap the benefits of HT technology, you need to thread your applications correctly. Choose the most effective threading method to get off to a fast start. To do this, you need to describe your application in terms of two threading or parallel programming models: data parallelism (data decomposition) and task-level parallelism (functional decomposition).

Data decomposition
Data decomposition or data parallelism is a programming model that implies creation of multiple threads to independently process smaller pieces of data. This implies that the same independent operation is applied repeatedly to different data. Compute-intensive tasks with a large degree of independence like compute-intensive loops in applications are good candidates for data decomposition.

A good decomposition requires that the threads not conflict with each other and operate with completely unrelated data. Work to avoid multiple threads accessing the same data at the same time and computations that depend on each other. Good decomposition may require a code rewrite to avoid thread conflicts.

Functional decomposition
Functional decomposition or task-level parallelism is a programming model that implies creation of multiple threads, mapped to process independent functional tasks that execute asynchronously. Again when running multiple threads it's important to minimize thread conflicts.

Parallelizing imaging applications
In the case of imaging applications, it's pretty easy to find compute-intensive tasks to parallelize. Image processing algorithms consist of pixel operations that are often independent. Hence their computations can be done in parallel.

If you're interested in this topic, these articles may be helpful:

Georgia Tech Takes a Parallel Path
Communicating the concepts and possibilities of multi-core processing ...
Parallelism Drives Performance: A Perspective on the Future of Processing
In this interview, noted Intel Fellow David Kuck, who has been working...
Multi-Threading for Experts: Inside a Parallel Application
by Sergey N. Zheltov, project manager, and Stanislav V. Bratanov, soft...
High performance Linux clustering, part 2: build a working cluster - writing parallel programs and configuring your system
by Aditya Narayan, founder, QCD Microsystems. First published by IBM a...
Tutorial: Introduction to Hyper-Threading Technology
Course Description and Objectives Description: This course describe...

Related Jobs:

Software Development Engineer #151336 - WA - Redmond - Microsoft Corporation
Interested in super-aggressive optimization of graphics algorithm impl...
Senior Project Manager #S05-4515 - MD - Columbia - General Dynamics C4 Systems
Job Title Senior Project Manager Location Columbia MD Relocation A...
MS SQL Server Developer / ETL Specialist #2514528 - PA - Philadelphia - Ajilon Consulting
Title : MS SQL Server Developer / ETL Specialist Posted : 12-0...
Principal Solution Architects -(CSP) - TX - Dallas - Flagstone Inc.
Our client is a Billion dollar plus global corporation working with Gl...
Business Systems Analyst 3 #73425 - GA - Atlanta - T-Mobile USA, Inc.
Job Details Requisition #: 73425 Position Title: Business Systems An...
.NET Developer/Architect #2043100 - OH - Independence - Ajilon Consulting
Title : .NET Developer/Architect Posted : 05-25-2005 Conta...
Software Engineer 2 #53917 - PA - Malvern - Siemens AG
Software Engineer 2 Company Siemens Medical Solutions USA, Inc. ...
Program Manager #144660 - WA - Redmond - Microsoft Corporation
Are you a big-picture thinker whos passionate about parallel or distr...
Data Architect/Senior DBA #884790 - MN - Bloomington - RSM McGladrey, Inc.
Job Description: RSM McGladrey, one of the nations leading business...
System Performance IPT Lead #S04-3081 - AZ - Scottsdale - General Dynamics C4 Systems
Job Title System Performance IPT Lead Location Scottsdale AZ Reloc...