![]() |
ORB5
v4.9.4
|
How to compile and run the code.
TLDR:
tools/make_configs/$(SITE).inc, where $(SITE) is defined in Makefile.inc. If it is not the case, please refer to Makefiles.The list of required modules should be specified in your specific tools/make_configs/$(SITE).inc header.
ORB5 uses futils and SPClibs libraries. They are included in the library directory and can be installed with the command:
The default install location is specified in tools/make_configs/$(SITE).inc and can be overridden with:
The command to compile ORB5 using default options is simply:
If libraries are installed in a non-standard location, use:
Options can be tuned using for instance:
or:
Available options are:
DEBUG: Compile with debug flagsOPENMP: Compile with OpenMP flagsPROFILE: Compile with profiler flagsThe resulting binary can be found in $BINDIR (bin/ by default):
Each make creates/updates the binary with a name containing the current git version and the options used. This explicit binary is copied to a shorter named binary orb5 or orb5_dbg so that job scripts can use a specific binary or the last generated one.
Separate corresponding object directories are used so that you can switch between versions or options without recompiling from scratch.
The current object directory can be deleted using:
All object directories can be deleted using:
ORB5's executable takes as optional argument an input file name. If this file is not found (or if the argument is absent), the code will look for a file named input in the current location.
A typical command for running the code could be:
where standard output and standard error are redirected to separate files.
The program argument --dry-run allows to read an input file and stop after the input consistency checks.
The suboption --dry-run:ntasks=N allows to run with N virtual tasks to by-pass resource allocation.
For instance, you can run locally (without srun):
If your binary has been built with OpenMP, you can specify the number of threads per MPI task at run time using the input parameter nthreads in the namelist /PARALLEL/.
nthreads is given by the environment variable OMP_NUM_THREADS if set, and 1 otherwise.