From 7a80d1ca98c4d4da82ae635a0310510ba1bb4bb1 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Thu, 5 Nov 2020 19:52:37 +0100 Subject: [PATCH] heat: Use clang by default --- garlic/apps/heat/default.nix | 39 +++++++++++++++++++++++++----------- overlay.nix | 18 +++++++++++++---- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/garlic/apps/heat/default.nix b/garlic/apps/heat/default.nix index c249b41..8fcf324 100644 --- a/garlic/apps/heat/default.nix +++ b/garlic/apps/heat/default.nix @@ -1,32 +1,47 @@ { stdenv -, nanos6 , mpi , tampi -, mcxx -, icc +, clangOmpss2 +, bsx ? 1024 +, bsy ? 1024 }: stdenv.mkDerivation rec { name = "heat"; + extension = if (bsx == bsy) + then "${toString bsx}bs.exe" + else "${toString bsx}x${toString bsy}bs.exe"; - src = builtins.fetchGit { - url = "ssh://git@bscpm02.bsc.es/benchmarks/ompss-2/heat-conflict-kevin.git"; - #rev = "25fde23e5ad5f5e2e58418ed269bc2b44642aa17"; - ref = "master"; - }; + variant = "heat_ompss"; + target = "${variant}.${extension}"; + + makeFlags = [ + "BSX=${toString bsx}" + "BSY=${toString bsy}" + target + ]; + + src = ~/heat; + #src = builtins.fetchGit { + # url = "ssh://git@bscpm02.bsc.es/garlic/apps/heat.git"; + # ref = "garlic"; + #}; buildInputs = [ - nanos6 mpi - icc + clangOmpss2 tampi - mcxx ]; + programPath = "/bin/${target}"; + installPhase = '' mkdir -p $out/bin - cp heat_* $out/bin/ + cp ${target} $out/bin/ + + mkdir -p $out/etc + cp heat.conf $out/etc/ ''; } diff --git a/overlay.nix b/overlay.nix index b95766c..6e97e96 100644 --- a/overlay.nix +++ b/overlay.nix @@ -238,10 +238,20 @@ let }; -# heat = callPackage ./garlic/apps/heat { -# stdenv = pkgs.gcc7Stdenv; -# mpi = intel-mpi; -# tampi = tampi; + heat = callPackage ./garlic/apps/heat/default.nix { }; +# heat = callPackage ./garlic/apps/heat/default.nix { +# # FIXME: The heat program must be able to compile with gcc9 and newer +# stdenv = self.gcc7Stdenv; +# #mpi = intel-mpi; +# #tampi = tampi; +# +# # FIXME: Nanos6 fails to load if we are not using a compatible stdc++ +# # version, so we use the same provided by gcc7 +# mcxx = self.bsc.mcxx.override { +# nanos6 = self.bsc.nanos6.override { +# stdenv = self.gcc7Stdenv; +# }; +# }; # }; # # lulesh = callPackage ./garlic/apps/lulesh {