From 6df8f649a550942c050c1aac43a82d947dbb13e2 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Fri, 12 May 2023 15:52:55 +0200 Subject: [PATCH 01/19] - Initial simple version of dune project --- varats/varats/projects/cpp_projects/dune.py | 49 +++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 varats/varats/projects/cpp_projects/dune.py diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py new file mode 100644 index 000000000..fda746edd --- /dev/null +++ b/varats/varats/projects/cpp_projects/dune.py @@ -0,0 +1,49 @@ +"""Project file for Dune""" +import typing as tp + +from plumbum import local + +from benchbuild.utils import cmd +import benchbuild as bb + +from varats.paper.paper_config import PaperConfigSpecificGit +from varats.project.project_domain import ProjectDomains +from varats.project.varats_project import VProject +from varats.utils.git_util import ShortCommitHash + + +class Dune(VProject): + """Simulation framework for various applications in mathematics and physics""" + + NAME = 'Dune' + GROUP = 'cpp_projects' + DOMAIN = ProjectDomains.CPP_LIBRARY + + SOURCE = [ + PaperConfigSpecificGit( + project_name='Dune', + remote='git@github.com:se-sic/dune-VaRA.git', + local='dune-VaRA', + refspec='origin/HEAD', + limit=None, + shallow=False + ) + ] + + # TODO: Container support + + @staticmethod + def binaries_for_revision(revision: ShortCommitHash) -> tp.List['ProjectBinaryWrapper']: + pass + + def compile(self) -> None: + """Compile the project using the in-built tooling from dune""" + version_source = local.path(self.source_of(self.primary_source)) + + with local.cwd(version_source): + dunecontrol = cmd['./dune-common/bin/dunecontrol'] + + bb.watch(dunecontrol)('--module=dune-performance-regressions', 'all') + + def run_tests(self) -> None: + pass From 1cc2d3465cd7feb89cfe4fcfd0e41f3043f9bf1b Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 19:10:02 +0200 Subject: [PATCH 02/19] Implemented binary_for_revision for dune project --- varats/varats/projects/cpp_projects/dune.py | 44 ++++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index fda746edd..714851b22 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -4,12 +4,14 @@ from plumbum import local from benchbuild.utils import cmd +from benchbuild.utils.revision_ranges import RevisionRange import benchbuild as bb from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains +from varats.project.project_util import get_local_project_git_path, BinaryType from varats.project.varats_project import VProject -from varats.utils.git_util import ShortCommitHash +from varats.utils.git_util import ShortCommitHash, RevisionBinaryMap class Dune(VProject): @@ -34,7 +36,45 @@ class Dune(VProject): @staticmethod def binaries_for_revision(revision: ShortCommitHash) -> tp.List['ProjectBinaryWrapper']: - pass + binary_map = RevisionBinaryMap( + get_local_project_git_path(Dune.NAME) + ) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/dune-performance-regressions' + , BinaryType.EXECUTABLE) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-test' + , BinaryType.EXECUTABLE + , only_valid_in=RevisionRange("0d02b7b9acddfc57c3a0c905d6374fabbcaa0f58", "main")) + + separated_poisson_range = RevisionRange("97fecde34910ba1f81c988ac2e1331aecddada06", "main") + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-alberta' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-ug-pk-2d' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q1-2d' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q2-2d' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d' + , BinaryType.EXECUTABLE + , only_valid_in=separated_poisson_range) + + return binary_map[revision] + + def compile(self) -> None: """Compile the project using the in-built tooling from dune""" From 9b758a55af5a6c520f4ee33be74326cf821abed6 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 19:39:25 +0200 Subject: [PATCH 03/19] Added workloads for dune examples --- varats/varats/projects/cpp_projects/dune.py | 47 ++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 714851b22..f95adc8a5 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -3,10 +3,12 @@ from plumbum import local +from benchbuild.command import WorkloadSet, Command, SourceRoot from benchbuild.utils import cmd from benchbuild.utils.revision_ranges import RevisionRange import benchbuild as bb +from varats.experiment.workload_util import RSBinary, WorkloadCategory from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains from varats.project.project_util import get_local_project_git_path, BinaryType @@ -34,6 +36,49 @@ class Dune(VProject): # TODO: Container support + WORKLOADS = { + WorkloadSet(WorkloadCategory.EXAMPLE): [ + Command( + SourceRoot(NAME) / RSBinary("dune-performance-regressions") + , label="dune-helloworld" + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-test") + , label="poisson-non-separated" + , creates=["poisson_UG_Pk_2d.vtu" + , "poisson-yasp-Q1-2d.vtu" + , "poisson-yasp-Q1-3d.vtu" + , "poisson-yasp-Q2-2d.vtu" + , "poisson-yasp-Q2-3d.vtu"] + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-ug-pk-2d"), + label="poisson-ug-pk-2d" + , creates= ["poisson-UG-Pk-2d.vtu"] + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-yasp-q1-2d") + , label="poisson-yasp-q1-2d" + , creates=["poisson-yasp-q1-2d.vtu"] + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-yasp-q1-3d") + , label="poisson-yasp-q1-3d" + , creates=["poisson-yasp-q1-3d.vtu"] + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-yasp-q2-2d") + , label="poisson-yasp-q2-2d" + , creates=["poisson-yasp-q2-2d.vtu"] + ) + , Command( + SourceRoot(NAME) / RSBinary("poisson-yasp-q2-3d") + , label="poisson-yasp-q2-3d" + , creates=["poisson-yasp-q2-3d.vtu"] + ) + ] + } + @staticmethod def binaries_for_revision(revision: ShortCommitHash) -> tp.List['ProjectBinaryWrapper']: binary_map = RevisionBinaryMap( @@ -74,8 +119,6 @@ def binaries_for_revision(revision: ShortCommitHash) -> tp.List['ProjectBinaryWr return binary_map[revision] - - def compile(self) -> None: """Compile the project using the in-built tooling from dune""" version_source = local.path(self.source_of(self.primary_source)) From 888250bf9e072eaf51929567e45b4101d7d1f372 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 19:49:29 +0200 Subject: [PATCH 04/19] Fixed formatting --- varats/varats/projects/cpp_projects/dune.py | 163 +++++++++++--------- varats/varats/tools/bb_config.py | 3 +- 2 files changed, 94 insertions(+), 72 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index f95adc8a5..8e31dc8fe 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -1,12 +1,11 @@ -"""Project file for Dune""" +"""Project file for Dune.""" import typing as tp -from plumbum import local - +import benchbuild as bb from benchbuild.command import WorkloadSet, Command, SourceRoot from benchbuild.utils import cmd from benchbuild.utils.revision_ranges import RevisionRange -import benchbuild as bb +from plumbum import local from varats.experiment.workload_util import RSBinary, WorkloadCategory from varats.paper.paper_config import PaperConfigSpecificGit @@ -17,7 +16,8 @@ class Dune(VProject): - """Simulation framework for various applications in mathematics and physics""" + """Simulation framework for various applications in mathematics and + physics.""" NAME = 'Dune' GROUP = 'cpp_projects' @@ -39,94 +39,115 @@ class Dune(VProject): WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ Command( - SourceRoot(NAME) / RSBinary("dune-performance-regressions") - , label="dune-helloworld" - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-test") - , label="poisson-non-separated" - , creates=["poisson_UG_Pk_2d.vtu" - , "poisson-yasp-Q1-2d.vtu" - , "poisson-yasp-Q1-3d.vtu" - , "poisson-yasp-Q2-2d.vtu" - , "poisson-yasp-Q2-3d.vtu"] - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-ug-pk-2d"), - label="poisson-ug-pk-2d" - , creates= ["poisson-UG-Pk-2d.vtu"] - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-yasp-q1-2d") - , label="poisson-yasp-q1-2d" - , creates=["poisson-yasp-q1-2d.vtu"] - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-yasp-q1-3d") - , label="poisson-yasp-q1-3d" - , creates=["poisson-yasp-q1-3d.vtu"] - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-yasp-q2-2d") - , label="poisson-yasp-q2-2d" - , creates=["poisson-yasp-q2-2d.vtu"] - ) - , Command( - SourceRoot(NAME) / RSBinary("poisson-yasp-q2-3d") - , label="poisson-yasp-q2-3d" - , creates=["poisson-yasp-q2-3d.vtu"] + SourceRoot(NAME) / RSBinary('dune-performance-regressions'), + label='dune-helloworld' + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-test'), + label='poisson-non-separated', + creates=[ + 'poisson_UG_Pk_2d.vtu', 'poisson-yasp-Q1-2d.vtu', + 'poisson-yasp-Q1-3d.vtu', 'poisson-yasp-Q2-2d.vtu', + 'poisson-yasp-Q2-3d.vtu' + ] + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-ug-pk-2d'), + label='poisson-ug-pk-2d', + creates=['poisson-UG-Pk-2d.vtu'] + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-yasp-q1-2d'), + label='poisson-yasp-q1-2d', + creates=['poisson-yasp-q1-2d.vtu'] + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-yasp-q1-3d'), + label='poisson-yasp-q1-3d', + creates=['poisson-yasp-q1-3d.vtu'] + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-yasp-q2-2d'), + label='poisson-yasp-q2-2d', + creates=['poisson-yasp-q2-2d.vtu'] + ), + Command( + SourceRoot(NAME) / RSBinary('poisson-yasp-q2-3d'), + label='poisson-yasp-q2-3d', + creates=['poisson-yasp-q2-3d.vtu'] ) ] } @staticmethod - def binaries_for_revision(revision: ShortCommitHash) -> tp.List['ProjectBinaryWrapper']: - binary_map = RevisionBinaryMap( - get_local_project_git_path(Dune.NAME) + def binaries_for_revision( + revision: ShortCommitHash + ) -> tp.List['ProjectBinaryWrapper']: + binary_map = RevisionBinaryMap(get_local_project_git_path(Dune.NAME)) + + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/dune-performance-regressions', + BinaryType.EXECUTABLE ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/dune-performance-regressions' - , BinaryType.EXECUTABLE) - - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-test' - , BinaryType.EXECUTABLE - , only_valid_in=RevisionRange("0d02b7b9acddfc57c3a0c905d6374fabbcaa0f58", "main")) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-test', + BinaryType.EXECUTABLE, + only_valid_in=RevisionRange( + '0d02b7b9acddfc57c3a0c905d6374fabbcaa0f58', 'main' + ) + ) - separated_poisson_range = RevisionRange("97fecde34910ba1f81c988ac2e1331aecddada06", "main") - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-alberta' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + separated_poisson_range = RevisionRange( + '97fecde34910ba1f81c988ac2e1331aecddada06', 'main' + ) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-alberta', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-ug-pk-2d' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-ug-pk-2d', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q1-2d' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-2d', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q2-2d' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-2d', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) - binary_map.specify_binary('dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d' - , BinaryType.EXECUTABLE - , only_valid_in=separated_poisson_range) + binary_map.specify_binary( + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d', + BinaryType.EXECUTABLE, + only_valid_in=separated_poisson_range + ) return binary_map[revision] def compile(self) -> None: - """Compile the project using the in-built tooling from dune""" + """Compile the project using the in-built tooling from dune.""" version_source = local.path(self.source_of(self.primary_source)) with local.cwd(version_source): dunecontrol = cmd['./dune-common/bin/dunecontrol'] - bb.watch(dunecontrol)('--module=dune-performance-regressions', 'all') + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'all') def run_tests(self) -> None: pass diff --git a/varats/varats/tools/bb_config.py b/varats/varats/tools/bb_config.py index eff48cada..adf3c4f5e 100644 --- a/varats/varats/tools/bb_config.py +++ b/varats/varats/tools/bb_config.py @@ -71,7 +71,8 @@ def update_projects( 'varats.projects.cpp_projects.poppler', 'varats.projects.cpp_projects.z3', 'varats.projects.cpp_projects.ect', - 'varats.projects.cpp_projects.lepton' + 'varats.projects.cpp_projects.lepton', + 'varats.projects.cpp_projects.dune' ] projects_conf.value[:] += [ 'varats.projects.cpp_projects.doxygen', 'varats.projects.cpp_projects' From b249419e29a50d49e492ad9f8eb07f6acf68f29e Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 20:02:17 +0200 Subject: [PATCH 05/19] Added container support to Dune --- varats/varats/projects/cpp_projects/dune.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 8e31dc8fe..0c20a7a22 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -7,6 +7,7 @@ from benchbuild.utils.revision_ranges import RevisionRange from plumbum import local +from varats.containers.containers import get_base_image, ImageBase from varats.experiment.workload_util import RSBinary, WorkloadCategory from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains @@ -34,7 +35,9 @@ class Dune(VProject): ) ] - # TODO: Container support + CONTAINER = get_base_image( + ImageBase.DEBIAN_10 + ) WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ From f75c35ad354e78cdf123c06e400ce4dfb2a17186 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 20:19:37 +0200 Subject: [PATCH 06/19] Formatting --- varats/varats/projects/cpp_projects/dune.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 0c20a7a22..efc979737 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -35,9 +35,7 @@ class Dune(VProject): ) ] - CONTAINER = get_base_image( - ImageBase.DEBIAN_10 - ) + CONTAINER = get_base_image(ImageBase.DEBIAN_10) WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ From ddd81f94d5b3e55908fed8463d78576e91c04403 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 14 May 2023 20:30:46 +0200 Subject: [PATCH 07/19] Added missing import --- varats/varats/projects/cpp_projects/dune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index efc979737..5cda4adcf 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -11,7 +11,7 @@ from varats.experiment.workload_util import RSBinary, WorkloadCategory from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains -from varats.project.project_util import get_local_project_git_path, BinaryType +from varats.project.project_util import get_local_project_git_path, BinaryType, ProjectBinaryWrapper from varats.project.varats_project import VProject from varats.utils.git_util import ShortCommitHash, RevisionBinaryMap From 81d8feaa02be37aee28af73d917b6d32446e845b Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Wed, 23 Aug 2023 17:10:01 +0200 Subject: [PATCH 08/19] Fixed imports in dune project Fixed binaries and workloads for dune Fixed wrong shorthand for WLTimeAggregateReport --- varats-core/varats/report/gnu_time_report.py | 2 +- varats/varats/projects/cpp_projects/dune.py | 45 ++++++++++++++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/varats-core/varats/report/gnu_time_report.py b/varats-core/varats/report/gnu_time_report.py index 88200ba52..124929602 100644 --- a/varats-core/varats/report/gnu_time_report.py +++ b/varats-core/varats/report/gnu_time_report.py @@ -284,7 +284,7 @@ def summary(self) -> str: class WLTimeReportAggregate( WorkloadSpecificReportAggregate[TimeReport], - shorthand=TimeReport.SHORTHAND + ReportAggregate.SHORTHAND, + shorthand="WL" + TimeReport.SHORTHAND + ReportAggregate.SHORTHAND, file_type=ReportAggregate.FILE_TYPE ): """Context Manager for parsing multiple time reports stored inside a zip diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 5cda4adcf..c4ac51ee9 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -11,7 +11,11 @@ from varats.experiment.workload_util import RSBinary, WorkloadCategory from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains -from varats.project.project_util import get_local_project_git_path, BinaryType, ProjectBinaryWrapper +from varats.project.project_util import ( + get_local_project_git_path, + BinaryType, + ProjectBinaryWrapper, +) from varats.project.varats_project import VProject from varats.utils.git_util import ShortCommitHash, RevisionBinaryMap @@ -40,11 +44,15 @@ class Dune(VProject): WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ Command( - SourceRoot(NAME) / RSBinary('dune-performance-regressions'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('dune-performance-regressions'), label='dune-helloworld' ), Command( - SourceRoot(NAME) / RSBinary('poisson-test'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('poisson-test'), label='poisson-non-separated', creates=[ 'poisson_UG_Pk_2d.vtu', 'poisson-yasp-Q1-2d.vtu', @@ -53,17 +61,23 @@ class Dune(VProject): ] ), Command( - SourceRoot(NAME) / RSBinary('poisson-ug-pk-2d'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('poisson-ug-pk-2d'), label='poisson-ug-pk-2d', creates=['poisson-UG-Pk-2d.vtu'] ), Command( - SourceRoot(NAME) / RSBinary('poisson-yasp-q1-2d'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('poisson-yasp-q1-2d'), label='poisson-yasp-q1-2d', creates=['poisson-yasp-q1-2d.vtu'] ), Command( - SourceRoot(NAME) / RSBinary('poisson-yasp-q1-3d'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('poisson-yasp-q1-3d'), label='poisson-yasp-q1-3d', creates=['poisson-yasp-q1-3d.vtu'] ), @@ -73,7 +87,9 @@ class Dune(VProject): creates=['poisson-yasp-q2-2d.vtu'] ), Command( - SourceRoot(NAME) / RSBinary('poisson-yasp-q2-3d'), + SourceRoot(NAME) / + "dune-performance-regressions/build-cmake/src" / + RSBinary('poisson-yasp-q2-3d'), label='poisson-yasp-q2-3d', creates=['poisson-yasp-q2-3d.vtu'] ) @@ -102,6 +118,7 @@ def binaries_for_revision( separated_poisson_range = RevisionRange( '97fecde34910ba1f81c988ac2e1331aecddada06', 'main' ) + binary_map.specify_binary( 'dune-performance-regressions/build-cmake/src/poisson-alberta', BinaryType.EXECUTABLE, @@ -121,7 +138,7 @@ def binaries_for_revision( ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d', + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) @@ -133,7 +150,7 @@ def binaries_for_revision( ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d', + 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) @@ -150,5 +167,15 @@ def compile(self) -> None: bb.watch(dunecontrol )('--module=dune-performance-regressions', 'all') + def recompile(self) -> None: + """Recompiles Dune after e.g. a Patch has been applied.""" + version_source = local.path(self.source_of(self.primary_source)) + + with local.cwd(version_source): + dunecontrol = cmd['./dune-common/bin/dunecontrol'] + + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'make') + def run_tests(self) -> None: pass From 3d04757217665b921ce697474502eea8865f3b74 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Wed, 30 Aug 2023 09:04:59 +0200 Subject: [PATCH 09/19] Fixed workload/binary locations --- varats/varats/projects/cpp_projects/dune.py | 59 +++++++++++---------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index c4ac51ee9..7d640ed35 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -33,7 +33,7 @@ class Dune(VProject): project_name='Dune', remote='git@github.com:se-sic/dune-VaRA.git', local='dune-VaRA', - refspec='origin/HEAD', + refspec='origin/f-RefactorPoissonFeature', limit=None, shallow=False ) @@ -44,15 +44,15 @@ class Dune(VProject): WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('dune-performance-regressions'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('dune-performance-regressions'), label='dune-helloworld' ), Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('poisson-test'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-test'), label='poisson-non-separated', creates=[ 'poisson_UG_Pk_2d.vtu', 'poisson-yasp-Q1-2d.vtu', @@ -61,35 +61,37 @@ class Dune(VProject): ] ), Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('poisson-ug-pk-2d'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-ug-pk-2d'), label='poisson-ug-pk-2d', creates=['poisson-UG-Pk-2d.vtu'] ), Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('poisson-yasp-q1-2d'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-yasp-q1-2d'), label='poisson-yasp-q1-2d', creates=['poisson-yasp-q1-2d.vtu'] ), Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('poisson-yasp-q1-3d'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-yasp-q1-3d'), label='poisson-yasp-q1-3d', creates=['poisson-yasp-q1-3d.vtu'] ), Command( - SourceRoot(NAME) / RSBinary('poisson-yasp-q2-2d'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-yasp-q2-2d'), label='poisson-yasp-q2-2d', creates=['poisson-yasp-q2-2d.vtu'] ), Command( - SourceRoot(NAME) / - "dune-performance-regressions/build-cmake/src" / - RSBinary('poisson-yasp-q2-3d'), + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson-yasp-q2-3d'), label='poisson-yasp-q2-3d', creates=['poisson-yasp-q2-3d.vtu'] ) @@ -103,12 +105,11 @@ def binaries_for_revision( binary_map = RevisionBinaryMap(get_local_project_git_path(Dune.NAME)) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/dune-performance-regressions', - BinaryType.EXECUTABLE + 'dune-performance-regressions', BinaryType.EXECUTABLE ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-test', + 'poisson-test', BinaryType.EXECUTABLE, only_valid_in=RevisionRange( '0d02b7b9acddfc57c3a0c905d6374fabbcaa0f58', 'main' @@ -120,37 +121,37 @@ def binaries_for_revision( ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-alberta', + 'poisson-alberta', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-ug-pk-2d', + 'poisson-ug-pk-2d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-2d', + 'poisson-yasp-q1-2d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-3d', + 'poisson-yasp-q2-3d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q2-2d', + 'poisson-yasp-q2-2d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) binary_map.specify_binary( - 'dune-performance-regressions/build-cmake/src/poisson-yasp-q1-3d', + 'poisson-yasp-q1-3d', BinaryType.EXECUTABLE, only_valid_in=separated_poisson_range ) From 7f0ab0b58bfe6542d93814aa18fb9cd0bb95b68e Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Fri, 1 Sep 2023 13:54:15 +0200 Subject: [PATCH 10/19] Add flags to disable phasar --- varats/varats/projects/cpp_projects/dune.py | 50 +++++++++++++++------ 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 7d640ed35..15816c16d 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -20,17 +20,17 @@ from varats.utils.git_util import ShortCommitHash, RevisionBinaryMap -class Dune(VProject): +class DunePerfRegression(VProject): """Simulation framework for various applications in mathematics and physics.""" - NAME = 'Dune' + NAME = 'DunePerfRegression' GROUP = 'cpp_projects' DOMAIN = ProjectDomains.CPP_LIBRARY SOURCE = [ PaperConfigSpecificGit( - project_name='Dune', + project_name='DunePerfRegression', remote='git@github.com:se-sic/dune-VaRA.git', local='dune-VaRA', refspec='origin/f-RefactorPoissonFeature', @@ -102,7 +102,9 @@ class Dune(VProject): def binaries_for_revision( revision: ShortCommitHash ) -> tp.List['ProjectBinaryWrapper']: - binary_map = RevisionBinaryMap(get_local_project_git_path(Dune.NAME)) + binary_map = RevisionBinaryMap( + get_local_project_git_path(DunePerfRegression.NAME) + ) binary_map.specify_binary( 'dune-performance-regressions', BinaryType.EXECUTABLE @@ -162,21 +164,43 @@ def compile(self) -> None: """Compile the project using the in-built tooling from dune.""" version_source = local.path(self.source_of(self.primary_source)) + c_compiler = bb.compiler.cc(self) + cxx_compiler = bb.compiler.cxx(self) + + cflags = self.cflags + ldflags = self.ldflags + + cflags.append("-mllvm --vara-disable-phasar") + + print(cflags) + print(ldflags) + with local.cwd(version_source): - dunecontrol = cmd['./dune-common/bin/dunecontrol'] + with local.env( + CC=c_compiler, + CXX=cxx_compiler, + CMAKE_CXX_FLAGS=cflags, + CMAKE_LDFLAGS=ldflags + ): + dunecontrol = cmd['./dune-common/bin/dunecontrol'] - bb.watch(dunecontrol - )('--module=dune-performance-regressions', 'all') + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'all') def recompile(self) -> None: """Recompiles Dune after e.g. a Patch has been applied.""" version_source = local.path(self.source_of(self.primary_source)) - - with local.cwd(version_source): - dunecontrol = cmd['./dune-common/bin/dunecontrol'] - - bb.watch(dunecontrol - )('--module=dune-performance-regressions', 'make') + with local.env( + CC=bb.compiler.cc(self), + CXX=bb.compiler.cxx(self), + CMAKE_CXX_FLAGS=self.cflags, + CMAKE_LDFLAGS=self.ldflags + ): + with local.cwd(version_source): + dunecontrol = cmd['./dune-common/bin/dunecontrol'] + + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'make') def run_tests(self) -> None: pass From 73d135e0db162359a11b2780750721a2a8d4aa93 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Tue, 5 Sep 2023 09:29:15 +0200 Subject: [PATCH 11/19] Fixed cflags --- varats/varats/projects/cpp_projects/dune.py | 29 +++++---------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 15816c16d..015be61aa 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -163,25 +163,13 @@ def binaries_for_revision( def compile(self) -> None: """Compile the project using the in-built tooling from dune.""" version_source = local.path(self.source_of(self.primary_source)) + self.cflags += ["-mllvm", "--vara-disable-phasar"] c_compiler = bb.compiler.cc(self) cxx_compiler = bb.compiler.cxx(self) - cflags = self.cflags - ldflags = self.ldflags - - cflags.append("-mllvm --vara-disable-phasar") - - print(cflags) - print(ldflags) - with local.cwd(version_source): - with local.env( - CC=c_compiler, - CXX=cxx_compiler, - CMAKE_CXX_FLAGS=cflags, - CMAKE_LDFLAGS=ldflags - ): + with local.env(CC=c_compiler, CXX=cxx_compiler): dunecontrol = cmd['./dune-common/bin/dunecontrol'] bb.watch(dunecontrol @@ -190,17 +178,14 @@ def compile(self) -> None: def recompile(self) -> None: """Recompiles Dune after e.g. a Patch has been applied.""" version_source = local.path(self.source_of(self.primary_source)) - with local.env( - CC=bb.compiler.cc(self), - CXX=bb.compiler.cxx(self), - CMAKE_CXX_FLAGS=self.cflags, - CMAKE_LDFLAGS=self.ldflags - ): + with local.env(CC=bb.compiler.cc(self), CXX=bb.compiler.cxx(self)): with local.cwd(version_source): dunecontrol = cmd['./dune-common/bin/dunecontrol'] - bb.watch(dunecontrol - )('--module=dune-performance-regressions', 'make') + bb.watch(dunecontrol)( + '--module=dune-performance-regressions', '--opts=vara.opts', + 'make' + ) def run_tests(self) -> None: pass From 7cfc8f01468d1f589e1ba12c8516e7a7e2ff3cba Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Tue, 5 Sep 2023 09:39:40 +0200 Subject: [PATCH 12/19] Slight change in parse revisions handling to handle open-ended include revisions --- .../varats/provider/patch/patch_provider.py | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/varats-core/varats/provider/patch/patch_provider.py b/varats-core/varats/provider/patch/patch_provider.py index b370df208..994392c5c 100644 --- a/varats-core/varats/provider/patch/patch_provider.py +++ b/varats-core/varats/provider/patch/patch_provider.py @@ -82,19 +82,17 @@ def parse_revisions(rev_dict: tp.Dict) -> tp.Set[CommitHash]: ]) if "revision_range" in rev_dict: - if isinstance(rev_dict["revision_range"], list): - for rev_range in rev_dict["revision_range"]: - res.update( - get_all_revisions_between( - rev_range["start"], rev_range["end"], - ShortCommitHash, project_git_path - ) - ) - else: + rev_ranges = rev_dict["revision_range"] + if not isinstance(rev_ranges, list): + rev_ranges = [rev_ranges] + for rev_range in rev_ranges: + if "end" in rev_range: + end_rev = rev_range["end"] + else: + end_rev = "" res.update( get_all_revisions_between( - rev_dict["revision_range"]["start"], - rev_dict["revision_range"]["end"], ShortCommitHash, + rev_range["start"], end_rev, ShortCommitHash, project_git_path ) ) From 059fb8c2dd6326012554e22df98bfb4b678e481a Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Tue, 5 Sep 2023 11:47:34 +0200 Subject: [PATCH 13/19] * Add short comment about required disable-phasar flag * Add disable-phasar flag to recompile --- varats/varats/projects/cpp_projects/dune.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 015be61aa..aef4107b3 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -163,6 +163,9 @@ def binaries_for_revision( def compile(self) -> None: """Compile the project using the in-built tooling from dune.""" version_source = local.path(self.source_of(self.primary_source)) + + # Currently Phasar passes crash the compiler + # This limits us to analysing compile time variability self.cflags += ["-mllvm", "--vara-disable-phasar"] c_compiler = bb.compiler.cc(self) @@ -178,6 +181,11 @@ def compile(self) -> None: def recompile(self) -> None: """Recompiles Dune after e.g. a Patch has been applied.""" version_source = local.path(self.source_of(self.primary_source)) + + # Currently Phasar passes crash the compiler + # This limits us to analysing compile time variability + self.cflags += ["-mllvm", "--vara-disable-phasar"] + with local.env(CC=bb.compiler.cc(self), CXX=bb.compiler.cxx(self)): with local.cwd(version_source): dunecontrol = cmd['./dune-common/bin/dunecontrol'] From a62b68ee07273c0fb9b1a5324237fefa142c2903 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Tue, 5 Sep 2023 11:48:18 +0200 Subject: [PATCH 14/19] * Remove unused opts argument for recompile --- varats/varats/projects/cpp_projects/dune.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index aef4107b3..dd0d1c402 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -190,10 +190,8 @@ def recompile(self) -> None: with local.cwd(version_source): dunecontrol = cmd['./dune-common/bin/dunecontrol'] - bb.watch(dunecontrol)( - '--module=dune-performance-regressions', '--opts=vara.opts', - 'make' - ) + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'make') def run_tests(self) -> None: pass From b7b4f1e59e920468d99e139b4f1c07ae6a121cc5 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Fri, 6 Oct 2023 10:18:37 +0200 Subject: [PATCH 15/19] * Added new binary names for Dune --- varats/varats/projects/cpp_projects/dune.py | 104 ++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index dd0d1c402..9d5736ae6 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -94,6 +94,58 @@ class DunePerfRegression(VProject): ) / RSBinary('poisson-yasp-q2-3d'), label='poisson-yasp-q2-3d', creates=['poisson-yasp-q2-3d.vtu'] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('dune_performance_regressions'), + label='dune_helloworld' + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_test'), + label='poisson_non_separated', + creates=[ + 'poisson_UG_Pk_2d.vtu', 'poisson-yasp-Q1-2d.vtu', + 'poisson-yasp-Q1-3d.vtu', 'poisson-yasp-Q2-2d.vtu', + 'poisson-yasp-Q2-3d.vtu' + ] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_ug_pk_2d'), + label='poisson_ug_pk_2d', + creates=['poisson-UG-Pk-2d.vtu'] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_yasp_q1_2d'), + label='poisson_yasp_q1_2d', + creates=['poisson-yasp-q1-2d.vtu'] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_yasp_q1_3d'), + label='poisson_yasp_q1_3d', + creates=['poisson-yasp-q1-3d.vtu'] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_yasp_q2_2d'), + label='poisson_yasp_q2_2d', + creates=['poisson-yasp-q2-2d.vtu'] + ), + Command( + SourceRoot( + "dune-VaRA/dune-performance-regressions/build-cmake/src" + ) / RSBinary('poisson_yasp_q2_3d'), + label='poisson_yasp_q2_3d', + creates=['poisson-yasp-q2-3d.vtu'] ) ] } @@ -158,6 +210,58 @@ def binaries_for_revision( only_valid_in=separated_poisson_range ) + new_binary_naming_range = RevisionRange( + '332a9af0b7e3336dd72c4f4b74e09df525b6db0d', 'main' + ) + + binary_map.specify_binary( + 'dune_performance_regressions', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_test', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_alberta', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_ug_pk_2d', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_yasp_q1_2d', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_yasp_q2_3d', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_yasp_q2_2d', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + + binary_map.specify_binary( + 'poisson_yasp_q1_3d', + BinaryType.EXECUTABLE, + only_valid_in=new_binary_naming_range + ) + return binary_map[revision] def compile(self) -> None: From 20b9607fc9f65fa9eb79bfa68079ac93c9997d15 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Fri, 6 Oct 2023 15:46:37 +0200 Subject: [PATCH 16/19] * Removed c_flags and env from recompile in dune --- varats/varats/projects/cpp_projects/dune.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 9d5736ae6..591c5b837 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -286,16 +286,11 @@ def recompile(self) -> None: """Recompiles Dune after e.g. a Patch has been applied.""" version_source = local.path(self.source_of(self.primary_source)) - # Currently Phasar passes crash the compiler - # This limits us to analysing compile time variability - self.cflags += ["-mllvm", "--vara-disable-phasar"] - - with local.env(CC=bb.compiler.cc(self), CXX=bb.compiler.cxx(self)): - with local.cwd(version_source): - dunecontrol = cmd['./dune-common/bin/dunecontrol'] + with local.cwd(version_source): + dunecontrol = cmd['./dune-common/bin/dunecontrol'] - bb.watch(dunecontrol - )('--module=dune-performance-regressions', 'make') + bb.watch(dunecontrol + )('--module=dune-performance-regressions', 'make') def run_tests(self) -> None: pass From c69731788730a2e3669f0fac2b85016cc05b2857 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Fri, 6 Oct 2023 16:02:29 +0200 Subject: [PATCH 17/19] * Removed explicit cflags from dune project and added Note for reference --- varats/varats/projects/cpp_projects/dune.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 591c5b837..2b7a576d6 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -21,8 +21,19 @@ class DunePerfRegression(VProject): - """Simulation framework for various applications in mathematics and - physics.""" + """ + Simulation framework for various applications in mathematics and physics. + + Note: + Currently Dune CANNOT be compiled with the Phasar passes activated + in vara. + Trying to do so will crash the compiler + + If you use Dune with an experiment that uses the vara compiler, + add `-mllvm --vara-disable-phasar` to the projects `cflags` to disable phasar + passes. + This will still allow to analyse compile-time variability. + """ NAME = 'DunePerfRegression' GROUP = 'cpp_projects' @@ -33,7 +44,7 @@ class DunePerfRegression(VProject): project_name='DunePerfRegression', remote='git@github.com:se-sic/dune-VaRA.git', local='dune-VaRA', - refspec='origin/f-RefactorPoissonFeature', + refspec='origin/HEAD', limit=None, shallow=False ) @@ -268,10 +279,6 @@ def compile(self) -> None: """Compile the project using the in-built tooling from dune.""" version_source = local.path(self.source_of(self.primary_source)) - # Currently Phasar passes crash the compiler - # This limits us to analysing compile time variability - self.cflags += ["-mllvm", "--vara-disable-phasar"] - c_compiler = bb.compiler.cc(self) cxx_compiler = bb.compiler.cxx(self) From 52f93608f8166841d25358bb918943f4e1bf7232 Mon Sep 17 00:00:00 2001 From: Florian Sattler Date: Fri, 6 Oct 2023 16:27:13 +0200 Subject: [PATCH 18/19] Apply suggestions from code review --- varats/varats/projects/cpp_projects/dune.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 2b7a576d6..36af5ec01 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -30,8 +30,8 @@ class DunePerfRegression(VProject): Trying to do so will crash the compiler If you use Dune with an experiment that uses the vara compiler, - add `-mllvm --vara-disable-phasar` to the projects `cflags` to disable phasar - passes. + add `-mllvm --vara-disable-phasar` to the projects `cflags` to + disable phasar passes. This will still allow to analyse compile-time variability. """ From 13b2c2681c4f0366adbc99c219ec96bf04adc2a6 Mon Sep 17 00:00:00 2001 From: Florian Sattler Date: Fri, 6 Oct 2023 19:02:02 +0200 Subject: [PATCH 19/19] Apply suggestions from code review --- varats/varats/projects/cpp_projects/dune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varats/varats/projects/cpp_projects/dune.py b/varats/varats/projects/cpp_projects/dune.py index 36af5ec01..aba9ef16d 100644 --- a/varats/varats/projects/cpp_projects/dune.py +++ b/varats/varats/projects/cpp_projects/dune.py @@ -30,7 +30,7 @@ class DunePerfRegression(VProject): Trying to do so will crash the compiler If you use Dune with an experiment that uses the vara compiler, - add `-mllvm --vara-disable-phasar` to the projects `cflags` to + add `-mllvm --vara-disable-phasar` to the projects `cflags` to disable phasar passes. This will still allow to analyse compile-time variability. """