aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/raxmlng.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/benchmarks/raxmlng.py')
-rw-r--r--src/benchmarks/raxmlng.py76
1 files changed, 32 insertions, 44 deletions
diff --git a/src/benchmarks/raxmlng.py b/src/benchmarks/raxmlng.py
index 119bab7..811721a 100644
--- a/src/benchmarks/raxmlng.py
+++ b/src/benchmarks/raxmlng.py
@@ -23,8 +23,9 @@ import subprocess
import sys
from urllib.request import urlretrieve
+from src.artifact import GitArtifact
from src.benchmark import Benchmark
-from src.util import print_info, download_reporthook
+from src.util import print_info
RUNTIME_RE = re.compile("Elapsed time: (?P<runtime>(\\d*.\\d*)) seconds")
@@ -39,64 +40,51 @@ class BenchmarkRaxmlng(Benchmark):
super().__init__(name)
- self.cmd = (f"raxml-ng --msa {self.build_dir}/ng-tutorial/prim.phy --model GTR+G"
+ self.cmd = (f"raxml-ng --msa {self.build_dir}/data/prim.phy --model GTR+G"
" --redo --threads 2 --seed 2")
def prepare(self):
super().prepare()
- # git clone --recursive
- # cd raxml-ng
- # mkdir build && cd build
- # cmake ..
- # make
+ if os.path.exists(self.build_dir):
+ return
- version = "0.9"
-
- url = "https://github.com/amkozlov/raxml-ng"
- data_url = "https://github.com/amkozlov/ng-tutorial"
+ raxmlng_sources = GitArtifact("raxml-ng", "https://github.com/amkozlov/raxml-ng")
+ raxmlng_version = "0.9.0"
raxmlng_dir = os.path.join(self.build_dir, "raxml-ng-git")
raxmlng_builddir = os.path.join(raxmlng_dir, "build")
-
- self.results["facts"]["versions"]["raxml-ng"] = version
-
- if not os.path.isdir(raxmlng_dir):
- proc = subprocess.run(["git", "clone", "--recursive", url, raxmlng_dir],
- # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- universal_newlines=True)
+ self.results["facts"]["versions"]["raxml-ng"] = raxmlng_version
+ raxmlng_sources.provide(raxmlng_version, raxmlng_dir)
- # Create builddir
- os.makedirs(raxmlng_builddir, exist_ok=True)
-
- # building raxml-ng
- proc = subprocess.run(["cmake", ".."],
- cwd=raxmlng_builddir,
- # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- universal_newlines=True)
-
- proc = subprocess.run(["make"],
- cwd=raxmlng_builddir,
- # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- universal_newlines=True)
-
- # create symlinks
- for exe in ["raxml-ng"]:
- src = os.path.join(raxmlng_dir, "bin", exe)
- dest = os.path.join(self.build_dir,exe)
- os.link(src, dest)
-
- # clone test data
- proc = subprocess.run(["git", "clone", data_url],
- cwd=self.build_dir,
- # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- universal_newlines=True)
+ # Create builddir
+ os.makedirs(raxmlng_builddir, exist_ok=True)
+
+ # building raxml-ng
+ proc = subprocess.run(["cmake", ".."],
+ cwd=raxmlng_builddir,
+ # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ universal_newlines=True)
+
+ proc = subprocess.run(["make"],
+ cwd=raxmlng_builddir,
+ # stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ universal_newlines=True)
+
+ # create symlinks
+ for exe in ["raxml-ng"]:
+ src = os.path.join(raxmlng_dir, "bin", exe)
+ dest = os.path.join(self.build_dir,exe)
+ os.link(src, dest)
+
+ raxmlng_data = GitArtifact("raxml-ng-data", "https://github.com/amkozlov/ng-tutorial")
+ raxmlng_data_dir = os.path.join(self.build_dir, "data")
+ raxmlng_data.provide("f8f0b6a057a11397b4dad308440746e3436db8b4", raxmlng_data_dir)
def cleanup(self):
for direntry in os.listdir():
if direntry.startswith("prim.raxml"):
os.remove(direntry)
-
@staticmethod
def process_output(result, stdout, stderr, allocator, perm):
result["runtime"] = RUNTIME_RE.search(stdout).group("runtime")