# Invocation command line: # /export/home/cpu2006-1.1/bin/runspec -c may23a --define OUTDISK=/spec2/jhenning/out -r --reportable fp # output_root used was "/spec2/jhenning/out" ############################################################################ ############################################################################ # Hey! Change this line so you can tell one binary set from another ext = may23a flagsurl000 = http://www.spec.org/cpu2006/flags/Sun-Solaris-Studio12-and-gccfss4.2.xml action = validate iterations = 1 # (when you say --reportable, gets overridden) ignore_errors = 1 # ditto log_line_width = 4090 # to avoid choking vi output_format = asc,cfgfile,mail mailto = teeout = yes # enable to get more output to the screen tune = base,peak mean_anyway = 1 verbose = 6 parallel_test=40 parallel_setup=16 parallel_setup_type=fork parallel_setup_prefork=pbind -b $BIND $$ ########################## Disk usage ######################### # The output_root feature # www.spec.org/cpu2006/docs/runspec.html#output_root # nicely segregates your output directories from the original tree; # but if you don't like that feature, just comment out this whole # section. # # Recommended usage is: # # cd $SPEC # . ./shrc # cd /myoutputdirs # GO=`pwd` # runspec --define OUTDISK=$GO # %if '%{OUTDISK}' eq '' % error please say --define OUTDISK=/whatever %endif output_root=%{OUTDISK} ####################### Processor usage ####################### # Note that the first instance of a "named section" occurs with # the copies line a little below. Therefore, any variables that # belong in the header section should be above this point. makeflags = -j32 # how many jobs specmake should start (set as you like) XJOBS = 32 # how many CPUs ipo can use (at link time) # The bind statement, below, is derived from the matrix below. Note # that each column has the processors from a core. For example, the # far right column has the virtual processors 0 through 7. # # Cores are ordered from highest to lowest, interleaved by chip. # # Within a column, what is the strange order? Recall that each core has # two integer execution units. The intent is to alternate assigning # the units, and to do so from highest to lowest. Thus the far right # column interleaves virtual processors {7, 6, 5, 4} with {3, 2, 1, 0} # # The intended overall effect of the matrix is to always prefer to load # chip 0 / core 0 / unit 0 / processor 0 last, because that is where # Solaris tends to run, and we have encouraged it to do so with the # use of "psrset" (see notes_os_bind, below). # # chip -> 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 # core -> 7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 # iu # 1 255 191 127 63 247 183 119 55 239 175 111 47 231 167 103 39 223 159 95 31 215 151 87 23 207 143 79 15 199 135 71 7 # 0 251 187 123 59 243 179 115 51 235 171 107 43 227 163 99 35 219 155 91 27 211 147 83 19 203 139 75 11 195 131 67 3 # 1 254 190 126 62 246 182 118 54 238 174 110 46 230 166 102 38 222 158 94 30 214 150 86 22 206 142 78 14 198 134 70 6 # 0 250 186 122 58 242 178 114 50 234 170 106 42 226 162 98 34 218 154 90 26 210 146 82 18 202 138 74 10 194 130 66 2 # 1 253 189 125 61 245 181 117 53 237 173 109 45 229 165 101 37 221 157 93 29 213 149 85 21 205 141 77 13 197 133 69 5 # 0 249 185 121 57 241 177 113 49 233 169 105 41 225 161 97 33 217 153 89 25 209 145 81 17 201 137 73 9 193 129 65 1 # 1 252 188 124 60 244 180 116 52 236 172 108 44 228 164 100 36 220 156 92 28 212 148 84 20 204 140 76 12 196 132 68 4 # 0 248 184 120 56 240 176 112 48 232 168 104 40 224 160 96 32 216 152 88 24 208 144 80 16 200 136 72 8 192 128 64 0 bind = 255 191 127 63 247 183 119 55 239 175 111 47 231 167 103 39 223 159 95 31 215 151 87 23 207 143 79 15 199 135 71 7 \ 251 187 123 59 243 179 115 51 235 171 107 43 227 163 99 35 219 155 91 27 211 147 83 19 203 139 75 11 195 131 67 3 \ 254 190 126 62 246 182 118 54 238 174 110 46 230 166 102 38 222 158 94 30 214 150 86 22 206 142 78 14 198 134 70 6 \ 250 186 122 58 242 178 114 50 234 170 106 42 226 162 98 34 218 154 90 26 210 146 82 18 202 138 74 10 194 130 66 2 \ 253 189 125 61 245 181 117 53 237 173 109 45 229 165 101 37 221 157 93 29 213 149 85 21 205 141 77 13 197 133 69 5 \ 249 185 121 57 241 177 113 49 233 169 105 41 225 161 97 33 217 153 89 25 209 145 81 17 201 137 73 9 193 129 65 1 \ 252 188 124 60 244 180 116 52 236 172 108 44 228 164 100 36 220 156 92 28 212 148 84 20 204 140 76 12 196 132 68 4 \ 248 184 120 56 240 176 112 48 232 168 104 40 224 160 96 32 216 152 88 24 208 144 80 16 200 136 72 8 192 128 64 0 # max_active_compares = 64 command_add_redirect = 1 # useful with submit submit = echo 'pbind -b $BIND \$\$ >> pbind.out; $command' > dobmk; sh dobmk %ifndef %{OverRideCopies} # # To cause the command line to win for both base and peak, say: # # runspec --define OverRideCopies --rate n # # If you _don't_ say that, then the order of precedence is: # # named section (highest), about 6 lines down, peak for several benchmarks # command line # the line marked "header section default" just below # copies = 255 # header section default # 429.mcf=peak: copies=192 437.leslie3d=peak: copies=192 465.tonto=peak: copies=224 470.lbm=peak: copies = 32 # %endif #################### Compiler invocation #################################### # set according to how much verbosity you'd like today %define compiler_showversion 1 %define compiler_verbose 1 default=default=default=default: %ifdef %{compiler_showversion} CVERBOSE = -V CXXVERBOSE = -verbose=version FCVERBOSE = -V GCCVERBOSE = -v %endif %ifdef %{compiler_verbose} CVERBOSE = -V -\# CXXVERBOSE = -verbose=diags,version FCVERBOSE = -V -v GCCVERBOSE = -v %endif # Define STUDIO if Sun Studio is not not already in your path; # you must end the definition with a slash. # STUDIO=/mypath/ CC = $(STUDIO)cc -xjobs=$(XJOBS) $(CVERBOSE) -g CXX = $(STUDIO)CC -xjobs=$(XJOBS) $(CXXVERBOSE) -g0 -library=stlport4 FC = $(STUDIO)f90 -xjobs=$(XJOBS) $(FCVERBOSE) -g # Define GCCFSS if gcc and g++ are not already in your path; # you must end the definition with a slash. # GCCFSS=/mypath/ GCC = $(GCCFSS)gcc $(GCCVERBOSE) GXX = $(GCCFSS)g++ $(GCCVERBOSE) #################### Base Portability Flags: Sun Studio ############### 400.perlbench=default: CPORTABILITY = -DSPEC_CPU_SOLARIS_SPARC 403.gcc=base: CPORTABILITY = -DSPEC_CPU_SOLARIS 462.libquantum=base: PORTABILITY = -DSPEC_CPU_SOLARIS 483.xalancbmk=default: PORTABILITY = -DSPEC_CPU_SOLARIS #################### Peak Portability Flags ################### # Same as base, except: # - gccfss doesn't need anything for 403.gcc # - 462.libquantum gccfss needs an additional flag #not for gccfss 403.gcc=peak: #not for gccfss CPORTABILITY = -DSPEC_CPU_SOLARIS 462.libquantum=peak: PORTABILITY = -DSPEC_CPU_SOLARIS -DSPEC_CPU_NEED_COMPLEX_I #################### Baseline Int Flags ######################### int=base: feedback = 0 OPTIMIZE = -fast -xipo=2 -xpagesize=4M -xprefetch=no%auto EXTRA_LDFLAGS = -M /usr/lib/ld/map.bssalign COPTIMIZE = -xalias_level=std CXXOPTIMIZE = -xdepend -xalias_level=compatible #################### Peak Int Flags ############################ # Default peak: # By convention: use "OPTIMIZE", "COPTIMIZE", "CXXOPTIMIZE" for default peak # If you need to remove something from these, then redefine it on the benchmark. # To add something: use "EXTRA_OPTIMIZE", "EXTRA_LIBS" int=peak: OPTIMIZE = -fast -xpagesize=4M -xprefetch=no%auto EXTRA_LDFLAGS = -M /usr/lib/ld/map.bssalign CXXOPTIMIZE = -xdepend -xalias_level=compatible #### Benchmark-specific peak: 400.perlbench=peak: EXTRA_OPTIMIZE = -xalias_level=std -xipo=2 -Xc -xrestrict EXTRA_LIBS = -lfast 401.bzip2=peak: OPTIMIZE = -fast -xpagesize=4M EXTRA_OPTIMIZE = -xalias_level=strong 403.gcc=peak=default=default: # note that gccfss doesn't need portability flags; if changing # compilers, fix the portability seciton accordingly CC = $(GCC) EXTRA_OPTIMIZE = -xipo=2 -xalias_level=std EXTRA_LDFLAGS = -Wl,-M,/usr/lib/ld/map.bssalign 429.mcf=peak: #OPTIMIZE = -fast -xpagesize=256M -xprefetch=no%auto OPTIMIZE = -fast -xprefetch=no%auto EXTRA_OPTIMIZE = -xipo=2 -xrestrict -xalias_level=std EXTRA_LIBS = -lfast feedback = 0 445.gobmk=peak: EXTRA_OPTIMIZE = -xalias_level=std -xrestrict 456.hmmer=peak=default=default: CC = $(GCC) OPTIMIZE = -fast -xpagesize=4M EXTRA_OPTIMIZE = -xipo=2 -xalias_level=std EXTRA_LDFLAGS = -Wl,-M,/usr/lib/ld/map.bssalign 458.sjeng=peak: EXTRA_OPTIMIZE = -xipo=2 462.libquantum=peak: # note that gccfss portability flags differ from Studio; # if changing compilers, fix the portability seciton accordingly CC = $(GCC) OPTIMIZE = -fast EXTRA_OPTIMIZE = -xipo=2 EXTRA_LDFLAGS = -Wl,-M,/usr/lib/ld/map.bssalign feedback = 0 464.h264ref=peak: EXTRA_OPTIMIZE = -xipo=2 -xalias_level=std EXTRA_LIBS = 471.omnetpp=peak=default=default: CXX = $(GXX) OPTIMIZE = -fast -xpagesize=4M CXXOPTIMIZE = EXTRA_OPTIMIZE = -xipo=2 -xalias_level=std EXTRA_LDFLAGS = -Wl,-M,/usr/lib/ld/map.bssalign 473.astar=peak: OPTIMIZE = -fast -xpagesize_heap=4M -xpagesize_stack=64K -xprefetch=no%auto EXTRA_OPTIMIZE = -xipo=2 -xarch=v8plusb EXTRA_LIBS = -lfast -lbsdmalloc 483.xalancbmk=peak: EXTRA_OPTIMIZE = -xipo=2 EXTRA_LIBS = -lfast feedback = 0 #################### Baseline Fp Flags ######################### fp=base: feedback = 0 OPTIMIZE = -fast -xipo=2 -xpagesize=4M -xprefetch_level=2 EXTRA_LDFLAGS = -M /usr/lib/ld/map.bssalign FOPTIMIZE = COPTIMIZE = -xalias_level=std -xprefetch_level=3 -xprefetch_auto_type=indirect_array_access CXXOPTIMIZE = -xdepend -xalias_level=compatible #################### Peak FP Flags ############################ fp=peak: # By convention: use "OPTIMIZE", "CXXOPTIMIZE" for default peak # Use "EXTRA_OPTIMIZE", "EXTRA_LIBS" for benchmark-specific peak OPTIMIZE = -fast -xpagesize=4M EXTRA_LDFLAGS = -M /usr/lib/ld/map.bssalign CXXOPTIMIZE = -xdepend -xalias_level=compatible 410.bwaves=peak: EXTRA_OPTIMIZE = basepeak = 1 416.gamess=peak: EXTRA_OPTIMIZE = -xlinkopt=2 433.milc=peak: EXTRA_OPTIMIZE = -xipo=2 -xprefetch_level=2 -xprefetch_auto_type=indirect_array_access -xalias_level=std -fsimple=1 434.zeusmp=peak: EXTRA_OPTIMIZE = -xipo=1 -qoption cg -Qeps:enabled=1,-Qeps:ws=8 EXTRA_LIBS = -lmopt feedback = 0 435.gromacs=peak: EXTRA_OPTIMIZE = -xipo=1 -xinline= -xarch=generic -xchip=generic -fsimple=0 436.cactusADM=peak: EXTRA_OPTIMIZE = -xipo=2 -fsimple=1 -xlinkopt=2 437.leslie3d=peak: OPTIMIZE = -fast -xpagesize_heap=4M -xpagesize_stack=64K EXTRA_OPTIMIZE = -xprefetch_level=3 -xprefetch=latx:1.6 -qoption cg -Qlp=1-fa=0-fl=1-av=448-t=4 feedback = 0 444.namd=peak: EXTRA_OPTIMIZE = -xalias_level=compatible -xprefetch_level=1 -xlinkopt=2 447.dealII=peak: CXX=$(GXX) CXXOPTIMIZE = -xdepend EXTRA_OPTIMIZE = -xipo=2 -xrestrict -xalias_level=std EXTRA_LDFLAGS = -Wl,-M,/usr/lib/ld/map.bssalign 450.soplex=peak: EXTRA_OPTIMIZE = -xipo=2 -xprefetch_level=2 -fsimple=0 -xrestrict -xdepend -xalias_level=compatible -xprefetch_auto_type=indirect_array_access -Qoption cg -Qlp-ol=1-it=3-imb=1 -Qoption iropt -Apf:pdl=3 453.povray=peak: OPTIMIZE = -fast -xpagesize=64K EXTRA_OPTIMIZE = -xipo=2 -xrestrict -xlinkopt=2 EXTRA_LDFLAGS = 454.calculix=peak: EXTRA_OPTIMIZE = -xipo=2 -xvector -xprefetch_level=1 feedback = 0 459.GemsFDTD=peak: EXTRA_OPTIMIZE = -fsimple=1 feedback = 0 465.tonto=peak: EXTRA_OPTIMIZE = -xipo=2 feedback = 0 EXTRA_LIBS = -lfast 470.lbm=peak: #basepeak = 1 EXTRA_OPTIMIZE = -xprefetch_level=3 -xipo=2 -xrestrict 481.wrf=peak: EXTRA_OPTIMIZE = -xlinkopt=2 482.sphinx3=peak: EXTRA_OPTIMIZE = -xinline= -xprefetch_level=2 -Wc,-Qlp-ol=1 -xrestrict -xalias_level=strong -fsimple=1 -xlinkopt=2 EXTRA_LIBS = -lfast ###################### Profile Feedback ################################# # # By default, turns on feedback for everything; turn it off where desired by # using "feedback = 0" # default=default=default=default: fdo_pre0 = rm -rf ./feedback.profile ./SunWS_cache PASS1_CFLAGS = -xprofile=collect:./feedback PASS1_CXXFLAGS = -xprofile=collect:./feedback PASS1_FFLAGS = -xprofile=collect:./feedback PASS1_LDFLAGS = -xprofile=collect:./feedback PASS2_CFLAGS = -xprofile=use:./feedback PASS2_CXXFLAGS = -xprofile=use:./feedback PASS2_FFLAGS = -xprofile=use:./feedback PASS2_LDFLAGS = -xprofile=use:./feedback ########################## Testbed ################################# #include: SUT.inc # ----- Begin inclusion of 'SUT.inc' ############################################################################ default: hw_model = Sun SPARC Enterprise T5440 hw_vendor = Sun Microsystems test_sponsor = Sun Microsystems license_num = 6 # hw_avail = Oct-2008 hw_cpu_mhz = 1414 hw_cpu_name = UltraSPARC T2 Plus hw_disk000 = 975 GB RAID 5 using Sun StoreEdge hw_disk001 = 6140 with 12x 300 GB 10K RPM disks hw_disk002 = 2 Gbps Fibre Channel hw_fpu = Integrated hw_memory = 256 GB (64 x 4 GB) hw_nchips = 4 hw_ncores = 32 hw_ncoresperchip = 8 hw_ncpuorder = 1 to 4 chips hw_nthreadspercore = 8 hw_ocache = None hw_other = None hw_pcache = 16 KB I + 8 KB D on chip per core hw_scache = 4 MB I+D on chip per chip hw_tcache = None sw_avail = Jul-2008 sw_base_ptrsize = 32-bit sw_compiler000 = Sun Studio 12 and gccfss V4.2.0 sw_compiler001 = (see additional detail below) sw_file = ufs sw_os = Solaris 10 5/08 + patch 137111-03 sw_other = None sw_peak_ptrsize = 32-bit sw_state = Default tester = Sun Microsystems notes_comp_000 = notes_comp_005 = Sun Studio compiler patches are available at notes_comp_010 = http://developers.sun.com/sunstudio/downloads/patches/ss12_patches.jsp notes_comp_015 = The tested configuration included patch 124867-02, 124861-04, notes_comp_020 = 124863-01, 127000-01 notes_comp_025 = notes_comp_030 = Peak also uses "GCC for SPARC Systems", which combines gcc notes_comp_035 = with the Sun Code Generator for SPARC systems. It is invoked notes_comp_040 = as "gcc", and accepts source code compatible with GCC 4.2. notes_comp_045 = For more information, including support, see notes_comp_050 = http://cooltools.sunsource.net/gcc/ notes_os_shell_000 = notes_os_shell_005 = ulimit -s 131072 was used to allow the stack to grow notes_os_shell_010 = up to 131072 KB (aka 128 MB). Note that saying "131072" notes_os_shell_015 = is preferable to "unlimited", because there is a tradeoff notes_os_shell_020 = between space for the stack vs. space for the heap. notes_os_shell_025 = notes_os_shell_030 = ulimit -n 1300, set the open file limit notes_os_sys_000 = notes_os_sys_005 = /etc/system parameters notes_os_sys_010 = autoup=600 notes_os_sys_015 = Causes pages older than the listed number of seconds to notes_os_sys_020 = be written by fsflush. notes_os_sys_025 = bufhwm=3000 notes_os_sys_030 = Memory byte limit for caching I/O buffers notes_os_sys_035 = segmap_percent=1 notes_os_sys_040 = Set maximum percent memory for file system cache notes_os_sys_045 = tune_t_fsflushr=10 notes_os_sys_050 = Controls how many seconds elapse between runs of the notes_os_sys_055 = page flush daemon, fsflush. notes_os_sys_060 = tsb_rss_factor=128 notes_os_sys_065 = Suggests that the the size of the TSB (Translation Storage Buffer) notes_os_sys_070 = may be increased if it is more than 25% (128/512) full. Doing so notes_os_sys_075 = may reduce TSB traps, at the cost of additional kernel memory. notes_os_sys_080 = notes_os_sys_085 = The "webconsole" service was turned off using notes_os_sys_090 = svcadm disable webconsole notes_os_sys_095 = notes_os_sys_100 = The system had 409 GB of swap space. # ---- End inclusion of '/export/home/cpu2006-1.1/config/SUT.inc' # The following section was added automatically, and contains settings that # did not appear in the original configuration file, but were added to the # raw file after the run. default: notes_submit_000 = notes_submit_005 = The config file option 'submit' was used. Processes were notes_submit_010 = bound to cores using "submit" and "pbind". notes_submit_015 = A processor set was created using notes_submit_020 = psrset -c 1-255 notes_submit_025 = and the runspec process was placed into the set using notes_submit_030 = psrset -e 1 notes_plat_000 = notes_plat_005 =This result is measured on a Sun SPARC Enterprise T5440 Server. notes_plat_010 =Note that the Sun SPARC Enterprise T5440 and Fujitsu SPARC Enterprise notes_plat_015 =T5440 are electrically equivalent. notes_plat_020 =