Performance Obstacles for Threading: How do they affect OpenMP code?
What is Multi-threading in Multithreaded Client Server Application Search Engine Games: Now that multi-core processors are becoming mainstream, developers need to thread their code so it will run in parallel. OpenMP can provide a useful way to thread an application. But what should you know about your threaded code’s performance, and what does that mean when using OpenMP? In an earlier paper, we discovered that all threading methods have a consistent startup cost, but that OpenMP has some performance advantages over typical Windows threading, due to its use of thread pooling.
Why thread, and what does that have to do with performance?
You might thread your application for three different reasons. Each requires different measurements of performance.
- Doing the same work faster:
If we have a fixed application workload (e.g., applying an effect to a still photo), we thread to get the work done faster. When measuring this code, we’ll record the execution times and the speedup gained by threading. - Doing more work:
If an application is extended to do more of the same workload (e.g., updating a larger buffer of pixels) or to add different work to the workload (e.g., adding particle effects to a game pipeline), then we thread to get more work through the application. We usually measure this as throughput. To measure this code, we’ll want to measure throughput, which is the “volume” of work measured against overall execution time. - Offsetting the time taken by slow operations:
If an application has long operations like file loads, then we thread to do these operations in advance, so the results are available as soon as they're needed. There are several ways to measure this code, but the main measure is a qualitative one; are there any user-perceived delays from these operations? Depending on your workload, this may or may not be easy to measure. Many applications (especially games) are already using threading (and some other technologies, like asynchronous disk I/O) to offset the time taken by slow operations.
![]()
If you're interested in this topic, these articles may be helpful:
![]() | Rational Performance Tester demo IBM Rational Performance Tester is a performance and load testing so... |
![]() | De-Mystifying Software Performance Optimization by Paul Del Vecchio, senior performance analyst, Software and Soluti... |
![]() | Creating high-performance embedded applications through compiler optimizations from Intel Corp. The role of the compiler in application developmen... |
![]() | J2EE performance optimization, part 3 - design of experiments for performance tuning by Kingsum Chow, Ph.D., senior performance architect, Managed Runtime ... |
![]() | Developing your site for performance: principles and techniques of cost-effective Web site acceleration, part 3 Developing your site for performance: principles and techniques of cos... |
![]()
Related Jobs:
![]() | .NET architect and Sr. Developer - OH - Columbus - Dedicated Technologies, Inc. The selected individual would be needed to develop an Interface betwee... |
![]() | S/W Engineer #13 - CA - Milpitas - Sigma Designs, Inc. Description of duties and responsibilities: Responsible for the ana... |
![]() | Software Engineer I #T05-4356 - MA - Needham - General Dynamics C4 Systems Job Title Software Engineer I Location Needham MA Relocation Avail... |
![]() | C++/Unix Developers #550 - NJ - Parsippany - RCG Information Technology Description: All applicants must have a minimum of 3 years IT Indu... |
![]() | Software Development Engineer in Test #150715 - WA - Redmond - Microsoft Corporation The Visual C++ Quality Assurance team - Are you passionate about quali... |
![]() | Senior Software Engineer - CA - Palo Alto - MailFrontier, Inc. Join high-caliber software engineering team developing MailFrontier ap... |
![]() | Software Engineer #100-18 - CA - Palo Alto - MailFrontier, Inc. Join high-caliber software engineering team developing MailFrontier se... |
![]() | Associate Software Engineer - CA - Santa Clara - Willow Technology, Inc. We are looking for a software engineer with tremendous potential for ... |
![]() | Support Professional #150553 - WA - Issaquah - Microsoft Corporation Microsoft Developer Support SharePoint Portal Server (Developer) Hiri... |
![]() | Senior Consultant #151594 - WA - Bellevue - Microsoft Corporation This position requires a mix of advanced technology and strategic busi... |

