Cool Tools - CoolThreads Selection Tool
Description
cooltst, "CoolThreads Selection Tool", observes a running workload and applies various heuristics to assess whether that workload may be suitable for UltraSPARC T1, T2, and T2 Plus based servers such as:
-
Sun Fire T1000
-
Sun SPARC Enterprise T1000
-
Sun Blade T6300
-
Sun Blade 6000
-
Sun Netra T2000
-
Sun Fire T2000
-
Sun SPARC Enterprise T2000
-
Sun SPARC Enterprise T5120
-
Sun SPARC Enterprise T5220
-
Sun Netra T5220
-
Sun Blade 6048
-
Sun Blade T6320
-
Sun SPARC Enterprise T5140
-
Sun SPARC Enterprise T5240
The purpose of cooltst is to help you determine suitability of a Chip Multithreading (CMT) processor for a workload. Its recommendations should help you judge how much effort to put into a feasibility study which might include porting, prototyping, and/or performance measurement of your applications. cooltst is not a system sizing or capacity planning tool, and the rough approximations used internally in cooltst should not substitute for detailed performance analysis. cooltst runs on Solaris 8 and later, and on many Linux versions. cooltst is a system workload tool. It looks at the workload being executed by the system by all processes. It does not currently look at any particular process. cooltst bases its recommendations on two main criteria.
-
Percentage of instructions which are floating point. If the floating point content of the workload is high then the workload may not be suitable for an UltraSPARC T1 processor which shares a single floating point pipeline among all cores. High floating point content is not an issue for UltraSPARC T2 and T2 Plus processors.
-
Parallelism. cooltst evaluates the degree of potential thread level parallelism, as measured by the spread of CPU consumption among software threads, and instruction level parallelism, as measured by the cycles per instruction (CPI). A highly parallel workload may well exploit the hardware parallelism of CMT processors to achieve high throughput. A workload with low parallelism may not.
Although cooltst runs on UltraSPARC T1, T2, and T2 Plus processors, this is the target environment for the workloads cooltst measures. Some of the other Solaris performance tools would be more appropriate than cooltst to investigate performance of a workload already running on such a processor. E.g.
Running cooltst
In order to measure floating point content and CPI, cooltst must be run with an effective userid privileged to examine instruction counters, such as root. It can be run as an ordinary user, in which case it will only look at thread level parallelism. cooltst must be run in a directory with write permissions. By default, data collection takes about five minutes, and this can be changed. Run cooltst during a steady state of the workload. Failure to capture representative data will result in misleading analysis based on transient characteristics. If the workload to be assessed executes in phases, cooltst can be run during the steady state of each phase.
The output from cooltst is sent to standard out and to a file, cooltst.out. Output is narrative in form and ends with bottom line advice on whether the workload is suitable for CMT (GREEN), unsuitable (RED), or marginal (YELLOW), based on floating point content and on parallelism. If your migration target is an UltraSPARC T2 or T2 Plus you may disregard the floating point advice which is only relevant to an UltraSPARC T1 as migration target.
Options
Usage: cooltst.pl [options]
Must run with root privileges to measure CPU data
-d or --dir DIRECTORY
DIRECTORY is the cooltst installation directory
Default: current working directory
-e or --examine NAME
Solaris only. Instead of measuring floating point activity
on the system as a whole, examine processes with the given
NAME. This is typically done as a second pass, if significant
floating point activity was detected and you want to be sure
that it was associated with the target workload.
Implies NOT --nocpu
Default: system-wide floating point operations are measured
(Not yet implemented)
-f or --nocpu
Do not measure floating point activity and CPI
Implies NOT --examine
Default: measure floating point and CPI
Note: CPI (cycles per instruction) can only be measured
on Solaris
-i or --interval N
N is number of seconds between successive observations.
Default: 60 seconds.
-l or --license
Print information about copyright, trademark, and license terms
-t or --time N
N is number of minutes to run. Actual run time will be this
time or longer by as much as one observation interval.
If time is zero then cooltst will not take additional measurements
but will analyze data left in the data directory from previous
executions.
Default: 5 minutes
Sample output
CoolThreads Selection Tool (cooltst) version 3.0
Copyright 2008 Sun Microsystems, Inc. All rights reserved
Use is subject to license terms.
Cooltst observes a running workload and applies various heuristics
to assess whether that workload may be suitable for a Sun Fire
T1000/T2000/T5x20 system, to help you judge how much effort to put
into a feasibility study which might include porting, prototyping,
and/or performance measurement of your applications. Cooltst is
NOT a system sizing or capacity planning tool, and the rough
approximations used internally in cooltst should not substitute
for detailed performance analysis.
System Configuration
Host name wpc
System name HP Pavilion 061 EX276AA-ABA a1540n
OS Solaris
OS release 5.11
OS version snv_44
Distro Solaris
BIOS/PROM Phoenix Technologies, LTD 3.07 08/02/2006
Memory 1983 MB
Chip Athlon
AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
MHz 2200
Architecture x64
# of Virtual CPUs 2
P0: 2200 MHz x86
P1: 2200 MHz x86
OS release detail:
Solaris Nevada snv_44 X86 Copyright 2006 Sun Microsystems, Inc. All Rights
Reserved. Use is subject to license terms. Assembled 17 July 2006
Workload Measurements
Observed system for 5 min
in intervals of 60 sec
Cycles 24892691349
Instructions 7766859467
CPI 3.20
FP instructions 6753668
Emulated FP instructions 0
FP Percentage 0.1%
The following applies to the measurement interval with the
busiest single thread or process:
Peak thread utilization at 2007-10-01 20:41:15
Corresponding file name 1191296475
CPU utilization 24.5%
Command Xorg
PID/LWPID 627/1
Thread utilization 12%
Advice
Floating Point GREEN
Observed floating point content was not excessive for
an UltraSPARC T1 processor. Floating point content is not
a limitation for UltraSPARC T2.
Parallelism GREEN
Observed parallelism was adequate for an UltraSPARC T1/T2
processor to be effectively utilized.
Download
cooltst is available for download from the Sun Download Center.
Download the compressed tar archive and extract it in your desired target directory. On recent Solaris and Linux versions you can do this just by double clicking on the archive file after you download it. Please note this is a tar archive compressed with bzip2. On any reasonably current Solaris or Linux system you should be able to either save or open this archive simply by clicking on the link at the Sun Download Center. And you should be able to open a saved archive simply by double clicking on the file icon. Old Solaris or Linux systems, and Windows systems, may lack support for bzip2. On these systems you must save the archive, not open it. Winzip on Windows systems is particularly troublesome because it will attempt to open the archive, and fail with a cryptic error message. To save the archive either choose save from the dialog that pops up when you click on the link, or right click the link to save. To unpack the archive on a Solaris or Linux system from the command line:
bunzip2 <cooltst_v3.tar.bz2 | tar -xf -
Help
Community assistance for CoolThreads Selection is available in the Cool Tools forum at Sun Developer Network. |