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:

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

Recent Jobs:

Business Analyst #GBS-0164461 - TX - San Antonio - IBM
The Protocol Coordinator shall maintain all protocol related records, ...
Requirements Analyst #GBS-0164974 - MD - Bethesda - IBM
Identify and document user requirements. Create and document Use Cases...
Service Delivery Manager #GTS-0164087 - TX - San Antonio - IBM
The Service Delivery Manager will reside in San Antonio, Texas. The se...
System Services Representative #GTS-0164070 - TX - San Antonio - IBM
This role is an individual contributor responsible for on-site install...
Performance Engineer #GBS-0164518 - MD - Linthicum - IBM
Performance Evaluation and Approval of Changes. Performance Analysis o...
SAP BW Senior Consultant #GBS-0163816 - DC - Washington - IBM
IBM Business Consulting Services is currently looking for an SAP BW Pa...
Oracle eBusiness Developer #SWG-0160319 - NJ - Princeton - IBM
Employees in this role perform detailed analysis of the data models of...
Technical Support Professional #SWG-0163417 - CA - Foster City - IBM
This role specializes in performing and enabling remote technical supp...
WebSphere MQ Series Software Support #SWG-0152348 - NC - Research Triangle Park - IBM
Seeking candidate to provide level 2 software support for WebSphere MQ...
Research Staff Member - Storage Systems #Res-0135120 - CA - San Jose - IBM
The Storage Systems department at Almaden is looking for a Research St...