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