GPW calculations with hybrid functionals
manuel... at gmail.com
Thu Dec 3 11:23:54 UTC 2009
> I would like to ask your help in understanding if the calculation is
> setup properly. I have no previous experience in the use of hybrid
> functionals and any suggestion would be very helpful.
The input seems to be fine.
> I find that this calculation takes (roughly) 1 hour per ionic step,
> using 128 CPUs on a IBM SP6, and I'd like to know if this sounds
> reasonable to you or not. Later, I'd like to increase the size of the
> basis set, include diffuse functions, since I have an anion, and
> experiment a bit with different hybrids, so I'd be happy to know if
> there is any way I can reduce the computation time (other than
> increasing the number of processors).
MOLOPT basis sets are very expensive when used together with HFX. If
you do not have a large supercomputer at hand I would suggest you go
for non-molecularly optimized basis sets. You can expect at least a
ten fold speed-up in that case.
> For example, to exploit the "Screen on an initial density matrix" can
> I use as restart file the restart file of the PBE calculation or do I
> have to do 1 iteration with the current setup and than use its restart
You can provide a converged PBE wave-function as a restart, because
this is typically an upper bound for the hybrid wave-function. Just
uncomment SCREEN_ON_INITIAL_P TRUE (dont forget to provide the wave-
function, otherwise you screen on the initial guess!)
> Among other things, I do not understand how to set the variable
> MAX_MEMORY. The machine I'm using has 128Gb of shared memory per node,
> where each node contains 32 processors. So I have up to 4x128 Gb of
> memory when asking for 128 processors. What is the rational for
> chosing the value of MAX_MEMORY? According to the online description
> of this variable, it "defines the maximum amount of memory [MB] to be
> consumed by the full HFX module". If I set it too small will the code
> dump to disk whatever doesn't fit in MAX_MEMORY thus slowing down the
MAX_MEMORY defines the total amount of memory that the HFX module can
use per MPI process. In your case, you have 128/32 =4 GB of memory per
process that can be consumed by the full cp2k program (and the OS). I
suggest you start with 2.5 GB for the HFX module (i.e. the rest of
cp2k has some 1 GB left). If you run out of memory, i.e. not all
integral fit into that amount, CP2K stops storing them and calculates
everything on the fly and the in-core steps become slower.
Alternatively you can also use disk storage, but this may slow down
the calculation, depending on the I/O capabilities of your hardware.
You can get an impression of how much memory the integrals need by
inspecting the HFX_MEM_INFO printouts in the output file.
More information about the CP2K-user