Login | Register
Login | Register

My pages Projects SunSource.net openCollabNet
OpenSPARC.net >  Cool Tools >  cooltst

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.

  1. 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 T1 and T1 Plus processors.

  2. 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.