Monday, December 19, 2011

SPARC T4: Optimizing with Oracle VM Server for SPARC


SPARC T4: Optimizing with Oracle VM Server for SPARC

Abstract:

Modern computing systems had found their footing through the history of computing. Some companies and architectures influenced the modern desktop computer more than others. One such company was Sun Microsystems, which had found it's way into Oracle. Oracle released their latest processor, the SPARC T4, with a dynamic new capability to offer the functionality to process two different workloads, via virtualization technology.

Processor History:

In 1985, Sun Microsystems produced their first Sun-3 workstation and servers based upon the 32 bit CISC Motorola 68000 processor. In 1987, Sun Microsystems produced their first Sun-4 workstations and servers upon the 32 bit RISC SPARC processor. In 1995, Sun Microsystems produced their first UltraSPARC system based upon 64 bit RISC UltraSPARC processor. In 2002, Sun Microsystems acquired Afara Web Systems, with a new high-throughput SPARC design. In 2005, Sun Microsystems released their first server (no desktops) based upon the UltraSPARC T1 processor, which was tuned for multi-threaded workloads. Oracle, who made their fortunes primarily from software upon SPARC, acquired Sun Microsystems and released their first server (no desktops) in 2010 based upon the SPARC T3. Oracle released the SPARC T4 in 2011, supporting both multi-threaded and single-threaded workload.


Workload History:

The workloads in the SPARC processors were traditionally single-threaded workloads from their early years. With the advent of RISC processors, the concept to reduce complexity allowed for the increase clock speed and thus the increase of single threaded performance. With the investment from AT&T and merger with SVR4, Solaris experienced multi-threaded workloads expansion. When SGI purchased Cray Research, Sun Microsystems purchased the Cray Superserver 6400 to create massive high-speed single threaded capability into massive multi-threaded workload throughput of 64 threads via racks of equipment.

With the release of UltraSPARC T1, Sun Microsystems managed to shrink 32 threads of slower integer and crypto capacity not only into a single socket, but onto single piece of silicon, performing outstanding aggregate capacity. With the subsequent release of the T2 processor, 64 threads were merged onto a chip. While the throughput was equivalent to racks of equipment in the T processors, the single threaded performance was a decade behind.

Workload Selection:

With the release of the Oracle SPARC T4 processor, a system can now be tuned to support single or multi-threaded workloads via Oracle VM Server for SPARC release 2.1, previously known as Logical Domains or LDom's.

The short tuning white paper from Oracle describes:
This paper describes how to use the Oracle VM Server for
SPARC 2.1 CPU threading controls to optimize CPU performance
on SPARC T4 platforms. CPU performance can be optimized for
CPU-bound workloads by tuning CPU cores to maximize the
number of instructions per cycle (IPC). Or, CPU performance
can be optimized for maximum throughput by tuning CPU cores
to use a maximum number of CPU threads. By default, the CPU
is tuned for maximum throughput
During the provisioning of a Logical Doman or VM under SPARC, the provisioner can choose the workload optimization required. This can be performed during ["add-domain"] or after ["set-domain"] provisioning.
ldm add-domain [mac-addr=num] [hostid=num]
[failure-policy=ignorepanicresetstop]
[extended-mapin-space=on]
[master=master-ldom1,...,master-ldom4]
[threading=max-throughputmax-ipc] ldom

ldm set-domain [mac-addr=num] [hostid=num]
[failure-policy=ignorepanicresetstop]
[extended-mapin-space=[onoff]]
[master=[master-ldom1,...,master-ldom4]]
[threading=max-throughputmax-ipc] ldom
The "threading" parameter defines the workload. The options from the white paper are defined as follows:



  • max-throughput.
    Use this value to select the threading mode that maximizes throughput. This mode activates all threads that are assigned to the domain. This mode is used by default and is also selected if you do not specify any mode (threading=).

  • max-ipc.
    Use this value to select the threading mode that maximizes the number of instructions per cycle (IPC). When you use this mode on the SPARC T4 platform, only one thread is active for each CPU core that is assigned to the domain. Selecting this mode requires that the domain is configured with the whole-core constraint.

No comments:

Post a Comment