Intel's Xeon and Pentium 4 processors use a technology called hyper-threading to maximize performance. Hyper-threading makes a single physical processor appear to the operating system to be two processors. The two processors are referred to as "logical" processors -- similar to the same way that two logical partitions can be contained in a single physical partition on a hard disk. The result isn't quite the same as having two distinct physical processors, but is still capable of providing better multithreaded support than having one processor of a more conventional architecture.

Windows 2000 doesn't distinguish between physical and logical processors. The OS obtains all of its multiprocessor information from the system BIOS, so it's critical that the BIOS be authored correctly for Windows 2000 to properly interpret the number of processors present and how to use them. For instance, a system with two physical processors that use hyper-threading will report four logical processors, but will report them in this order:

Logical processor 1: in physical processor 1
Logical processor 2: in physical processor 2
Logical processor 3: in physical processor 1
Logical processor 4: in physical processor 2

This "staggering" or "interleaving" of processors insures that multithreaded programs will achieve better performance by having multiple threads assigned to separate physical processors first.

Because Windows 2000 doesn't distinguish

    Requires Free Membership to View

between physical and logical processors, a BIOS that is not authored to Intel spec or which is misconfigured may misreport the processor information to Windows. The result may be a system that runs unnecessarily slowly, since threaded apps may be running on the same physical processor rather than spread out across multiple physical processors. One way to get around this is to forcibly assign processor affinity for applications (see an earlier tip of mine, Permanent processor affinity, for more on how to do this).

Also, a Windows 2000 Server system with a certain number of processor licenses may not use all the logical processors in the system. A four-way hyper-threading system will report eight processors to Windows 2000; Windows 2000 Server, which recognizes only four processors, will only use the first four logical processors and disregard the others. Windows 2003 Server intelligently recognizes the difference between logical and physical processors, however.


Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter. Check out his Windows 2000 blog for his latest advice and musings on the world of Windows network administrators – please share your thoughts as well!


This was first published in December 2003

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.