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...
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-intelligenc...
OpenMP Application Program Interface Spec 2.5
Introduction This document specifies a collection of compiler direc...

Recent Jobs:

Reporting/Data Analyst #76314 - PA - Horsham - Motorola
Experience Required 1 - 3 Basic Qualifications 2+ years experien...
Consumer Advocacy Office - iDEN Specialist Associate #76022 - FL - Plantation - Motorola
Basic Qualifications Requires: 3+ years of customer service experien...
Sr Business Analyst/Social Services SME #GBS-0144264 - USA - IBM
Job description The Senior Business Analyst (BA) is responsible for s...
Sr. Firmware Engineer #75798 - CA - San Diego - Motorola
Experience Required 3 - 5 Basic Qualifications * Bachelors degre...
Software Engineer STF #75653 - NJ - South Plainfield - Motorola
Basic Qualifications - Minimum Bachelor's degree - Minimum 3+ years...
3GSM Reference Design/Realization Software Integration Engineer #74467 - IL - Libertyville - Motorola
Experience Required 3 - 5 Basic Qualifications BS Degree in Engi...
3GSM-SIG Software Engineer #76080 - IL - Libertyville - Motorola
Basic Qualifications BS/MS in Computer Science/Engineering or Electri...
Systems Engineer - Astro Solutions #75544 - IL - Schaumburg - Motorola
Experience Required 10+ Basic Qualifications Bachelors degree 5...
TSO Product Specialist #76936 - USA - Motorola
Experience Required 5 - 10 Basic Qualifications 5+ years experie...
Lab Network Engineer #76181 - PA - Horsham - Motorola
Basic Qualifications BSCS/EE 3+ years of test experience in VoIP ...