GLOBAL
Section with general information regarding which kind of simulation to perform an parameters for the whole PROGRAM [Edit on GitHub]
Keywords
Keyword descriptions
- ALLTOALL_SGL: logical = F
Lone keyword:
T
Usage: ALLTOALL_SGL YES
All-to-all communication (FFT) should use single precision [Edit on GitHub]
- BLACS_GRID: enum = SQUARE
Usage: BLACS_GRID SQUARE
Valid values:
SQUARE
Distribution by matrix blocksROW
Distribution by matrix rowsCOLUMN
Distribution by matrix columns
how to distribute the processors on the 2d grid needed by BLACS (and thus SCALAPACK) [Edit on GitHub]
- BLACS_REPEATABLE: logical = F
Lone keyword:
T
Usage: BLACS_REPEATABLE
Use a topology for BLACS collectives that is guaranteed to be repeatable on homogeneous architectures [Edit on GitHub]
- CALLGRAPH: enum = NONE
Lone keyword:
MASTER
Usage: CALLGRAPH {NONE|MASTER|ALL}
Valid values:
NONE
No callgraph gets writtenMASTER
Only the master process writes his callgraphALL
All processes write their callgraph (into a separate files).
At the end of the run write a callgraph to file, which contains detailed timing informations. This callgraph can be viewed e.g. with the open-source program kcachegrind. [Edit on GitHub]
- CALLGRAPH_FILE_NAME: string
Usage: CALLGRAPH_FILE_NAME {filename}
Name of the callgraph file, which is written at the end of the run. If not specified the project name will be used as filename. [Edit on GitHub]
- ECHO_ALL_HOSTS: logical = F
Lone keyword:
T
Usage: ECHO_ALL_HOSTS NO
Echo a list of hostname and pid for all MPI processes. [Edit on GitHub]
- ECHO_INPUT: logical = F
Lone keyword:
T
Usage: ECHO_INPUT NO
If the input should be echoed to the output with all the defaults made explicit [Edit on GitHub]
- ELPA_KERNEL: enum = AUTO
Valid values:
AUTO
Automatically selected kernelGENERIC
Generic kernelGENERIC_SIMPLE
Simplified generic kernelBGP
Kernel optimized for IBM BGPBGQ
Kernel optimized for IBM BGQSSE
Kernel optimized for x86_64/SSESSE_BLOCK2
Kernel optimized for x86_64/SSE (block=2)SSE_BLOCK4
Kernel optimized for x86_64/SSE (block=4)SSE_BLOCK6
Kernel optimized for x86_64/SSE (block=6)AVX_BLOCK2
Kernel optimized for Intel AVX (block=2)AVX_BLOCK4
Kernel optimized for Intel AVX (block=4)AVX_BLOCK6
Kernel optimized for Intel AVX (block=6)AVX2_BLOCK2
Kernel optimized for Intel AVX2 (block=2)AVX2_BLOCK4
Kernel optimized for Intel AVX2 (block=4)AVX2_BLOCK6
Kernel optimized for Intel AVX2 (block=6)AVX512_BLOCK2
Kernel optimized for Intel AVX-512 (block=2)AVX512_BLOCK4
Kernel optimized for Intel AVX-512 (block=4)AVX512_BLOCK6
Kernel optimized for Intel AVX-512 (block=6)NVIDIA_GPU
Kernel targeting Nvidia GPUsAMD_GPU
Kernel targeting AMD GPUsINTEL_GPU
Kernel targeting Intel GPUs
Specifies the kernel to be used when ELPA is in use [Edit on GitHub]
- ELPA_NEIGVEC_MIN: integer = 16
Usage: ELPA_NEIGVEC_MIN 32
Minimum number of eigenvectors for the use of the eigensolver from the ELPA library. The eigensolver from the ScaLAPACK library is used as fallback for all smaller cases [Edit on GitHub]
- ELPA_QR: logical = F
Lone keyword:
T
Usage: ELPA_QR
For ELPA, enable a blocked QR step when reducing the input matrix to banded form in preparation for the actual diagonalization step. See implementation paper for more details. Requires ELPA version 201505 or newer, automatically deactivated otherwise. If true, QR is activated only when the the size of the diagonalized matrix is suitable. Print key PRINT_ELPA is useful in determining which matrices are suitable for QR. Might accelerate the diagonalization of suitable matrices. [Edit on GitHub]
- ELPA_QR_UNSAFE: logical = F
Lone keyword:
T
Usage: ELPA_QR
For ELPA, disable block size limitations when used together with ELPA_QR. Keyword relevant only with ELPA versions 201605 or newer. Use keyword with caution, as it might result in wrong eigenvalues with some matrix orders/block sizes when the number of MPI processes is varied. If the print key PRINT_ELPA is active the validity of the eigenvalues is checked against values calculated without ELPA QR. [Edit on GitHub]
- ENABLE_MPI_IO: logical = T
Lone keyword:
T
Usage: ENABLE_MPI_IO FALSE
Enable MPI parallelization for all supported I/O routines Currently, only cube file writer/reader routines use MPI I/O. Disabling this flag might speed up calculations dominated by I/O. [Edit on GitHub]
- EPS_CHECK_DIAG: real = -1.00000000E+000
Usage: EPS_CHECK_DIAG 1.0E-14
Check that the orthonormality of the eigenvectors after a diagonalization fulfills the specified numerical accuracy. A negative threshold value disables the check. [Edit on GitHub]
- EXTENDED_FFT_LENGTHS: logical = F
Lone keyword:
T
Usage: EXTENDED_FFT_LENGTHS
Use fft library specific values for the allows number of points in FFTs. The default is to use the internal FFT lengths. For external fft libraries this may create an error at the external library level, because the length provided by cp2k is not supported by the external library. In this case switch on this keyword to obtain, with certain fft libraries, lengths matching the external fft library lengths, or larger allowed grids, or grids that more precisely match a given cutoff. IMPORTANT NOTE: in this case, the actual grids used in CP2K depends on the FFT library. A change of FFT library must therefore be considered equivalent to a change of basis, which implies a change of total energy. [Edit on GitHub]
- FFTW_PLAN_TYPE: enum = ESTIMATE
Usage: FFTW_PLAN_TYPE PATIENT
Valid values:
ESTIMATE
Quick estimate, no runtime measurements.MEASURE
Quick measurement, somewhat faster FFTs.PATIENT
Measurements trying a wider range of possibilities.EXHAUSTIVE
Measurements trying all possibilities - use with caution.
References: Frigo2005
FFTW can have improved performance if it is allowed to plan with explicit measurements which strategy is best for a given FFT. While a plan based on measurements is generally faster, differences in machine load will lead to different plans for the same input file, and thus numerics for the FFTs will be slightly different from run to run. PATIENT planning is recommended for long ab initio MD runs. [Edit on GitHub]
- FFTW_WISDOM_FILE_NAME: string = /etc/fftw/wisdom
Usage: FFTW_WISDOM_FILE_NAME wisdom.dat
The name of the file that contains wisdom (pre-planned FFTs) for use with FFTW3. Using wisdom can significantly speed up the FFTs (see the FFTW homepage for details). Note that wisdom is not transferable between different computer (architectures). Wisdom can be generated using the fftw-wisdom tool that is part of the fftw installation. cp2k/tools/cp2k-wisdom is a script that contains some additional info, and can help to generate a useful default for /etc/fftw/wisdom or particular values for a given simulation. [Edit on GitHub]
- FFT_POOL_SCRATCH_LIMIT: integer = 15
Usage: FFT_POOL_SCRATCH_LIMIT {INTEGER}
Limits the memory usage of the FFT scratch pool, potentially reducing efficiency a bit [Edit on GitHub]
- FLUSH_SHOULD_FLUSH: logical = T
Lone keyword:
T
Usage: FLUSH_SHOULD_FLUSH
Flush output regularly, enabling this option might degrade performance significantly on certain machines. [Edit on GitHub]
- OUTPUT_FILE_NAME: string
Usage: OUTPUT_FILE_NAME {filename}
Name of the output file. Relevant only if automatically started (through farming for example). If empty uses the project name as basis for it. [Edit on GitHub]
- PREFERRED_DGEMM_LIBRARY: enum = BLAS
Usage: PREFERRED_DGEMM_LIBRARY SPLA
Valid values:
SPLA
SPLA libraryBLAS
BLAS library
Specifies the DGEMM library to be used. If not available, the BLAS routine is used. This keyword affects some DGEMM calls in the WFC code and turns on their acceleration with SpLA. This keyword affects only local DGEMM calls, not the calls to PDGEMM (see keyword FM%TYPE_OF_MATRIX_MULTIPLICATION). [Edit on GitHub]
- PREFERRED_DIAG_LIBRARY: enum = ELPA
Usage: PREFERRED_DIAG_LIBRARY ELPA
Valid values:
ELPA
ELPA librarySCALAPACK
ScaLAPACK librarySL
ScaLAPACK library (shorthand)CUSOLVER
cuSOLVER (CUDA GPU library)
Specifies the diagonalization library to be used. If not available, the ScaLAPACK library is used [Edit on GitHub]
- PREFERRED_FFT_LIBRARY: enum = FFTW3
Usage: PREFERRED_FFT_LIBRARY FFTW3
Valid values:
FFTSG
Stefan Goedecker’s FFT (FFTSG), always available, will be used in case a FFT library is specified and not available.FFTW3
a fast portable FFT library. Recommended. See also the FFTW_PLAN_TYPE, and FFTW_WISDOM_FILE_NAME keywords.FFTW
Same as FFTW3 (for compatibility with CP2K 2.3)
References: Frigo2005
Specifies the FFT library which should be preferred. If it is not available, use FFTW3 if this is linked in, if FFTW3 is not available use FFTSG. Improved performance with FFTW3 can be obtained specifying a proper value for FFTW_PLAN_TYPE. Contrary to earlier CP2K versions, all libraries will result in the same grids, i.e. the subset of grids which all FFT libraries can transform. See EXTENDED_FFT_LENGTHS if larger FFTs or grids that more precisely match a given cutoff are needed, or older results need to be reproduced. FFTW3 is often (close to) optimal, and well tested with CP2K. [Edit on GitHub]
- PRINT_LEVEL: enum = MEDIUM
Aliases: IOLEVEL
Usage: PRINT_LEVEL HIGH
Valid values:
SILENT
Almost no outputLOW
Little outputMEDIUM
Quite some outputHIGH
Lots of outputDEBUG
Everything is written out, useful for debugging purposes only
How much output is written out. [Edit on GitHub]
- PROGRAM_NAME: enum = CP2K
Aliases: PROGRAM
Usage: PROGRAM_NAME {STRING}
Valid values:
ATOM
Runs single atom calculationsFARMING
Runs N independent jobs in a single runTEST
Do some benchmarking and testingCP2K
Runs one of the CP2K packageOPTIMIZE_INPUT
A tool to optimize parameters in a CP2K inputOPTIMIZE_BASIS
A tool to create a MOLOPT or ADMM basis for a given set of training structuresTMC
Runs Tree Monte Carlo algorithm using additional input file(s)MC_ANALYSIS
Runs (Tree) Monte Carlo trajectory file analysisSWARM
Runs swarm based calculation
Which program should be run [Edit on GitHub]
- PROJECT_NAME: string = PROJECT
Aliases: PROJECT
Usage: PROJECT_NAME {STRING}
Name of the project (used to build the name of the trajectory, and other files generated by the program) [Edit on GitHub]
- RUN_TYPE: enum = ENERGY_FORCE
Usage: RUN_TYPE MD
Valid values:
NONE
Perform no tasksENERGY
Computes energyENERGY_FORCE
Computes energy and forcesMD
Molecular DynamicsGEO_OPT
Geometry OptimizationMC
Monte CarloSPECTRA
Computes absorption SpectraDEBUG
Performs a Debug analysisBSSE
Basis set superposition errorLR
Linear ResponsePINT
Path integralVIBRATIONAL_ANALYSIS
Vibrational analysisBAND
Band methodsCELL_OPT
Cell optimization. Both cell vectors and atomic positions are optimised.WFN_OPT
Alias for ENERGYWAVEFUNCTION_OPTIMIZATION
Alias for ENERGYMOLECULAR_DYNAMICS
Alias for MDGEOMETRY_OPTIMIZATION
Alias for GEO_OPTMONTECARLO
Alias for MCELECTRONIC_SPECTRA
Alias for SPECTRALINEAR_RESPONSE
Alias for LRNORMAL_MODES
Alias for VIBRATIONAL_ANALYSISRT_PROPAGATION
Real Time propagation run (fixed ionic positions)EHRENFEST_DYN
Ehrenfest dynamics (using real time propagation of the wavefunction)TAMC
Temperature Accelerated Monte Carlo (TAMC)TMC
Tree Monte Carlo (TMC), a pre-sampling MC algorithmDRIVER
i-PI driver modeNEGF
Non-equilibrium Green’s function method
References: Ceriotti2014, Schonherr2014
Type of run that you want to perform Geometry optimization, md, montecarlo,… [Edit on GitHub]
- SAVE_MEM: logical = F
Lone keyword:
T
Usage: SAVE_MEM
Some sections of the input structure are deallocated when not needed, and reallocated only when used. This reduces the required maximum memory [Edit on GitHub]
- SEED: integer = 2000
Usage: SEED {INTEGER} .. {INTEGER}
Initial seed for the global (pseudo)random number generator to create a stream of normally Gaussian distributed random numbers. Exactly 1 or 6 positive integer values are expected. A single value is replicated to fill up the full seed array with 6 numbers. [Edit on GitHub]
- TRACE: logical = F
Lone keyword:
T
Usage: TRACE
If a debug trace of the execution of the program should be written [Edit on GitHub]
- TRACE_MASTER: logical = T
Lone keyword:
T
Usage: TRACE_MASTER
For parallel TRACEd runs: only the master node writes output. [Edit on GitHub]
- TRACE_MAX: integer = 2147483647
Usage: TRACE_MAX 100
Limit the total number a given subroutine is printed in the trace. Accounting is not influenced. [Edit on GitHub]
- TRACE_ROUTINES: string
Usage: TRACE_ROUTINES {routine_name1} {routine_name2} …
A list of routines to trace. If left empty all routines are traced. Accounting is not influenced. [Edit on GitHub]
- WALLTIME: string
Aliases: WALLTI
Usage: WALLTIME {real} or {HH:MM:SS}
Maximum execution time for this run. Time in seconds or in HH:MM:SS. [Edit on GitHub]