HPC
HPC

| HPC and Data for Lattice QCD

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