February 15th, 2006

The "symmetric" in symmetric multiprocessing really means "symmetric"

The Windows NT family of operating systems supports symmetric multiprocessing. And symmetric really means symmetric. All the processors have to be the same speed, the same stepping, the same manufacturer. They must be identical in every way. If you break any of these rules, you will get strange results. Strange results from QueryPerformanceCounter will be the least of your problems. Code that checks for processor capabilities will get the results from whichever processor happens to be running. If you have one processor that supports SSE and one that doesn’t, a program may detect SSE (if the detection code runs on the processor that supports it), and then crash later (when the SSE code is run on the processor that doesn’t).

Be cool; don’t be a fool. Keep your processors symmetric.

Topics
Other

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.