In OpenMX, the memory used is dynamically allocated when it is required.
However, the dynamic memory allocation causes often a serious memory leak
which wastes the memory used as the MD steps increase.
To check the memory leak, one can run OpenMX as follows:
For serial running
% ./openmx -mltest
% ./openmx -mltest "mpirun -np 4 openmx"
1 ml_example/Co4.dat
CPU (%) VSZ (kbyte) RSS (kbyte)
MD_iter= 1 99.500 271208 61804
MD_iter= 2 95.100 398752 190608
MD_iter= 3 99.900 385352 177336
MD_iter= 4 96.800 385352 177336
MD_iter= 5 99.900 385352 177336
MD_iter= 6 97.600 385352 177336
MD_iter= 7 100.000 385352 177336
MD_iter= 8 98.100 385352 177336
MD_iter= 9 100.000 385352 177336
MD_iter= 10 98.500 385352 177336
MD_iter= 11 97.200 385352 177336
MD_iter= 12 98.800 385352 177336
MD_iter= 13 97.700 385352 177336
MD_iter= 14 99.100 385352 177336
MD_iter= 15 98.000 385352 177336
MD_iter= 16 99.200 385352 177336
MD_iter= 17 98.300 385352 177336
MD_iter= 18 99.400 385352 177336
MD_iter= 19 98.600 385352 177336
MD_iter= 20 97.800 385352 177336
2 ml_example/Co4+U.dat
CPU (%) VSZ (kbyte) RSS (kbyte)
MD_iter= 1 99.500 271336 61928
MD_iter= 2 104.000 398880 191052
MD_iter= 3 100.000 385476 177776
MD_iter= 4 96.800 385476 177776
MD_iter= 5 100.000 385476 177776
MD_iter= 6 97.500 385476 177776
......
....