HPC-Runner-Scheduler
view release on metacpan or search on metacpan
lib/HPC/Runner/Scheduler.pm view on Meta::CPAN
[% IF PARTITION %]
#SBATCH --partition=[% PARTITION %]
[% END %]
[% IF CPU %]
#SBATCH --cpus-per-task=[% CPU %]
[% END %]
[% IF self.has_mem %]
#SBATCH --mem=[% self.mem %]
[% END %]
[% IF self.has_walltime %]
#SBATCH --time=[% self.walltime %]
[% END %]
[% IF AFTEROK %]
#SBATCH --dependency=afterok:[% AFTEROK %]
[% END %]
[% IF MODULE %]
[% FOR d = MODULE %]
module load [% d %]
[% END %]
[% END %]
[% COMMAND %]
EOF
print $fh $tt;
return $filename;
},
predicate => 'has_template_file',
clearer => 'clear_template_file',
documentation =>
q{Path to Slurm template file if you do not wish to use the default}
);
=head2 serial
Option to run all jobs serially, one after the other, no parallelism
The default is to use 4 procs
=cut
has serial => (
is => 'rw',
isa => 'Bool',
default => 0,
documentation =>
q{Use this if you wish to run each job run one after another, with each job starting only after the previous has completed successfully},
predicate => 'has_serial',
clearer => 'clear_serial'
);
=head2 user
user running the script. Passed to slurm for mail information
=cut
has 'user' => (
is => 'rw',
isa => 'Str',
default => sub { return $ENV{LOGNAME} || $ENV{USER} || getpwuid($<); },
required => 1,
documentation =>
q{This defaults to your current user ID. This can only be changed if running as an admin user}
);
=head2 use_threads
Bool value to indicate whether or not to use threads. Default is uses processes
If using threads your perl must be compiled to use threads!
=cut
has 'use_threads' => (
is => 'rw',
isa => 'Bool',
default => 0,
required => 0,
documentation => q{Use threads to run jobs},
);
=head2 use_processes
Bool value to indicate whether or not to use processes. Default is uses processes
=cut
has 'use_processes' => (
is => 'rw',
isa => 'Bool',
default => 1,
required => 0,
documentation => q{Use processes to run jobs},
);
=head2 use_gnuparallel
Bool value to indicate whether or not to use processes. Default is uses processes
=cut
has 'use_gnuparallel' => (
is => 'rw',
isa => 'Bool',
default => 0,
required => 0,
documentation =>
q{Use gnu-parallel to run jobs and manage threads. This is the best option if you do not know how many threads your application uses!}
);
=head2 use_custom
Supply your own command instead of mcerunner/threadsrunner/etc
=cut
has 'custom_command' => (
is => 'rw',
isa => 'Str',
predicate => 'has_custom_command',
( run in 0.475 second using v1.01-cache-2.11-cpan-13bb782fe5a )