Hello,
I have successfully implemented a PPPM dispersion water model which is essentially identical to the approach taken in: R. E. Isele-Holder, W. Mitchell, J. R. Hammond, A. Kohlmeyer, and A. E. Ismail, “Reconsidering Dispersion Potentials: Reduced Cutoffs in Mesh-Based Ewald Solvers Can Be Faster Than Truncation,” J. Chem. Theory Comput., vol. 9, no. 12, pp. 5412–5420, Dec. 2013, doi: 10.1021/ct4004614.
The model works quite well. However, I am now trying to implement that model in a highly inhomogeneous system consisting of a 20-nm diameter water droplet in the center of a spherical vapor region with a diameter of 300 nm. The vapor is filled with N2 gas at 10 atm. So, there are around 1.1M water molecules and 2.2M N2 molecules.
I am trying to get acceptable performance out of this system. I first ran a homogenous water system with the same number of water molecules (~1.1M) and compared that performance with the inhomogeneous system. I expect that the inhomogeneous system should (optimally) be only slightly more expensive than the homogeneous system because the bulk of the computation is for the water, not the nitrogen gas. However, I am finding the inhomogeneous system is upwards of 10x longer. This is after balancing the inhomogeneous system from an imbalance factor of 80 à 1.6.
It appears the issue is related to the dispersion grid / dispersion parameters. The inhomogeneous system is spending 80% of computational time on kspace, and as I increase the Gewald parameter (0.27à0.4) and increase the dispersion grid count, the computational time increases. This makes sense because only a small volume of the total is occupied by water.
I am seeking advice for how I can set up the dispersion parameters so the performance is optimal for the inhomogeneous system. Is there a method to “balance” the dispersion grid in an analogous way to the processor grid balance?
I have included some files for reference if anyone is interested in helping me solve this problem and wants more details. The .lmp file is the source code for a smaller system (5 nm droplet radius, 40 nm vapor region radius) that I ran on 80 MPI tasks. Two log files are included: one with the vapor region (inhomogeneous system) and one with just the droplet (homogeneous). The template files are also included. For this smaller system, the inhomogeneous is about 2x slower than the homogeneous. The nitrogen computation is negligible, so optimally the runtimes should be the same. This system can be easily scaled down further by changing the variables “R” and “Rbig”.
Thank you,
Eric
code_droplet.lmp (6.04 KB)
log_homogeneous.txt (11 KB)
log_inhomogeneous.txt (11.2 KB)
T.Nitrogen.dat (281 Bytes)
T.Water_TIP4P2005.dat (509 Bytes)