HPC-Runner-Command
view release on metacpan or search on metacpan
lib/HPC/Runner/Command/submit_jobs/Utils/Scheduler/Directives.pm view on Meta::CPAN
q{Number of nodes requested. You should only use this if submitting parallel jobs.},
predicate => 'has_nodes_count',
clearer => 'clear_nodes_count'
);
=head3 partition
Specify the partition.
In PBS this is called 'queue'
=cut
option 'partition' => (
is => 'rw',
isa => 'Str',
required => 0,
documentation => q{Slurm partition to submit jobs to.},
predicate => 'has_partition',
clearer => 'clear_partition'
);
=head3 walltime
Define scheduler walltime
=cut
option 'walltime' => (
is => 'rw',
isa => 'Str',
required => 0,
default => '00:20:00',
predicate => 'has_walltime',
clearer => 'clear_walltime,'
);
=head2 mem
=cut
option 'mem' => (
is => 'rw',
isa => 'Str|Undef',
predicate => 'has_mem',
clearer => 'clear_mem',
required => 0,
default => '10GB',
documentation => q{Supply a memory limit},
);
=head3 user
user running the script. Passed to slurm for mail information
=cut
option 'user' => (
is => 'rw',
isa => 'Str',
default => sub { return $ENV{USER} || $ENV{LOGNAME} || getpwuid($<); },
required => 1,
documentation =>
q{This defaults to your current user ID. This can only be changed if running as an admin user}
);
=head3 procs
Total number of concurrent running tasks.
Analagous to parallel --jobs i
=cut
option 'procs' => (
is => 'rw',
isa => 'Int',
default => 1,
required => 0,
documentation =>
q{Total number of concurrently running jobs allowed at any time.},
trigger => sub {
my $self = shift;
$self->ntasks_per_node( $self->procs );
}
);
=head3 template_file
actual template file
One is generated here for you, but you can always supply your own with
--template_file /path/to/template
Default is for SLURM
=cut
has 'template_file' => (
is => 'rw',
isa => 'Str',
default => sub {
my $self = shift;
my ( $fh, $filename ) = tempfile();
my $tt = <<EOF;
#!/usr/bin/env bash
#
#SBATCH --share
#SBATCH --job-name=[% JOBNAME %]
#SBATCH --output=[% OUT %]
[% IF job.has_account %]
#SBATCH --account=[% job.account %]
[% END %]
[% IF job.has_partition %]
#SBATCH --partition=[% job.partition %]
[% END %]
[% IF job.has_nodes_count %]
#SBATCH --nodes=[% job.nodes_count %]
[% END %]
( run in 0.612 second using v1.01-cache-2.11-cpan-df04353d9ac )