nixpkgs/nixos/tests/mpich.nix
2015-07-12 12:29:51 +02:00

42 lines
1.2 KiB
Nix

# Simple example to showcase distributed tests using NixOS VMs.
import ./make-test.nix ({ pkgs, ...} : {
name = "mpich";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = {
master =
{ config, pkgs, ... }: {
environment.systemPackages = [ gcc mpich2 ];
#boot.kernelPackages = pkgs.kernelPackages_2_6_29;
};
slave =
{ config, pkgs, ... }: {
environment.systemPackages = [ gcc mpich2 ];
};
};
# Start master/slave MPI daemons and compile/run a program that uses both
# nodes.
testScript =
''
startAll;
$master->succeed("echo 'MPD_SECRETWORD=secret' > /etc/mpd.conf");
$master->succeed("chmod 600 /etc/mpd.conf");
$master->succeed("mpd --daemon --ifhn=master --listenport=4444");
$slave->succeed("echo 'MPD_SECRETWORD=secret' > /etc/mpd.conf");
$slave->succeed("chmod 600 /etc/mpd.conf");
$slave->succeed("mpd --daemon --host=master --port=4444");
$master->succeed("mpicc -o example -Wall ${./mpich-example.c}");
$slave->succeed("mpicc -o example -Wall ${./mpich-example.c}");
$master->succeed("mpiexec -n 2 ./example >&2");
'';
})