Skip to content

Commit

Permalink
Move engine specific functions into respective files
Browse files Browse the repository at this point in the history
  • Loading branch information
mimischi committed Apr 9, 2018
1 parent f7e392b commit 44b37dd
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 44 deletions.
13 changes: 13 additions & 0 deletions mdbenchmark/mdengines/gromacs.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,19 @@
NAME = 'gromacs'


def prepare_benchmark(name, *args, **kwargs):
sim = kwargs['sim']

full_filename = name + '.tpr'
if name.endswith('.tpr'):
full_filename = name
name = name[:-4]

copyfile(full_filename, sim[full_filename].relpath)

return name


def check_input_file_exists(name):
"""Check if the TPR file exists.
"""
Expand Down
21 changes: 21 additions & 0 deletions mdbenchmark/mdengines/namd.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,27 @@
NAME = 'namd'


def prepare_benchmark(name, *args, **kwargs):
sim = kwargs['sim']

if name.endswith('.namd'):
name = name[:-5]

namd = '{}.namd'.format(name)
psf = '{}.psf'.format(name)
pdb = '{}.pdb'.format(name)

with open(namd) as fh:
analyze_namd_file(fh)
fh.seek(0)

copyfile(namd, sim[namd].relpath)
copyfile(psf, sim[psf].relpath)
copyfile(pdb, sim[pdb].relpath)

return name


def analyze_namd_file(fh):
""" Check whether the NAMD config file has any relative imports or variables
"""
Expand Down
45 changes: 1 addition & 44 deletions mdbenchmark/mdengines/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,57 +143,14 @@ def cleanup_before_restart(engine, sim):
os.remove(fn)


def prepare_gromacs_benchmark(name, *args, **kwargs):
sim = kwargs['sim']

full_filename = name + '.tpr'
if name.endswith('.tpr'):
full_filename = name
name = name[:-4]

copyfile(full_filename, sim[full_filename].relpath)

return name


def prepare_namd_benchmark(name, *args, **kwargs):
sim = kwargs['sim']

if name.endswith('.namd'):
name = name[:-5]

namd = '{}.namd'.format(name)
psf = '{}.psf'.format(name)
pdb = '{}.pdb'.format(name)

with open(namd) as fh:
analyze_namd_file(fh)
fh.seek(0)

copyfile(namd, sim[namd].relpath)
copyfile(psf, sim[psf].relpath)
copyfile(pdb, sim[pdb].relpath)

return name


def prepare_benchmark(engine, name, *args, **kwargs):
if engine.NAME == 'gromacs':
name = prepare_gromacs_benchmark(name, *args, **kwargs)
elif engine.NAME == 'namd':
name = prepare_namd_benchmark(name, *args, **kwargs)

return name


def write_benchmark(engine, base_directory, template, nodes, gpu, module, name,
host, time):
"""Generate a benchmark folder with the respective Sim object."""
# Create the `mds.Sim` object
sim = mds.Sim(base_directory['{}/'.format(nodes)])

# Do MD engine specific things. Here we also format the name.
name = prepare_benchmark(engine=engine, name=name, sim=sim)
name = engine.prepare_benchmark(name=name, sim=sim)

# Add categories to the `Sim` object
sim.categories = {
Expand Down

0 comments on commit 44b37dd

Please sign in to comment.