Hyper-Threading Technology: Impact on Compute-Intensive Workloads
William Magro Software Solutions Group, Intel Corporation
Paul Petersen Software Solutions Group, Intel Corporation
Sanjiv Shah Software Solutions Group, Intel Corporation
Index Words: SMP, SMT, Hyper-Threading Technology, OpenMP, Compute Intensive, Parallel Programming, Multi-Threading
Citation for this paper: Magro, W.; Petersen, P.; Shah, S. "Hyper-Threading Technology: Impact on Compute-Intensive Workloads." Intel Technology Journal. http://developer.intel.com/technology/itj/2002/volume06issue01/ (Feb 2002).
Intel's recently introduced Hyper-Threading Technology promises to increase application- and system-level performance through increased utilization of processor resources. It achieves this goal by allowing the processor to simultaneously maintain the context of multiple instruction streams and execute multiple instruction streams or threads. These multiple streams afford the processor added flexibility in internal scheduling, lowering the impact of external data latency, raising utilization of internal resources, and increasing overall performance.
We compare the performance of an Intel® XeonTM processor enabled with Hyper-Threading Technology to that of a dual Xeon processor that does not have Hyper-Threading Technology on a range of compute-intensive, data-parallel applications threaded with OpenMP1. The applications include both real-world codes and hand-coded "kernels" that illustrate performance characteristics of Hyper-Threading Technology.
The results demonstrate that, in addition to functionally decomposed applications, the technology is effective for many data-parallel applications. Using hardware performance counters, we identify some characteristics of applications that make them especially promising candidates for high performance on threaded processors.
Finally, we explore some of the issues involved in threading codes to exploit Hyper-Threading Technology, including a brief survey of both existing and still-needed tools to support multi-threaded software development.
Intel is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.
Xeon is a trademark of Intel Corporation or its subsidiaries in the United States and other countries.
1 OpenMP is an industry-standard specification for multi-threading data-intensive and other highly structured applications in C, C++, and Fortran. See www.openmp.org for more information..