Commit 77acfd11 authored by Valentin Reis's avatar Valentin Reis

STREAM and AMG should both work at this point

parent 17eaf943
Pipeline #4971 failed with stage
in 11 seconds
......@@ -42,7 +42,10 @@ data TestType =
| TestListen
| TestPerfwrapper
| TestPower
| TestAMG deriving (Enum,Bounded,Show)
| TestAMG
| TestSTREAM
| RunAMG
| RunSTREAM deriving (Enum,Bounded,Show)
data TestSpec = TestSpec
{ stackArgsUpdate :: StackArgs -> StackArgs
......@@ -144,9 +147,65 @@ configureTest = \case
}
TestAMG -> TestSpec
{ stackArgsUpdate = \sa -> sa
{ app = AppName "mpiexec"
, args = [AppArg "-n 24 -problem 2 -n 1 1 1 -P 8 3 1"]
, manifestName = "perfwrap.json"
{ manifestName = "parallel.json"
, app = AppName "mpiexec"
, args = [ AppArg "-n"
, AppArg "24"
, AppArg "amg"
, AppArg "-problem"
, AppArg "2"
, AppArg "-n"
, AppArg "1"
, AppArg "1"
, AppArg "1"
, AppArg "-P"
, AppArg "8"
, AppArg "3"
, AppArg "1"
]
, daemon = daemonBehavior
, cmdrun = runBehavior
, cmdlistenprogress = listenprogresstestBehavior (TestText ",")
}
, description = "5: Setup stack, run STREAM and check that it sends\
\ at least one progress message to the daemon."
, isTest = IsTest True
}
TestSTREAM -> TestSpec
{ stackArgsUpdate = \sa -> sa
{ app = AppName "stream_c_20"
, args = []
, daemon = daemonBehavior
, cmdrun = runBehavior
, cmdlistenprogress = listenprogresstestBehavior (TestText ",")
}
, description = "6: Setup stack, run AMG and check that it sends\
\ at least one progress message to the daemon."
, isTest = IsTest True
}
RunAMG -> runAppSpec
(AppName "mpiexec")
[ AppArg "-n"
, AppArg "24"
, AppArg "amg"
, AppArg "-problem"
, AppArg "2"
, AppArg "-n"
, AppArg "10"
, AppArg "10"
, AppArg "10"
, AppArg "-P"
, AppArg "8"
, AppArg "3"
, AppArg "1"
]
RunSTREAM -> runAppSpec (AppName "stream_c_20000") []
where
runAppSpec appName appArgs = TestSpec
{ stackArgsUpdate = \sa -> sa
{ app = appName
, args = appArgs
, manifestName = "parallel.json"
, daemon = daemonBehavior
, cmdrun = runBehavior
, cmdlistenperformance = JustRun (StdOutLog "performance.csv")
......@@ -155,10 +214,9 @@ configureTest = \case
, cmdlistenprogress = JustRun (StdOutLog "progress.csv")
(StdErrLog "progress.log")
}
, description = "Set up and start daemon, run a command in a container."
, description = "Set up and start daemon, run app in a container."
, isTest = IsTest False
}
where
msg = "someComplicatedMessage"
daemonBehavior =
JustRun (StdOutLog "daemon_out.log") (StdErrLog "daemon_err.log")
......@@ -168,6 +226,10 @@ configureTest = \case
t
(StdOutLog "cmd_listen_out.log")
(StdErrLog "cmd_listen_err.log")
listenprogresstestBehavior t = SucceedTestOnMessage
t
(StdOutLog "cmd_listen_progress_out.log")
(StdErrLog "cmd_listen_progress_err.log")
newtype IsTest = IsTest Bool
......
......@@ -11,7 +11,10 @@
nrm-src ? pkgs.nodelevel.nrm.src,
containers-src ? pkgs.nodelevel.containers.src,
libnrm-src ? pkgs.nodelevel.libnrm.src,
amg-src ? pkgs.applications.nrm.amg.src
amg-src ? pkgs.applications.nrm.amg.src,
lammps-src ? pkgs.applications.nrm.lammps.src,
qmcpack-src ? pkgs.applications.nrm.qmcpack.src,
stream-src ? pkgs.applications.nrm.stream.src,
}:
let
filterHdevTools = builtins.filterSource (path: type: baseNameOf path != ".hdevtools.sock");
......@@ -70,10 +73,14 @@ let
in rec
{
#inherit cabal2snack;
nrm = (pkgs.nodelevel.nrm.overrideAttrs (old: { src = nrm-src; })).override{};
libnrm = pkgs.nodelevel.libnrm.overrideAttrs (old: { src = libnrm-src; });
containers = pkgs.nodelevel.containers.overrideAttrs (old: { src = containers-src; });
amg = (pkgs.applications.nrm.amg.overrideAttrs (old: {src = amg-src;})).override {libnrm=libnrm;};
nrm = pkgs.nodelevel.nrm.overrideAttrs (old: {src = nrm-src;} );
libnrm = pkgs.nodelevel.libnrm.overrideAttrs (old: {src = libnrm-src;} );
containers = pkgs.nodelevel.containers.overrideAttrs (old: {src = containers-src;} );
amg = (pkgs.applications.nrm.amg.overrideAttrs (old: {src = amg-src;} )).override {libnrm=libnrm;};
qmcpack = (pkgs.applications.nrm.qmcpack.overrideAttrs (old: {src = qmcpack-src;} )).override {libnrm=libnrm;};
stream-test = (pkgs.applications.nrm.stream.overrideAttrs (old: {src = stream-src;} )).override {libnrm=libnrm; iterationCount = "20";};
stream = (pkgs.applications.nrm.stream.overrideAttrs (old: {src = stream-src;} )).override {libnrm=libnrm; iterationCount = "20000";};
lammps = (pkgs.applications.nrm.lammps.overrideAttrs (old: {src = lammps-src;} )).override {libnrm=libnrm;};
inherit(hpkgs) argo argotk;
......@@ -120,7 +127,9 @@ in rec
pkgs.coreutils
pkgs.utillinux
containers
amg
amg stream stream-test
#qmcpack
#lammps
pkgs.mpich2
nrm
];
......@@ -133,8 +142,10 @@ in rec
env = pkgs.buildEnv { name = name; paths = buildInputs; };
buildInputs = [
containers
amg
nrm
amg stream stream-test
#qmcpack
#lammps
(hpkgs.ghcWithPackages (p: devHPackages ++ [
argotk
argo
......
......@@ -42,9 +42,6 @@ nrm.build:
- _output/.argo_nodeos_config_exit_message
expire_in: 1 week
when: always
except:
- /^wip\/.*/
- /^WIP\/.*/
tags:
- integration
......
{
"acKind": "ImageManifest",
"acVersion": "0.6.0",
"name": "test",
"app": {
"isolators": [
{
"name": "argo/scheduler",
"value": {
"policy": "SCHED_OTHER",
"priority": "0"
}
},
{
"name": "argo/container",
"value": {
"cpus": "24",
"mems": "1"
}
},
{
"name": "argo/perfwrapper",
"value": {
"enabled": "1"
}
},
{
"name": "argo/power",
"value": {
"enabled": "0",
"profile": "0",
"policy": "NONE",
"damper": "0.1",
"slowdown": "1.1"
}
}
]
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment