High-performance computing workflows can be computationally expensive, and molecular dynamics analysis is no exception. To accelerate selected analyses, AMDAT supports multithreading with OpenMP. The analyses that currently support multithreading are listed below.
| Analysis | Description | Maximum Speedup Tested (Compared to Serial) |
|———-|————-|————————|
| md | Calculate Mean Displacement | 7x |
| msd | Calculate Mean Square Displacement | 10x |
| msd_2d | Calculate Mean Square Displacement for two-dimensional analysis | 9x |
| isfs | Calculate Incoherent Scattering Function | 20x |
| vhs | Calculate self part of Van Hove Function | 12x |
| vhd | Calculate distinct part of Van Hove Function | 20x |
| raf | Calculate Reorientation Autocorrelation Function | 15x |
| ngp | Calculate Non Gaussian Parameter | 30x |
| composition | Calculate Composition | 7x |
| rdf | Calculate Radial Distribution Function | 21x |
| rnf | Calculate Radial Count | 23x |
To use multithreading effectively in AMDAT, make sure the following requirements are met:
Parallelism is introduced to reduce the runtime of time-based loops. However, to avoid oversubscription and ensure efficient resource utilization, the optimal number of threads is allocated can be given by:
\[N_{\text{threads}} = \min\left(N_{\text{iterations}},\;N_{\text{CPUs}} \right).\]where:
system
xyz_log
./testfiles/traj.xyz ./testfiles/log.lammps
exponential7077 1.05 0 0 .01
polymer 50…
Running AMDAT is very simple with conda build, because OpenMP is already preinstalled. The flag -n
```bash ./AMDAT -n 8 -i ./testfiles/msd.in