update runner scripts to allow different experiment arguments

This commit is contained in:
2026-05-27 16:37:15 +02:00
parent ebaf128d92
commit 25e10511e1
3 changed files with 37 additions and 12 deletions

View File

@ -18,7 +18,7 @@ my $local_builds_dir = "$local_root/builds";
my $remote_root = '/home/lab/smchurla/Documents/failnix'; my $remote_root = '/home/lab/smchurla/Documents/failnix';
my $remote_builds_dir = "$remote_root/builds"; my $remote_builds_dir = "$remote_root/builds";
my $remote_runner = "$remote_root/scripts/runner.pl"; my $remote_runner = "$remote_root/scripts/multi_runner.pl";
my $remote_log = "$remote_root/runner.log"; my $remote_log = "$remote_root/runner.log";
# Upload new experiments # Upload new experiments

26
scripts/multi_runner.pl Normal file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env perl
use strict;
use warnings;
use diagnostics;
use FindBin;
use lib $FindBin::Bin;
use Util;
use feature 'say';
my $remote_root = '/home/lab/smchurla/Documents/failnix';
my $remote_builds_dir = "$remote_root/builds";
# Run experiments
my @experiments = Util::find_subdirs($remote_builds_dir);
for my $experiment (@experiments) {
say "Running experiment: $experiment";
my $experiment_runner = "$remote_builds_dir/$experiment/runner.pl";
system( "perl", $experiment_runner, $experiment ) == 0
or warn "runner.pl failed for $experiment: $?";
}
Util::notify("Finished all experiments");

View File

@ -6,6 +6,7 @@ use diagnostics;
use FindBin; use FindBin;
use lib $FindBin::Bin; use lib $FindBin::Bin;
use lib "$FindBin::Bin/../../scripts";
use Util; use Util;
@ -273,16 +274,14 @@ sub results {
} }
} }
# Run experiments # Run single experiment passed as argument
my @experiments = Util::find_subdirs($remote_builds_dir); my $experiment = $ARGV[0] or die "Usage: runner.pl <experiment>\n";
for my $experiment (@experiments) { Util::rewrite_file( $remote_db_conf, "database=",
Util::rewrite_file( $remote_db_conf, "database=", "database=${db_prefix}_$experiment\n" );
"database=${db_prefix}_$experiment\n" );
trace($experiment); trace($experiment);
import_trace($experiment); import_trace($experiment);
inject($experiment); inject($experiment);
results($experiment); results($experiment);
}
Util::notify("Finished all experiments"); Util::notify("Finished experiment $experiment");