Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Finding Usable Nodes in our Cluster

by jwkrahn (Abbot)
on Apr 11, 2008 at 02:37 UTC ( [id://679611]=note: print w/replies, xml ) Need Help??


in reply to Finding Usable Nodes in our Cluster

my $ganglia=`ganglia proc_run`; my @results=split(/\n/, $ganglia); foreach(@results) { push @open, $_ if $_=~m/\s{1,}1\s{1,}$/; unshift @open, $_ if $_=~m/\s{1,}0\s{1,}$/; }

That could be simplified to:

foreach ( `ganglia proc_run` ) { push @open, $_ if /\s1\s+$/; unshift @open, $_ if /\s0\s+$/; }

Replies are listed 'Best First'.
Re^2: Finding Usable Nodes in our Cluster
by Andrew_Levenson (Hermit) on Apr 11, 2008 at 17:05 UTC
    Awesome, it works great! I updated it to include some formatting of the output to make everything pretty.
    #!/usr/bin/perl #Andrew Levenson #2:13PM EST #Thursday, April 10th, 2008 #Displays nodes on Deli with 0 or 1 used processors use strict; use warnings; print "\n"; my @open=("\n", "One Active Processor:\n\n"); foreach ( `ganglia proc_run` ) { unshift @open, $_ if /\s0\s+$/; push @open, $_ if /\s1\s+$/; } print "Zero Active Processors:\n\n"; print $_ foreach(@open); print "\n";
    C(qw/74 97 104 112/);sub C{while(@_){$c**=$C;print (map{chr($C!=$c?shift:pop)}$_),$C+=@_%2!=1?1:0}}
      print $_ foreach(@open);

      You don't really need the loop there:

      print @open;

      And it might be better if you used strings instead of arrays:

      use strict; use warnings; my $zero = "\nZero Active Processors:\n\n"; my $one = "\nOne Active Processor:\n\n"; foreach ( `ganglia proc_run` ) { $zero .= $_ if /\s0\s+$/; $one .= $_ if /\s1\s+$/; } print "$zero$one\n";
        Wow, that's fantastic. I hadn't even considered that approach. It's nice because the formatting of the output of `ganglia proc_run` is conducive to being easily read with minimal reformatting effort.

        Is there any considerable speed advantage to using the string instead of the array? Or does it have to do with memory usage?
        Current form:
        #!/usr/bin/perl #Andrew Levenson #4:14PM EST #Friday, April 11th, 2008 #Displays nodes on Deli with 0 or 1 used processors use strict; use warnings; my $zero = "\nZero Active Processors:\n\n"; my $one = "\nOne Active Processor:\n\n"; foreach ( `ganglia proc_run` ) { $zero .= $_ if /\s0\s+$/ & !/deli/; $one .= $_ if /\s1\s+$/ & !/deli/; } print "$zero$one\n";
        C(qw/74 97 104 112/);sub C{while(@_){$c**=$C;print (map{chr($C!=$c?shift:pop)}$_),$C+=@_%2!=1?1:0}}
Re^2: Finding Usable Nodes in our Cluster
by Andrew_Levenson (Hermit) on Apr 11, 2008 at 16:48 UTC
    Ah, thank you! I'll give it a shot when I get back to the lab.
    C(qw/74 97 104 112/);sub C{while(@_){$c**=$C;print (map{chr($C!=$c?shift:pop)}$_),$C+=@_%2!=1?1:0}}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://679611]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-04-19 10:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found