--ppn processors per node to use
--mem memory to request
--dir Directory to run the script in (default current directory)
+ --name, -N Name of the job
--debug, -d debugging level (Default 0)
--help, -h display this help
--man, -m display manual
use IO::File;
use Cwd qw(getcwd abs_path);
use POSIX qw(ceil);
+use List::Util qw(min);
use vars qw($DEBUG);
my %options = (nodes => 1,
'ppn|processors-per-node=i',
'mem|memory=s',
'dir=s',
+ 'name=s',
'debug|d+','help|h|?','man|m');
# pod2usage() if $options{help};
print STDERR join("\n",@USAGE_ERRORS) and exit 1 if @USAGE_ERRORS;
# OK. Generate the options to qsub which we'll be using
-my @qsub_options = generate_qsub_options(\%options);
+my @qsub_options = generate_qsub_options(\%options,\@ARGV);
if ($options{interactive}) {
print STDERR 'running: qsub '.join(' ',@qsub_options) if $DEBUG;
}
sub generate_qsub_options{
- my ($options) = @_;
+ my ($options,$args) = @_;
my @qo;
if (defined $options->{queue} and length $options->{queue}) {
push @qo,'-q',$options->{queue};
if ($options->{interactive}) {
push @qo,'-I';
}
+ if ($options->{name}) {
+ push @qo,'-N',$options->{name};
+ } else {
+ push @qo,'-N',join('_',@{$args}[0..min($#{$args},2)]);
+ }
return @qo;
}