avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • December 15, 2018, 11:45 PM
  • Proudly celebrating 13 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Guide for Developing Multithreaded Applications  (Read 1485 times)


  • Animated Giffer in Chief
  • Honorary Member
  • Joined in 2010
  • **
  • Posts: 3,492
    • View Profile
    • Donate to Member
Guide for Developing Multithreaded Applications
« on: March 19, 2011, 12:34 AM »
On March 9, 2010 The Parallel Programming Community on the Intel Software Network published a collection of technical papers to provide software developers with the most current technical information on Application Threading, Synchronization, Memory Management and Programming Tools. We look forward to your thoughts and feedback and encourage you to participate in the discussion and ask question in our Threading on Intel® Parallel Architectures forum.

1.1 Motivation
The objective of the Intel® Guide for Developing Multithreaded Applications is to provide guidelines for developing efficient multithreaded applications across Intel-based symmetric multiprocessors (SMP) and/or systems with Hyper-Threading Technology. An application developer can use the advice in this document to improve multithreading performance and minimize unexpected performance variations on current as well as future SMP architectures built with Intel® processors.

The Guide provides general advice on multithreaded performance. Hardware-specific optimizations have deliberately been kept to a minimum. In future versions of the Guide, topics covering hardware-specific optimizations will be added for developers willing to sacrifice portability for higher performance.

1.2 Prerequisites
Readers should have programming experience in a high-level language, preferably C, C++, and/or Fortran, though many of the recommendations in this document also apply to languages such as Java, C#, and Perl. Readers must also understand basic concurrent programming and be familiar with one or more threading methods, preferably OpenMP*, POSIX threads (also referred to as Pthreads), or the Win32* threading API.

1.3 Scope
The main objective of the Guide is to provide a quick reference to design and optimization guidelines for multithreaded applications on Intel® platforms. This Guide is not intended to serve as a textbook on multithreading nor is it a porting guide to Intel platforms.

1.4 Organization
The Intel® Guide for Developing Multithreaded Applications covers topics ranging from general advice applicable to any multithreading method to usage guidelines for Intel® software products to API-specific issues. Each topic in the Intel® Guide for Developing Multithreaded Applications is designed to stand on its own. However, the topics fall naturally into four categories: Application Threading, Synchronization, Memory Management and Programming Tools. Though each topic is a standalone discussion of some issue important to threading, many topics complement each other. Cross-references to related topics are provided throughout.

1.5 Authors and Editors
The following Intel Engineers & Technical experts contributed to writing, reviewing and editing the Intel® Guide for Developing Multithreaded Applications: Henry Gabb, Martyn Corden, Todd Rosenquist, Paul Fischer, Julia Fedorova, Clay Breshears, Thomas Zipplies, Vladimir Tsymbal, Levent Akyil, Anton Pegushin, Alexey Kukanov, Paul Petersen, Mike Voss, Aaron Tersteeg and Jay Hoeflinger

1.6 Early Review of The Intel Guide for Developing Multithreaded Applications from Parallel Programers
Tom Spyrou's opinion on how to tune work assigned to threads from the programming tools paper Curing Thread Imbalance Using Intel® Parallel Amplifier and his experience with detecting when the bottleneck in a program is caused by the bandwidth from main memory in the paper Detecting Memory Bandwidth Saturation in Threaded Applications.

Click Here To Go To The Official Website