Can no longer parallelize NEB with Gaussian calculator
I'm trying to parallelize images for a NEB calculation via Open MPI using Gaussian as back-end calculator.
My code worked fine in earlier versions of ase (e.g. 3.19.0
), but the latest version doesn't create Gaussian input files on all ranks except the master. Hence, Gaussian's calculator cannot be properly used on any other rank than master at the moment.
import mpi4py
from pathlib import Path
from ase.io import read as ase_read
from ase.calculators.gaussian import Gaussian
from ase.neb import NEB
from ase.parallel import world
image_paths = list(Path('inputs').glob('*.xyz'))
image_paths.sort(key=lambda p: int(p.stem))
images = list(map(ase_read, image_paths))
image = images[world.rank+1]
calculator = Gaussian(label = f'test-{world.rank+2}')
calculator.parameters.update(
nprocshared='24',
mem='13GB',
method='EmpiricalDispersion=GD3BJ B3LYP',
basis='def2SVP',
)
calculator.parameters['charge'] = 0
calculator.parameters['mult'] = 1
image.calc = calculator
neb = NEB(images, parallel=True)
print(neb.get_forces()) # complains about test-*.com are missing.
Edited by Sebastian Wellig