[torquedev] job logging showjobs vmem patch

Ken Nielson knielson at adaptivecomputing.com
Tue Jan 24 09:20:55 MST 2012


----- Original Message -----
> From: "Gareth Williams" <Gareth.Williams at csiro.au>
> To: torquedev at supercluster.org
> Sent: Tuesday, January 24, 2012 2:15:16 AM
> Subject: Re: [torquedev] job logging showjobs vmem patch
> 
> > -----Original Message-----
> > From: torquedev-bounces at supercluster.org [mailto:torquedev-
> > bounces at supercluster.org] On Behalf Of Gareth.Williams at csiro.au
> > Sent: Thursday, 19 January 2012 4:02 PM
> > To: torquedev at supercluster.org
> > Subject: [ExternalEmail] Re: [torquedev] job logging showjobs vmem
> > patch
> > 
> > > -----Original Message-----
> > > From: torquedev-bounces at supercluster.org [mailto:torquedev-
> > > bounces at supercluster.org] On Behalf Of Ken Nielson
> > > Sent: Tuesday, 17 January 2012 4:42 AM
> > > To: Torque Developers mailing list
> > > Subject: Re: [torquedev] job logging showjobs vmem patch
> > >
> > > Gareth,
> > >
> > > I see what you mean. If you have time and are willing to fix this
> > > for
> > > array jobs we would be very happy.
> > >
> > > Ken
> > >
> > > ----- Original Message -----
> > > > From: "Gareth Williams" <Gareth.Williams at csiro.au>
> > > > To: torquedev at supercluster.org
> > > > Sent: Sunday, January 15, 2012 9:17:31 PM
> > > > Subject: Re: [torquedev] job logging showjobs vmem patch
> > > >
> > > > I've just noticed that array jobs are not particularly well
> > > > handled
> > > > by the showjobs script:
> > -snip-
> > 
> > Here's a patch for showjobs to handle array jobs better.  There is
> > a
> > second path to express memory in mebibytes or gibibytes if the
> > values
> > are big enough (someone local asked for that - and it is meant to
> > be
> > human readable). I noticed that there is a job record for the whole
> > array which has some value but it contains Output and Error file
> > fields
> > which (currently) no such files are created.
> > 
> > Gareth
> 
> Hi Ken,
> 
> I'm sorry to say there was a bug in the first patch - the first bit
> of new code needed to be in the block above.  I'm also worried that
> my email is mangling text - maybe related to mixed line endings in
> the file.
> 
> I'll send a zipped attachment of my current version directly to you
> for Adaptive to consider.
> 
> Gareth
> 
> > 
> > --- /apps/torque/bin/showjobs   2012-01-16 19:37:43.336090321 +1100
> > +++ showjobs    2012-01-19 14:42:48.032725413 +1100
> > @@ -73,6 +73,11 @@
> >      }
> >  }
> > 
> > +# treat brackets as literal in job id for array jobs
> > +$specifiedJobId =~ s/\[/\\\[/g;
> > +$specifiedJobId =~ s/\]/\\\]/g;
> > +
> > +
> >  # Build a sorted list of job files
> >  chdir("${torqueHomeDir}/job_logs")
> >    or die
> > @@ -265,7 +270,7 @@
> >                if (
> >                  defined $specifiedJobId
> >                  && (! defined $jobAttr{'Job Id'}
> > -                    || $jobAttr{'Job Id'} !~
> > /^${specifiedJobId}\b/)
> > +                    || $jobAttr{'Job Id'} !~
> > /^${specifiedJobId}(?:.|\b)/)
> >                );
> >              next
> >                if (
> > 
> > --- showjobs    2012-01-19 15:57:42.517901727 +1100
> > +++ showjobs.mgb        2012-01-19 15:46:36.319334573 +1100
> > @@ -185,11 +185,11 @@
> >          }
> >          elsif ($line =~ /<mem>([^<]+)</ && $context eq
> > 'resources_used')
> >          {
> > -            $jobAttr{'Memory Used'} = $1;
> > +            $jobAttr{'Memory Used'} = ktoMG($1);
> >          }
> >          elsif ($line =~ /<vmem>([^<]+)</ && $context eq
> > 'resources_used')
> >          {
> > -            $jobAttr{'vmem Used'} = $1;
> > +            $jobAttr{'vmem Used'} = ktoMG($1);
> >          }
> >          elsif ($line =~ /<opsys>([^<]+)</ && $context eq
> > 'resource_List')
> >          {
> > @@ -414,6 +414,31 @@
> >      else { return sprintf('%02d:%02d:%02d', $hours, $minutes,
> > $seconds); }
> >  }
> > 
> > +
> > +######################################################################
> > ##########
> > +# $ktoMG = ktoMG($kilo)
> > +# Converts kilo units to mega or giga (mebi and gibi)
> > +# k, M and G are used rather than the more correct Ki, Mi and Gi
> > +######################################################################
> > ##########
> > +sub ktoMG
> > +{
> > +    my ($value) = @_;
> > +    if ($value =~ /^\s*(\d+)k/) {
> > +        my $k = $1;
> > +        if ($k > 1024) {
> > +            my $M = $k / 1024;
> > +            if ($M > 1024) {
> > +                my $G = $M / 1024;
> > +                $G = sprintf("%.1f", $G);
> > +                $value =~ s/${k}k/${G}G/;
> > +            } else {
> > +                $M = sprintf("%.1f", $M);
> > +                $value =~ s/${k}k/${M}M/;
> > +            }
> > +        }
> > +    }
> > +    return $value;
> > +}
> > 
> > #######################################################################
> > #######
> > 
> >  __END__
> > _______________________________________________
> > torquedev mailing list
> > torquedev at supercluster.org
> > http://www.supercluster.org/mailman/listinfo/torquedev
> _______________________________________________
Gareth,

I will wait for the zip file to merge your changes.

Ken


More information about the torquedev mailing list