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
|
2020-07-29 18:38:39 +02:00
|
|
|
inherit (import ./gen.nix) genApps genApp genConfigs;
|
2020-07-27 11:14:33 +02:00
|
|
|
|
2020-07-24 13:24:30 +02:00
|
|
|
garlic = rec {
|
2020-07-24 15:30:28 +02:00
|
|
|
|
|
|
|
mpptest = callPackage ./mpptest { };
|
|
|
|
|
2020-07-31 18:47:33 +02:00
|
|
|
ppong = callPackage ./ppong {
|
|
|
|
mpi = bsc.mpi;
|
|
|
|
};
|
2020-07-24 15:30:28 +02:00
|
|
|
|
2020-07-27 17:55:56 +02:00
|
|
|
nbody = callPackage ./nbody {
|
|
|
|
cc = pkgs.gcc7;
|
|
|
|
gitBranch = "garlic/seq";
|
|
|
|
};
|
|
|
|
|
2020-07-31 18:47:33 +02:00
|
|
|
srunner = callPackage ./srunner.nix { };
|
|
|
|
|
|
|
|
ppong-job = srunner { app=ppong; };
|
2020-07-29 18:38:39 +02:00
|
|
|
|
2020-07-27 11:14:33 +02:00
|
|
|
exp = {
|
2020-08-04 18:38:33 +02:00
|
|
|
|
2020-08-04 11:51:09 +02:00
|
|
|
jobs = callPackage ./experiments {
|
|
|
|
apps = map (app: srunner {app=app;}) (
|
|
|
|
genApps [ ppong ] (
|
|
|
|
genConfigs {
|
|
|
|
mpi = [ bsc.intel-mpi pkgs.mpich pkgs.openmpi ];
|
|
|
|
}
|
|
|
|
)
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2020-07-27 11:14:33 +02:00
|
|
|
mpiImpl = callPackage ./experiments {
|
|
|
|
apps = genApps [ ppong ] (
|
|
|
|
genConfigs {
|
|
|
|
mpi = [ bsc.intel-mpi pkgs.mpich pkgs.openmpi ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
2020-07-27 17:55:56 +02:00
|
|
|
|
2020-08-04 18:38:33 +02:00
|
|
|
nbodyExp = callPackage ./experiments {
|
2020-07-29 18:38:39 +02:00
|
|
|
apps = genApp nbody [
|
|
|
|
{ cc=bsc.icc;
|
|
|
|
cflags="-march=core-avx2"; }
|
|
|
|
{ cc=bsc.clang-ompss2;
|
|
|
|
cflags="-O3 -march=core-avx2 -ffast-math -Rpass-analysis=loop-vectorize"; }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2020-08-04 18:38:33 +02:00
|
|
|
nbodyBS = callPackage ./experiments {
|
2020-07-29 18:38:39 +02:00
|
|
|
apps = genApp nbody (
|
2020-07-27 17:55:56 +02:00
|
|
|
genConfigs {
|
2020-07-29 18:38:39 +02:00
|
|
|
cc = [ bsc.icc ];
|
2020-08-04 18:38:33 +02:00
|
|
|
blocksize = [ 1024 2048 4096 ];
|
2020-07-29 18:38:39 +02:00
|
|
|
});
|
2020-07-27 17:55:56 +02:00
|
|
|
};
|
|
|
|
|
2020-08-04 18:38:33 +02:00
|
|
|
nbodyBSjob = callPackage ./dispatcher.nix {
|
2020-08-10 14:13:28 +02:00
|
|
|
jobs = map (app: srunner {
|
|
|
|
app=app;
|
|
|
|
prefix="/gpfs/projects/bsc15/nix";
|
|
|
|
exclusive=false;
|
|
|
|
ntasks = "1";
|
|
|
|
}
|
|
|
|
) (
|
2020-08-04 18:38:33 +02:00
|
|
|
genApp nbody (
|
|
|
|
genConfigs {
|
|
|
|
cc = [ bsc.icc ];
|
|
|
|
blocksize = [ 1024 2048 4096 ];
|
|
|
|
}
|
|
|
|
)
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2020-07-27 17:55:56 +02:00
|
|
|
# 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-29 18:38:39 +02:00
|
|
|
cflags = [ "-O3 -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
|