Basic OpenMP Threading Overhead

by Paul Lindberg

Introduction
You have existing code and you want to thread it so it runs best on a multicore system. What do you need to know to get started?

This article will show how you can start threading your code with OpenMP, help you decide where to thread, and show you how to measure the resulting code. I’ll also show some comparisons against typical Win32 threading.

An ever-increasing number of multicore processors are shipping today. As a result, developers need to add threads to their code to take advantage of multiple cores when they’re available, and split performance-sensitive code across those cores. However, your code must also scale well; the same code needs to run well on single-core machines, dual-core machines, quad-core machines and beyond. This paper looks at some common threading techniques using the OpenMP threading library, and measures their performance. This will give you some performance baselines to use, and help you understand how you can thread and measure your code.


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

Multi-Threading for Experts: Inside a Parallel Application
by Sergey N. Zheltov, project manager, and Stanislav V. Bratanov, soft...
Artificial neural nets and Hyper-Threading technology
by Chuck Desylva, Intel Corp. There are many artificial-intelligenc...
Getting Started with OpenMP*
Abstract By Richard Gerber As you probably know by now, to get the m...
Exploiting multithreading in .NET Apps
by John Sharp, Content Master Ltd. Intel Corp. With the introduct...
OpenMP Application Program Interface Spec 2.5
Introduction This document specifies a collection of compiler direc...

Recent Jobs:

Remote Support Specialist #GTS_ITS-0160480 - CO - Boulder - IBM
The Remote Support Representative will provide remote technical assist...
SAP Technical Lead Architect #GBS-0163818 - DC - Washington - IBM
IBM Business Consulting Services is currently looking for a Lead SAP P...
Service Delivery Manager #GTS-0164087 - TX - San Antonio - IBM
The Service Delivery Manager will reside in San Antonio, Texas. The se...
Project Management #ITD-0162487 - USA - IBM
This position is customer interfacing role responsible for leading a p...
SAP Accounts Payable (FI) #GBS-0163035 - DC - Washington - IBM
This individual will serve as a SAP Application Functional Specialist,...
Business Analyst #GBS-0164461 - TX - San Antonio - IBM
The Protocol Coordinator shall maintain all protocol related records, ...
Senior Security Consultant #GBS-0164887 - DC - Washington - IBM
Responsible for various security components on multiple contracts. Fac...
SAP FM Distribution Sr.Consultant (FI/CO) #GBS-0162794 - USA - IBM
The SAP Financials Consultant will serve as an SAP Application Functio...
Systems Architect #GBS-0164961 - DC - Washington - IBM
Must have software development experience (J2EE, Java). Must have SOA ...
Post Doctoral Researcher - Exploratory Database and Information Systems #Res-0135063 - CA - San Jose - IBM
The Exploratory Database and Information Systems department at Almaden...