]> git.donarmstrong.com Git - uiuc_igb_scripts.git/blobdiff - dqsub
fixup array slot limit
[uiuc_igb_scripts.git] / dqsub
diff --git a/dqsub b/dqsub
index 98e494780e6883c2d46c298fcd4268487743df92..245f11ece72bca05abcc6736ba2c37badbaa5150 100755 (executable)
--- a/dqsub
+++ b/dqsub
@@ -26,6 +26,7 @@ dqsub [options]
    --nodes nodes to use
    --array array mode (one of 'chdir' or 'xargs' or '')
    --array-from file to read arrays from (default STDIN)
+   --array-slot-limit
    --ppn processors per node to use
    --mem memory to request
    --dir Directory to run the script in (default current directory)
@@ -96,6 +97,7 @@ GetOptions(\%options,
            'nodes=i',
            'array=s',
            'array_from|array-from=s',
+           'array_slot_limit|array-slot-limit=i',
            'ppn|processors-per-node=i',
            'mem|memory=s',
            'dir=s',
@@ -136,6 +138,9 @@ if ($options{interactive}) {
         @array = read_array_options(\%options) if $options{array};
         # the -t option gives the range of elements for an array job
         push @qsub_options,'-t','1-'. scalar @array;
+        if ($options{array_slot_limit}) {
+            $qsub_options[$#qsub_options] .= '%'.$options{array_slot_limit};
+        }
     }
     call_qsub(\@qsub_options,write_qsub_script(\%options,\@ARGV,\@array));
 }
@@ -204,7 +209,7 @@ EOF
     if (defined $opt->{array}) {
         my $array_opt = join("\n",@{$array});
         $script .= <<EOF;
-OPT=\$(sed -n -e "\$PBS_ARRAYID p"<<'_HERE_DOC_END'
+OPT=\$(sed -n -e "\$PBS_ARRAYID p"<<'_HERE_DOC_END_'
 $array_opt
 _HERE_DOC_END_
 )
@@ -219,7 +224,6 @@ EOF
 exec $command "\$OPT";
 EOF
         }
-        die "--array is currently not implemented";
     } else {
         $script .= <<EOF;
 # there's no array, so just executing the command with arguments