HPC-Runner-Command
view release on metacpan or search on metacpan
lib/HPC/Runner/Command/submit_jobs/Plugin/SGE.pm view on Meta::CPAN
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 Subroutines
=cut
=head3 submit_jobs
Submit jobs to slurm queue using PBS.
Format is
"Your job <job_id> ("<job_name>") has been submitted"
=cut
sub submit_jobs {
my $self = shift;
my ( $exitcode, $stdout, $stderr ) =
$self->submit_to_scheduler(
$self->submit_command . " " . $self->slurmfile );
sleep(5);
if ( $exitcode != 0 ) {
$self->log->fatal("Job was not submitted successfully");
$self->log->warn( "STDERR: " . $stderr ) if $stderr;
$self->log->warn( "STDOUT: " . $stdout ) if $stdout;
}
# my $jobid = $stdout;
my $jobid;
($jobid) = $stdout =~ m/Your job (\d.*) \(/;
if ( !$jobid ) {
$self->job_failure;
}
else {
$self->log->debug(
"Submited job " . $self->slurmfile . "\n\tWith SGE jobid $jobid" );
}
return $jobid;
}
=head3 update_job_deps
Update the job dependencies if using job_array (not batches)
NOTE - Task dependencies may not be supported.
=cut
sub update_job_deps {
my $self = shift;
return unless $self->has_array_deps;
$self->log->warn('Task dependencies in SGE is still very experimental!');
$self->log->warn( 'Please raise any problems as an issue at github.' . "\n"
. "\thttp://github.com/biosails/HPC-Runner-Command" );
while ( my ( $current_task, $v ) = each %{ $self->array_deps } ) {
my $cmd;
if ( $self->use_batches ) {
my $dep_tasks = join( ':', @$v );
$cmd = "qalter -hold_jid \"$dep_tasks\" $current_task ";
}
else {
foreach my $tv ( @{$v} ) {
my @tmp = split( '_', $tv );
$tv = $tmp[0] . '[' . $tmp[1] . ']';
}
my @tmp = split( '_', $current_task );
$current_task = $tmp[0] . '[' . $tmp[1] . ']';
my $dep_tasks = join( ':', @$v );
$cmd = "qalter -hold_jid \"$dep_tasks\" \"$current_task\" ";
}
$self->submit_to_scheduler($cmd);
}
}
1;
( run in 1.706 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )