2020-07-24 13:24:30 +02:00
|
|
|
{
|
|
|
|
pkgs
|
|
|
|
, bsc
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
callPackage = pkgs.lib.callPackageWith (pkgs // bsc // garlic);
|
|
|
|
callPackages = pkgs.lib.callPackagesWith (pkgs // bsc // garlic);
|
2020-07-27 11:14:33 +02:00
|
|
|
|
|
|
|
# Load some helper functions to generate app variants
|
|
|
|
inherit (import ./gen.nix) genApps genConfigs;
|
|
|
|
|
2020-07-24 13:24:30 +02:00
|
|
|
garlic = rec {
|
2020-07-24 15:30:28 +02:00
|
|
|
|
|
|
|
mpptest = callPackage ./mpptest { };
|
|
|
|
|
|
|
|
ppong = callPackage ./ppong { };
|
|
|
|
|
2020-07-27 17:55:56 +02:00
|
|
|
nbody = callPackage ./nbody {
|
|
|
|
cc = pkgs.gcc7;
|
|
|
|
gitBranch = "garlic/seq";
|
|
|
|
};
|
|
|
|
|
2020-07-27 11:14:33 +02:00
|
|
|
exp = {
|
|
|
|
mpiImpl = callPackage ./experiments {
|
|
|
|
apps = genApps [ ppong ] (
|
|
|
|
genConfigs {
|
|
|
|
mpi = [ bsc.intel-mpi pkgs.mpich pkgs.openmpi ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
2020-07-27 17:55:56 +02:00
|
|
|
|
|
|
|
nbody = callPackage ./experiments {
|
|
|
|
apps = genApps [ nbody ] (
|
|
|
|
genConfigs {
|
|
|
|
cc = [ pkgs.gcc7 pkgs.gcc9 ];
|
|
|
|
gitBranch = [ "garlic/seq" ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
# Test if there is any difference between intel -march and -xCORE
|
|
|
|
# with target avx2.
|
|
|
|
march = callPackage ./experiments {
|
|
|
|
apps = genApps [ nbody ] (( genConfigs {
|
|
|
|
cc = [ bsc.icc ];
|
|
|
|
cflags = [ "-march=core-avx2" "-xCORE-AVX2" ];
|
|
|
|
}) ++ ( genConfigs {
|
|
|
|
cc = [ bsc.clang-ompss2 ];
|
2020-07-27 19:13:21 +02:00
|
|
|
cflags = [ "-march=core-avx2 -Rpass-analysis=loop-vectorize" ];
|
2020-07-27 17:55:56 +02:00
|
|
|
}));
|
|
|
|
};
|
2020-07-24 15:30:28 +02:00
|
|
|
};
|
2020-07-24 13:24:30 +02:00
|
|
|
};
|
2020-07-27 11:14:33 +02:00
|
|
|
|
2020-07-24 13:24:30 +02:00
|
|
|
in
|
|
|
|
garlic
|