Cluster Installation: Difference between revisions

Line 86: Line 86:


== Performance ==
== Performance ==
If the cluster has nodes with more cores than the node where xds_par was started, the binary file mintegrate.tmp (written by xds_par, and read by mintegrate_par) must be patched, by changing the following line of the forkxds script:
Cluster nodes may have different numbers of processors. The algorithm that determines the number of threads used on a node is:
  maxcpu=$2 #maximum number of processors used by each job
  NB = DELPHI / OSCILLATION_RANGE  # this may be slightly adjusted by XDS if DATA_RANGE / NB is not integer
to
  if MAXIMUM_NUMBER_OF_PROCESSORS is not specified in XDS.INP then MAXIMUM_NUMBER_OF_PROCESSORS = 99
  maxcpu=$(awk -F '=' '/MAXIMUM_NUMBER_OF_PROCESSORS=/{print $2}' XDS.INP')
  NCORE = number of processors in node, obtained by OMP_GET_NUM_PROCS()
and inserting
  number_of_threads = MIN( NB, NCORE, MAXIMUM_NUMBER_OF_PROCESSORS )
  printf "0: %02x000000" $maxcpu | xxd -r -g0 > nn.dat
This is implemented in BUILT=20191015 onwards.
  dd bs=4 count=1 seek=13 conv=notrunc if=nn.dat of=mintegrate.tmp
afterwards.
 
If the cluster is homogeneous then this is of course no concern.
2,652

edits