Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Finding Usable Nodes in our Cluster

by Andrew_Levenson (Hermit)
on Apr 10, 2008 at 19:07 UTC ( #679557=CUFP: print w/replies, xml ) Need Help??

This may be very, very simple compared to most goings on here, but it was cool for me since I still consider myself a newbie yet I was able to hack together a working, useful script in 5 minutes.

This script reads in the output of another script (which tells what nodes in our cluster have how many processors being used), and weeds out which nodes in our cluster are usable (i.e. have zero or one processors being used).

#!/usr/bin/perl #Andrew Levenson #2:13PM EST #Thursday, April 10th, 2008 #Displays nodes on ganglia with 0 or 1 used processors use strict; use warnings; my @open=(); 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,}$/; } print "$_\n" foreach(@open);

This greatly reduces to amount of time I spend scanning my terminal looking for whether or not I can submit a molecule to optimize.
C(qw/74 97 104 112/);sub C{while(@_){$c**=$C;print (map{chr($C!=$c?shift:pop)}$_),$C+=@_%2!=1?1:0}}

Replies are listed 'Best First'.
Re: Finding Usable Nodes in our Cluster
by jwkrahn (Monsignor) on Apr 11, 2008 at 02:37 UTC
    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+$/; }
      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";
      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
Node Status?
node history
Node Type: CUFP [id://679557]
Approved by GrandFather
help
Chatterbox?
[LanX]: It seems that PHP's official docs use "closure" and "anonymous function" interchangeably, even though their closures don't capture surrounding state without using the 'use' language construct.
LanX explains much cargo bla ...
[Eily]: what? I thought PHP was known for its reliable and consistent behaviour and documentation!
[LanX]: ... and a lot of pseudo Perl experts
[Eily]: though honestly, I'm sure I have seen people use closure to mean anonysub for perl as well

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (13)
As of 2018-02-23 17:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When it is dark outside I am happiest to see ...














    Results (303 votes). Check out past polls.

    Notices?