<html>
<body>
<p>
<h2>Procedure to add Processor Binding to TIEGCM/TIMEGCM jobs run on NCAR IBM bluefire</h2>

<p>
This procedure can improve model performance by as much as 20%,
varying with the number of processors and nodes used.  See also 
<a href="http://www.cisl.ucar.edu/docs/bluefire/be_quickstart.html#binding">
  CISL Bluefire Quickstart Guide</a>

<!-- ---------------------------------------------------------------- -->
<hr>
<h4>Step 1:</h4>
In your ibm job file (e.g., $TGCMROOT/tiegcm1.9/scripts/tiegcm-ibm.job), 
replace this line:<br>

<pre>
  mpirun.lsf $execdir/$model < $namelist >&! $output || \
</pre>

with these two lines:

<pre>
  setenv TARGET_CPU_LIST "-1"
  mpirun.lsf /usr/local/bin/launch $execdir/$model < $namelist >&! $output || \
</pre>

Be sure to include the backslash at the end of the second line.<br>

<!-- ---------------------------------------------------------------- -->
<hr>
<h4>Step 2:</h4>
In the Makefile template (e.g., $TGCMROOT/tiegcm1.9/scripts/Makefile),
replace this line:<br>

<pre>
  LDFLAGS    += -bloadmap:loadmap -q64
</pre>

with these two lines:

<pre>
  LDFLAGS    += -bloadmap:loadmap -q64 $(OPTIM)
  LDFLAGS    += -bdatapsize:64K -bstackpsize:64K -btextpsize:64K
</pre>

<!-- ---------------------------------------------------------------- -->
<hr>
<h4>Notes:</h4>
<p>
The following files at both HAO and CISL have been modified for processor 
binding (models tiegcm1.9 and timegcm1-2dev7):<br>

<pre>
  $TGCMROOT/tiegcm1.9/scripts/tiegcm-ibm.job
  $TGCMROOT/tiegcm1.9/scripts/Makefile.job
</pre>

<pre>
  $TGCMROOT/timegcm1-2dev7/scripts/timegcm-ibm.job
  $TGCMROOT/timegcm1-2dev7/scripts/Makefile.job
</pre>

If your tiegcm1.9 or timegcm1-2dev7 job script allows
the default $utildir (i.e., "set utildir" is commented), then 
the job script, when submitted, will use the corresponding
Makefile above, so you will not have to change your Makefile.<br> 

<p>
If you change a Makefile in your *aix exec directory (i.e., one that
was already made by tgcm_config), you should rename it Makefile.new,
and add "-f Makefile.new" to the gmake command in your job script.

</body>
</html>