Indeed I made some quick and dirty timing test some days before, but I'm afraid, the system is FAR TOO SMALL to be meaningful. I didn't want to spend too much time on it, but rather just see how it performs in principle. I used a "carbon molecule" (a single unitcell of a (5,5) CNT) with some vacuum all around. I really did only a few clicks in VNL and than run it. I think I will provide a more serious test later (or you post a script which you think is interesting (but the whole testing should be runable in one night)).
My script:
###############################################################
# Bulk configuration
###############################################################
# Set up lattice
vector_a = [16.7841067732, 0.0, 0.0]*Angstrom
vector_b = [0.0, 16.7841067732, 0.0]*Angstrom
vector_c = [0.0, 0.0, 2.46100171044]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon]
# Define coordinates
cartesian_coordinates = [[ 11.78410677, 8.39205339, 0. ],
[ 11.49084835, 9.77172579, 0. ],
[ 11.13628222, 10.38585234, 1.23050086],
[ 10.08808008, 11.32965779, 1.23050086],
[ 9.44025553, 11.61808786, 0. ],
[ 8.03748726, 11.76552475, 0. ],
[ 7.34385124, 11.61808786, 1.23050086],
[ 6.12232665, 10.91284031, 1.23050086],
[ 5.64782455, 10.38585234, 0. ],
[ 5.0741245 , 9.09730094, 0. ],
[ 5. , 8.39205339, 1.23050086],
[ 5.29325842, 7.01238098, 1.23050086],
[ 5.64782455, 6.39825443, 0. ],
[ 6.69602669, 5.45444898, 0. ],
[ 7.34385124, 5.16601891, 1.23050086],
[ 8.74661951, 5.01858202, 1.23050086],
[ 9.44025553, 5.16601891, 0. ],
[ 10.66178013, 5.87126646, 0. ],
[ 11.13628222, 6.39825443, 1.23050086],
[ 11.70998227, 7.68680583, 1.23050086]]*Angstrom
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
cartesian_coordinates=cartesian_coordinates
)
###############################################################
# Calculator
###############################################################
numerical_accuracy_parameters = NumericalAccuracyParameters(
electron_temperature=3000.0*Kelvin,
k_point_sampling=(3, 3, 3),
)
calculator = LCAOCalculator(
numerical_accuracy_parameters=numerical_accuracy_parameters,
)
bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('CNT_5_5.nc', bulk_configuration)
NOTES:
no errors occured;
we have 24 slave licenses
PBS ressources: nodes=x:ppn=y defines the PBS environment (reserved to be safe of other users)
!!! usePPN=z defines how many MPI-processes per node I actually use !!! -> Important
(the usePPN is done by some custom PBS-scripting)
NOTE: When using OpenMPI, MKL_NUM_THREADS is given. Otherwise no OpenMP is used.
Results:
Short Story:
nodes usePPN MKL_NUM_THREADS totalTime (seconds)
113.86 (my Dualcore lab notebook)
2 2 no OpenMP 84.81
2 12 no OpenMP 48.09
2 4 4 60.69
4 4 4 51.84
4 2 8 64.01
4 1 16 82.54
6 4 4 48.17
Long Story: