User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

faq:speedup [2015/01/16 16:23] (current)
oschuett adopted from a posting by Iain Bethune
Line 1: Line 1:
 +====== How can I speedup my calculations?​ ======
 +There are a couple of areas to consider when you are interested in performance,​ firstly the physics, and secondly, computational.
 +==== Physical parameters ====
 +  * choosing the cheapest representation of your system that gives correct results e.g. choosing an appropriate basis set (Gaussian), and also an appropriately sized plane-wave expansion (see [[howto:​converging_cutoff]] )
 +  * SCF settings - choosing an appropriate convergence threshold, and diagonalization algorithm (or use OT for non-metallic systems for much greater performance,​ with a good preconditioner) see [[howto:​static_calculation]] for some of the basics
 +==== Computational aspects ====
 +  * If you are running in parallel with MPI do some tests (on a shortened version of your problem) to determine how many CPU cores you can effectively use.  As a rule-of-thumb,​ you might expect reasonable scaling up to $n_\text{procs} \approx n_\text{atoms}$ for typical settings. ​ see [[:​performance]] and http://​​~ibethune/​files/​cp2k_cug2014.pdf for benchmark data.
 +  * Build the code with high compiler optimisation (e.g. ''​-O3''​) and an optimised BLAS/LAPACK library (e.g. MKL, GotoBLAS, ATLAS)
 +  * Build the code with the optional performance-critical libraries libsmm (in cp2k/​tools/​build_libsmm) and libgrid (cp2k/​tools/​autotune_grid).
 +Before going to far down any of these areas, take a look at the timing report which is printed at the end of your CP2K job output. ​ This will give you some information about which parts of the code are taking the most time, and therefore where to invest your time tweaking to get the best performance.
faq/speedup.txt ยท Last modified: 2015/01/16 16:23 by oschuett