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:

Exploiting multithreading in .NET Apps
by John Sharp, Content Master Ltd. Intel Corp. With the introduct...
Multi-Threading for Experts: Inside a Parallel Application
by Sergey N. Zheltov, project manager, and Stanislav V. Bratanov, soft...
OpenMP Application Program Interface Spec 2.5
Introduction This document specifies a collection of compiler direc...
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...

Recent Jobs:

Senior BI Consultant #SWG-0163270 - GA - Atlanta - IBM
Provide subject matter expertise for K-12 school system in development...
Project Management #ITD-0162487 - USA - IBM
This position is customer interfacing role responsible for leading a p...
WebSphere MQ Series Software Support #SWG-0152348 - NC - Research Triangle Park - IBM
Seeking candidate to provide level 2 software support for WebSphere MQ...
IT Security Specialist #GBS-0165000 - CO - Boulder - IBM
Assists with information system administration for a 24x7x365 SOC miss...
Oracle Developer #GBS-0164531 - DC - Washington - IBM
Gather requirements, design, develop, and implement system interfaces ...
SAP Accounts Payable (FI) #GBS-0163035 - AL - Huntsville - IBM
This individual will serve as a SAP Application Functional Specialist,...
Technical Enablement Specialist #SWG-0163886 - CA - San Jose - IBM
Employees in this role use IBM Systems and product expertise to delive...
Requirements Analyst #GBS-0164974 - MD - Bethesda - IBM
Identify and document user requirements. Create and document Use Cases...
Software Engineer - Entry Level #STG-0164877 - GA - Atlanta - IBM
Systems and Technology Group has an entry-level opening on its exciti...
Senior Project Executive #GBS-0164537 - DC - Washington - IBM
Sr. Project Executive to work proposal effort and lead delivery if sel...