Source code for benchbuild.projects.benchbuild.lammps

from glob import glob
import os

from benchbuild.utils.wrapping import wrap
from benchbuild.projects.benchbuild.group import BenchBuildGroup
from benchbuild.utils.compiler import lt_clang_cxx
from benchbuild.utils.downloader import Git
from benchbuild.utils.run import run
from benchbuild.utils.cmd import make
from plumbum import local


[docs]class Lammps(BenchBuildGroup): """ LAMMPS benchmark """ NAME = 'lammps' DOMAIN = 'scientific' SRC_FILE = 'lammps.git'
[docs] def run_tests(self, experiment, run): lammps_dir = os.path.join(self.builddir, self.src_dir, "src") exp = wrap(os.path.join(lammps_dir, "lmp_serial"), experiment) examples_dir = os.path.join(self.builddir, self.src_dir, "examples") tests = glob(os.path.join(examples_dir, "./*/in.*")) for test in tests: dirname = os.path.dirname(test) with local.cwd(dirname): cmd = (exp < test) run(cmd, None)
src_dir = SRC_FILE src_uri = "https://github.com/lammps/lammps"
[docs] def download(self): Git(self.src_uri, self.src_dir)
[docs] def build(self): self.ldflags += ["-lgomp"] clang_cxx = lt_clang_cxx(self.cflags, self.ldflags, self.compiler_extension) with local.cwd(os.path.join(self.src_dir, "src")): run(make["CC=" + str(clang_cxx), "LINK=" + str(clang_cxx), "clean", "serial"])