Accounting on VSC-2 is done by nodes, thus sequential jobs using one core only are costly.

To use all 16 cores of a node, it is recommended to start 16 processes per node. This can be done easily by a shell script like

#!/bin/bash
for i in `seq -w 00 15`; do
	./my_program input_parameter_647${i}_35 &
done
# wait for all background jobs, then terminate
wait

Another form of the loop could be

for (( i=0; i<16; i++ )); do
	./my_program ${i} &
done
wait

or, with pinning to processors, which is highly recommended for performance reasons,

for (( i=0; i<16; i++ )); do
	taskset -c $i ./my_program ${i} &
done
wait

or, with pinning to NUMA nodes (consisting of four cores each), with equally good performance,

for i in {0..15}; do
        numactl -N $((i/4)) ./my_program ${i} &
done
wait

Please remember the memory limit of 32GB per node!

  • doku/sequential-codes.txt
  • Last modified: 2013/05/29 16:29
  • (external edit)