Performance, serial simulations
This page reports performance measurements on Asap on various machines. To make it easy to estimate the running time of your own scripts, all times are given in microseconds per atom per timestep. So if you want to do N timesteps with M atoms, your running time will be X*N*M*1e-6 seconds.
Performance for parallel simulations is on a separate page.
Timing has been done on the following computers:
- Niflheim S50 node with a 3.2 GHz Intel(R) Pentium(R) 4 CPU. Compiled using the Intel C++ compiler version 9.1.
- Niflheim Opteron node with two Dual Core AMD Opteron Processor 285. The timing is performed on one CPU with other jobs running on the three other CPUs, the worst number from a coupe of runs is used. Actual performance may vary depending on what the other CPUs do. Use this to estimate the run time of your jobs.
- Same as Opt285, but with the three other CPUs idle. This is not very realistic for estimating job run times, but gives more reliable results when optimizing the code.
- As Opt285A, but on the nodes with two Dual Core AMD Opteron Processor 2218.
- Niflheim node with two quad-core Intel Xeon Nehalem X5570 CPUs running at 2.93 GHz. Timing estimated with the same job running on all eight cores.
- As Nehalem, but only one job running and the other seven cores idle.
- An IBM Thinkpad T30 Laptop (demokrit) with a 2 GHz Mobile Intel Pentium 4. Compiled using the Intel C++ compiler version 9.1.
- A Dell Inspiron 5150 Laptop with a 3.06 GHz Mobile Intel Pentium 4. Compiled using the Intel C++ compiler version 9.1.
- An IBM Thinkpad T30 Laptop (demokrit) with a 1.833 GHz Intel Core 2 Duo processors (with two cores). Compiled using the intel C++ compiler version 10.1.
The following tests were performed. Except when otherwise noted, the simulation was performed on hundred thousand copper atoms (100920 atoms to be exact) with periodic boundary conditions, and the simulation was done at 300 Kelvin.
- Verlet dynamics at 300 K. The simplest possible type of simulation.
- Verlet dynamics at 1000 K. Testing the temperature dependence of performance (mainly due to more neighbor list updates).
- Langevin dynamics (NVT ensemble). Testing a slightly more complicated dynamics.
- HooverNPT dynamics (Constant stress and temperature). The most complicated dynamics.
- As Ver300, but with free boundary conditions. Checking influence of boundary conditions.
- With a Cu3Ni alloy in the L1_2 structure. Checking multi-element simulations.
- Checking the Molybdenum potential.
- Checking performance of very small systems (1008 atoms).
- Lennard-Jones potential, with same cutoff as for EMT, and otherwise the same simulation as Ver300.
|.||Running time in microseconds/atom/timestep|
ICC is the Intel C++ Compiler.
Path is the PathScale C++ compiler.
GCC is the GNU Compiler Collection C++ compiler.