Quick Reference Guide for Developers July 8, 2009,
Volume 137, Issue 2
features and capabilities that can be implemented in the Solaris OS to optimize the Intel Xeon processor 5500 series systems
This quick reference guide is intended for developers interested in a briefing on what specific capabilities of Intel Xeon processor 5500 series systems can be optimized with the Solaris Operating System. The authors provide a short overview of the Sun and Intel collaboration, and briefly highlight technical descriptions of specific features and capabilities that can be implemented in the Solaris OS to optimize capabilities in the Intel Xeon processor 5500 series systems.
Solaris OS takes advantage of the capabilities of the new Intel QuickPath Interconnect (Intel QPI) architecture with capabilities such as an optimized scheduler and memory placement optimization (MPO) capability that has proven performance benefits with non-uniform memory access (NUMA) architecture systems, the authors note. MPO leverages the NUMA topology using the System Locality Information Table (SLIT) / System Resource Affinity Table (SRAT) features in the Intel Xeon processor 5500 series to maximize performance through locality.
Another feature of intelligent performance included in this piece is performance counters, which offer the ability to observe performance characteristics of applications. Solaris libcpc(3LIB) on the Intel Xeon processor 5500 series supports a full set of event names that are specific enough to define both the event code and unit mask (umask) value.
Automated Energy Efficiency
Power efficiency features in the Intel Xeon processor 5500 series that Solaris takes advantage of include:
Power Aware Dispatcher (PAD): The workload can be efficiently utilized on available hardware threads, with benefits for shared pipelines, shared caches, and shared sockets; able to communicate what processor resources are being used by the operating system, and which are not; the ability to utilize those parts of the processor that are active, and continue to avoid doing work on those parts that are powered down.
PowerTOP for OpenSolaris: PowerTOP is a command line tool that shows how effectively a system is taking advantage of the processors power management features. PowerTOP even allows a developer or administrator to observe Intel Turbo Boost Technology operation. Intel Turbo Boost Technology uses any available power headroom to deliver higher clock rates.
Reliability and Availability
What's offered between the Sun and Intel technologies:
Fast Reboot: A command-line feature that enables you to reboot an Intel Xeon processor 5500 series system quickly, bypassing the BIOS, power on self test, and GRUB Bootloader.
Support for Microcode Updates on Intel Processors: The ability to work around processor errata in the operating system by applying microcode updates is now available in the Solaris OS.
Developer Tools Optimizations
Sun Studio has been optimized to extract high performance from the microprocessor architecture of the latest Intel Xeon 5500 processor series. Sun Studio Toolchain: C/C++/Fortran Compilers, Debuggers, Thread Analyzer, Performance Analyzer, DLight, NetBeans, support for OpenMP 3.0.
Users on Solaris can determine which of the Streaming SIMD Extensions (SSE) available on the Intel Xeon processor 5500 series are offered on their particular system using the isainfo(1) command.
Improved Microvectorization and Automatic Parallelization: The microvectorization compiler technology in Sun Studio analyzes programs, especially loops, and decides which loops can be safely parallelized. The compiler will then generate codes which, when executed at runtime, will have more than one thread to execute the loop body.
Instruction Selection: The newer Intel Xeon processor 5500 series have functional units that are a full 128 bits wide with 128-bit internal registers. That is good for SIMD operations because the microcode no longer splits the 128-bit operation into two 64-bit operations, so bandwidth is improved. The paper offers a table showing the current load/store/move combinations for float and double data types, for scalar and SIMD, both aligned and unaligned, that the compiler generates.
OpenMP Development with Sun Studio: OpenMP is an Application Programming Interface (API) that can be used to explicitly specify multi-threaded shared-memory parallelism in C, C++, and Fortran programs. This paper's authors identify it as the de-facto standard for writing multi-threaded applications to run on multi-threaded machines. The Sun Studio compilers (C, C++, and Fortran) support OpenMP specification version 3.0. Various Sun Studio tools aid in the debugging, error checking, and analysis of OpenMP programs.
Numerous record-setting benchmarks complete the 39-page PDF, demonstrating the performance capabilities of this Sun-Intel combination. This paper supplies information on: