next up previous contents
Next: Run the program Up: QMC-MPP Previous: System requirements

Generate a program II

  To generate an executable program one uses make. Most of system dependent parameters and settings are collected in `Makedefault'. This file `Makedefault' (without `.extension´) and the file `Makeapp' are read by `Makefile' and are thus relevant. If changes are necessary because of a special system environment or hardware platform, a new file `Makedefault.<system>' should contain the changes. It has then to be copied to `Makedefault'. The same applies to the file(s) `Makeapp*' which has to be adapted to the syntax rules of `make'.

The most important make targets are dsgsahga for the surface and bhrgsahga for the volume, and for the generation of the input files of the lattice, the targets hrmgit, hrmphgit are available. All modules which belong to a target are combined into the full code via the macros in the makefile. They are processed by the stream editor `sed' to save memory and then compiled as a whole. A suggestion for unpacking and a very first compilation (for tcsh shell) is given below, see also file `INSTALL':

#tcsh-shell - commands for full new install of the 
#program package QIRM, version 3.0 below ~/qmc in the 
#SUN-Cluster of ITAP.  
#quick install (17MB free?): source INSTALL
#Install data also (80MB free?): Uncomment the line with #DATA below
#Oct. 2001 RB

unsetenv SOURCEDIR
setenv SOURCEDIR "/tmp"
ls -al $SOURCEDIR/qirm.3.tar.gz
cd
gunzip -c $SOURCEDIR/qirm.3.tar.gz | tar xvf -
#DATA 
#gunzip -c $SOURCEDIR/qirm_data.3.tar.gz | tar xvf -
cd qmc
unsetenv TMPDIR
setenv TMPDIR $HOME/qmc/TMP/tmp1
rm -f -r $TMPDIR
mkdir $TMPDIR
ln -s $HOME/qmc/TMP $HOME/qmc/TMP/tmp1/TMP
cp Makedefault.sun  Makedefault
make
cd TMP/tmp1
ls -al
echo "Try now: dsgsahga.exe < $HOME/qmc/hrmuster_io.020208.00.nl.txt"

After a successful compilation the binaries `tparoutu' and `choose' are available in the directory `qmc/bin' to assist in job control commands. However, the main file appears as the executable `dsgsahga.exe' representing the simulation program. It is explained in chapter 1.3 how to run a short test with it.

In the remaining part of this chapter the main make macros are discussed, which are important for performance analysis, for the controlling via batch and also for direct interaction through a command line. To generate the executable `dsgsahga.exe' e.g. the following command may be executed within the directory `qmc':

make MV=020208 SYS=00 EXE=TMP/tmp1 FAST=  \
APP=-eA IO=  CDIR=  VPP=hrvkppnlgs. dsgsahga

The meaning of the single macros is explained below. Thereby, the content of the file `Makedefault.t3e' is assumed to define system dependent default values in `Makedefault'.
MV: `MV=020208' defines the extent of the simulation cell: In the direction of the first primitive translation of the lattice of the nuclei it means twice (02) this translation, in the direction of the second primitive translation twice (02) again, and in the third direction which is perpendicular to both eight (08) times the lattice unit, i.e. eight layers. Default setting is `MV=020208', such that to compute a system with 16 layers `MV=020216' should be inserted.
SYS: `SYS=00' refers to a surface system and `SYS=01' refers to bulk. Thus, the target `dsgsahga' is necessarily connected with `SYS=00' and the target `bhrgsahga' with `SYS=01'. Default is `SYS=00' with target `dsgsahga'.
EXE: `EXE=TMP/tmp1' denotes that the executable, e.g. `dsgsahga.exe', is to be written into the directory `TMP/tmp1' which appropriately has been defined during the `make' process. [*] It is assumed in the makefile and in the job control cards that the system variable `TMPDIR' has been defined. In the normal case one would define a temporary work directory `/tmp/...' to associate with each interactive (command line) job and batch job an own working directory. All necessary links on input and output directories will then be automatically set.
FAST: `FAST= ' means no optimization at all in order to accelerate compilation. For production runs, however, the macro `FAST' has to be suitably adjusted in the file `Makedefault' e.g. in the way as it is generally fixed by default. If a debugger is used, the macro `FAST' can for instance be applied to set with `FAST=-g' a suitable compiler option together with suppressing optimization.
APP: `APP=-eA' transfers to the Fortran compiler the option `-eA' (,,enable Apprentice``) in order to analyse the performance whose output is stored to `qmc/APP' during a batch job. To link to the respective library the default `QMCdslink=-lapp' is set in the file `Makedefault'. The default value for `APP' generally is `APP= ', i.e. no performance analysis.
IO: `IO= ' denotes the (default) setting `stdin' as input source for the executable, e.g. starting from a command line and introducing input parameters via the keyboard or by ,,cut&paste``. For a batch job the setting `IO=b' is necessary.
CDIR: `CDIR= ' switches off the use of compiler directives (see above) in the modul `hrnaqd*' through the use of the file `hrnaqd.for' instead of the default `hrnaqd_cdir.for' file.
VPP: `VPP=hrvkppnlgs.' denotes utilizing the nonlocal version of the pseudopotential (PP) which is also default setting. A faster, of course less accurate, possibility of a local PP is available through `VPP=hrvkpplgs.' However, another job control card which regards the choice of suitably adapted different bulk parameters is necessary for the latter case, see e.g. a pattern as given by `muster.dsgsahga.1pe.l.job'.


next up previous contents
Next: Run the proram Up: QMC-MPP Previous: System requirements

Robert Bahnsen
1/28/2002