parallization scheme

Asked by kuangchungwang on 2017-03-20

Hi,

using mpi, are there some tips to help determine how many cores are needed?

1. what are the relevant options ? e.g. Diag.ParallelOverK
2. How do we determine the number of k points? should we enable WriteKpoints option to know how many kpoints are being used? or there are simple ways to derive from the kgrid_Monkhorst_Pack?
e.g. the following k point= 10 * 128*1 ?
%block kgrid_Monkhorst_Pack
     10 0 0 0.0
      0 128 0 0.0
      0 0 1 0.0
%endblock kgrid_Monkhorst_Pack

Question information

Language:
English Edit question
Status:
Answered
For:
Siesta Edit question
Assignee:
No assignee Edit question
Last query:
2017-03-20
Last reply:
2017-03-22
Nick Papior (nickpapior) said : #1

Siesta defaults to parallelize over bands (orbitals), so typically you may use as many processors as needed. However, for performance reasons it may be adviced to limit your number of processors to the number of atoms, anything above will probably not increase throughput that much.

1. If you have a very small system with very many k-points, then Diag.ParallelOverK may be a good option. Check the Diag.* flags in the manual to see which means what and what may apply to your use-case.

2. Siesta prints out explicitly how many k-points it uses. But you are correct that it it is the determinant of the Monkhorst-Pack block that sets the total number of k-points (note that applying time-reversal symmetry may, roughly, halve the number of used k-points).

Can you help with this problem?

Provide an answer of your own, or ask kuangchungwang for more information if necessary.

To post a message you must log in.