<?xml version="1.0"?>
<!DOCTYPE flagsdescription SYSTEM "http://www.spec.org/dtd/cpuflags1.dtd">
<flagsdescription>

<filename>FSC-SLES10-Platform.xml</filename>

<title>SPEC CPU2006 Flag Description for the Intel(R) C++ and Fortran Compiler 11.0
for IA32 and Intel 64 applications </title>
<header>
<![CDATA[
<p style="text-align: left; color: red; font-size: larger; background-color: black">
 Copyright &copy; 2006 Intel Corporation.  All Rights Reserved.</p>
]]>
</header>

<platform_settings>
   <![CDATA[ 
	<p>One or more of the following settings may have been set.
        If so, the corresponding notes sections of the report will say so;
        and you can read below to find out more about what these settings mean.
        </p>

	<p><b><font size="4">Environment Variables</font></b></p>

      <p><b>OMP_NUM_THREADS</b></p>
      <p>This Environment Variable
      sets the maximum number of threads to use for OpenMP* parallel regions
      if no other value is specified in the application.
      This environment variable applies to both -openmp and -parallel
      (Linux and Mac OS X) or /Qopenmp and /Qparallel (Windows).
      Example syntax on a Linux system with 8 cores:<br>
      export OMP_NUM_THREADS=8<br>
      Default is the number of cores visible to the OS.</p>

	<p><b>KMP_STACKSIZE </b></p>
	<p>This Environment Variable specifies the stack size
	to be allocated for each thread. 
	</p>

	<p><b>KMP_AFFINITY = &lt; physical | logical &gt;,starting-core-id
	</b></p>
	<p>This Environment Variable specifies the static mapping
	of user threads to physical cores, for example, if you have a system 
	configured with 8 cores, OMP_NUM_THREADS=8 and KMP_AFFINITY=physical,2. 
	Thread 0 will mapped to core 2, thread 1 will be mapped to core 3,
	and so on in a round-robin fashion.   
	</p>

	<p><b><font size="4">BIOS Settings</font></b></p>

	<p><b>Hardware Prefetch:</b></p> 
	<p>This BIOS option allows the enabling/disabling of a processor
	mechanism to prefetch data into the cache according to
	a pattern-recognition algorithm.
	</p>
	<p>                
	In some cases, setting this option to Disabled may improve
	performance. Users should only disable this option 
	after performing application benchmarking to verify improved
	performance in their environment.
	</p>

	<p><b>Adjacent Sector Prefetch:</b></p> 
	<p>This BIOS option allows the enabling/disabling of a processor
	mechanism to fetch the adjacent cache line within an 128-byte
	sector that contains 
	the data needed due to a cache line miss.
	</p>
	<p>                
	In some cases, setting this option to Disabled may improve
	performance. Users should only disable this option 
	after performing application benchmarking to verify improved
	performance in their environment.
	</p>

      <p><b>Snoop Filter Enabled/Disabled:</b></p>
      <p>
      The Snoop Filter is designed to reduce system bus utilization
      coming from cache misses. On the Intel 5000X and 5400 chipset,
      it is built as a cache structure able to minimize unnecessary
      snoop traffic.<br>
      When enabled, it can lead to significant memory performance 
      improvements for several workstation applications
      on suitable memory configurations.
      </p>

      <p><b>Enhanced Speedstep Technology Enabled/Disabled:</b></p>
      <p>
      Disabling Enhanced Speedstep Technology results in running all processors
      in maximal power/performance state.<br>
      Default is Enabled.
      </p>

      <p><b>C1 Enhanced Mode Enabled/Disabled:</b></p>
      <p>
      The C1 Enhanced Mode reduces power consunmption of CPUs
      in Halt state.
      </p>


      <p><b><font size="4">Linux commands</font></b></p>

      <p><b>ulimit -s &lt; n | unlimited &gt;</b></p>
      <p>This Linux command (a bash builtin command)
      sets the stack size to <b>n</b> kbytes, or <b>unlimited</b>
      to allow the stack size to grow without limit.
      </p>

	<p><b>/usr/bin/taskset [options] [mask] [pid | command [arg] ... ]
	</b></p>
	<p>This Linux command is used to set or retrieve the CPU affinity
	of a running process given its PID or to launch a new COMMAND
	with a given CPU affinity.<br>
	The option <b>-c proclist</b> or <b>--cpu-list proclist</b>
	specifies a numerical list of processors to be used.
	The list may contain multiple items, separated by comma,
        and ranges. For example <b>-c 0,5,7,9-11</b>.<br>
	Example: <b>/usr/bin/taskset -c 3 $command</b>
        executes $command on CPU 3.
	</p>

	<p><b><font size="4">SPEC config file feature submit</font></b></p>

	<p><b>submit = /usr/bin/taskset -c $SPECCOPYNUM $command </b></p>
	<p>When running multiple copies of benchmarks, the SPEC
	config file feature <b>submit</b> is sometimes used
	to cause individual jobs to be bound to specific processors.
	This specific submit command is used for Linux.<br>
	The description of the elements of the command are:
	<ul>
	   <li><b>$command</b><br>
	      Program to be started.
	      In this case, the benchmark instance to be started.
	   </li>
	   <li><b>$SPECCOPYNUM</b><br>
	      Number of the benchmark instance to be started.<br>
	      0 for the first instance, 1 for the second, and so on.
	   </li>
	   <li><b>/usr/bin/taskset</b><br>
	      The Linux command taskset described above.
	   </li>
	</ul>
	</p>

   ]]> 
</platform_settings>

</flagsdescription>

