AMDAT

AMDAT Multithreading

Overview

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 |

System Requirements

To use multithreading effectively in AMDAT, make sure the following requirements are met:

Analysis Requirements

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
exponential 70 77 1.05 0 0 .01
polymer 50

Usage

Running AMDAT is very simple with conda build, because OpenMP is already preinstalled. The flag -n will allocate the desired number of parallel regions for your analysis.

Example with msd

```bash ./AMDAT -n 8 -i ./testfiles/msd.in