compile
HPC and Data for Lattice QCD
compile
Basic steps for compiling
Starting from a TAO source code "myprog.zzt" the following
steps are necessary to obtain an executable:
Compilation
rtc-try myprog[.zzt]
The extension ".zzt" is optional. An intermediate file
"myprog.rasm" and the assembly file "myprog.jasm"
will be generated.
For more information about compilation warnings and
incompatibilities between TAO100 and TAOmille, see TAO documentation.
Microcode generation
psk myprog[.jasm]
The extension ".jasm" is optional. An executable file
"myprog.jex" will be generated.
Using the linker
To generate microcode files suitable for linking execute
psk -e myprog[.jasm]
The generated output files with extension ".ao" can be used for building a library
aar cvr mylib.a myprog.ao
aranlib mylib.a
An final executable is generated by the following commands:
ald -o myprog.elf myprog.ao
elf2jex myprog.elf myprog.jex
Producing input for function simulator
In order to obtain a binary assembly file (.basm) which can be
executed by the functional simulator SF one has to
run execute
jasm myprog-xtc[.jasm]
to obtain the file
myprog.basm which can be simulated by SF. The extension ".jasm"
is optional.
Alternative compilation chains
Instead of the shaker "psk" one can use "flint" on the .basm file
to produce an executable, i.e.
rtc-try myprog[.zzt]
jasm myprog[.jasm]
flint myprog[.basm]
will generate an executable myprog-xtc.jex. This usually will have
a different scheduling of the micro-instructions and might be useful
for cross-checks when there are doubts about the correct behaviour of
"psk" or the hardware.
Note, however, that for jasm files produced by rtc, the efficiency of
the final executable from "flint" may be much lower than for the one
from "psk" (because the latter performs optimization suitable
post-optimizations).