by Vasanth Tovinkere. Intel Corp.
Today's operating systems strive to make the most efficient use of a computer's resources. Most of this efficiency is gained by sharing the machine's resources among several tasks (multi-processing). Such "large-grain" resource sharing is enabled by operating systems without any additional information from the applications or processes. All these processes can potentially execute concurrently, with the CPU (or CPUs) multiplexed among them. Newer operating systems provide mechanisms that enable applications to control and share machine resources at a finer grain—, that is, at the threads level. Just as multiprocessing OSes can perform more than one task concurrently by running more than a single process, a process can perform more than one task by running more than a single thread. This document discusses how the use of threads can improve application performance, responsiveness, and throughput. It also presents a methodology that enables a developer to thread a serial application.
As with most programming techniques, the primary goal of threading is to allow the user to take the best advantage of the system resources. Concurrency increases the complexity of the design, testing and maintenance of the code while offering increased throughput on single or multiprocessor machines. Threading represents a major step forward from the time when concurrency was implemented using interprocess communication. Overhead from interprocess communication can have a negative impact on performance. By threading an application some of this complexity can be reduced, especially with respect to interprocess communication. In addition threading retains the ability to scale the level of parallelism with an incremental increase in system resource requirements. However, threading an application may introduce errors that are hard to detect and reproduce. A majority of the effort in threading applications falls in the design, implementation and the debug phases of the development cycle. Threading effort depends on your experience in threading applications and your knowledge of the application that is being threaded.
This white paper contains several references to the Intel® Pentium® 4 processor. When used in conjunction with Hyper-Threading Technology, the correct terminology is the Intel Pentium 4 Processor with HT Technology[1].
[1] Hyper-Threading Technology requires a computer system with an Intel Pentium 4 processor at 3.06 GHz or higher, a chipset and BIOS that utilize this technology, and an operating system that includes optimizations for this technology. Performance will vary depending on the specific hardware and software you use. See www.intel.com/info/hyperthreading for information.
Read the rest of this whitepaper: click link, below.
© 2005 Intel Corp.
![]()
![]() | Multithreaded technology and multi-core processors by Craig Szydlowski, Infrastructure Processor Division, Intel Corp. ... |
![]() | Performance modeling with compilers by Max Alt, Intel Solution Services, Intel Corp. With maturing comp... |
![]() | Boosting Cryptography Performance with Intel® Libraries by Muneesh Nagpal, server applications engineer, Core Software Divisio... |
If you're interested in this topic, these articles may be helpful:
![]() | Upgrading from Linux to Solaris When "good enough" is no longer good enough Like many IT ve... |
![]() | Combining Linux Message Passing and Threading in High-Performance Computing by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C... |
![]() | Intel® Threading Tools Boost Performance for CPU Cycle-Hungry Digital Artists Introduction Intel ® Threading Tools help Autodesk optimize its M... |
![]() | Preparing for Hyper-Threading and Dual Core Technologies Intel continuously improves the performance and functionality of its m... |
![]() | On-demand Webcasts for Threading and Multi-Core Processing First there were multi-processor systems and Hyper-Threading Technolog... |
![]()
Related Jobs:

