<div>Bill:</div>
<div>&nbsp;</div>
<div>The following&nbsp;perl script seems to do the job.</div>
<div>It essentially works on pbsnodes -a. You may have to modify it&nbsp;slightly&nbsp;since</div>
<div>some statements in this script&nbsp;are customized for the set-up I work on.</div>
<div>&nbsp;</div>
<div>-Madhu</div>
<div>&nbsp;</div>
<div>------------------------------------------------------------------------------------------------------------------------------------------------------</div>
<div>
<p>#!/usr/bin/perl</p>
<p>$nodes_free=0;<br>$single_cpu_node_free=0;</p>
<p>open( PBSNODES, &quot;pbsnodes -a |&quot;) || die &quot;Could not run pbsnodes: $!\n&quot;;</p>
<p>printf &quot;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&quot;;<br>printf &quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLUSTER STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n&quot;;<br>printf &quot;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&quot;;
<br>while(&lt;PBSNODES&gt;) {<br>&nbsp; @A=split;<br>&nbsp; $NF=$#A + 1.;<br>&nbsp; $NN=$A[0];<br>&nbsp; if ( $NN=~/node/ ) {$ndname=$NN;}<br>&nbsp; if ( $NN=~/head/ ) {$ndname=$NN;}<br>&nbsp; if ( /state/ &amp;&amp; /free/ )<br>&nbsp; {<br>&nbsp;&nbsp; $nodes_free++;
<br>&nbsp;&nbsp; if( $ndname=~/node/ )<br>&nbsp;&nbsp;&nbsp;&nbsp; { printf &quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ndname&nbsp;&nbsp;&nbsp; |&nbsp; free\n&quot;;}<br>&nbsp;&nbsp; }<br>&nbsp; if ( /state/ &amp;&amp; /job-exclusive/ )<br>&nbsp;&nbsp;&nbsp;&nbsp; { printf &quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ndname&nbsp;&nbsp;&nbsp; |&nbsp; NOT free \n&quot;;}<br>&nbsp; if ( /jobs/ &amp;&amp; $NF==3 ) {
<br>&nbsp;&nbsp; $nodes_free--;<br>&nbsp;&nbsp; $single_cpu_node_free++;<br>&nbsp;&nbsp; printf &quot; WAIT !! $ndname has only 1 cpu free\n&quot;;}<br>}</p>
<p>$cpus_free=$nodes_free*2+$single_cpu_node_free;<br>if ( $nodes_free == 0 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$nodes_free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &quot;None&quot;;}<br>if ( $single_cpu_node_free == 0 ) {$single_cpu_node_free&nbsp; = &quot;None&quot;;}<br>if ( $cpus_free == 0 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$cpus_free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &quot;None&quot;;}
<br>$nodes_free--;<br>$cpus_free--;<br>$cpus_free--;<br>$diff=15-$nodes_free;<br>if ( $diff == 0 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$diff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &quot;None&quot;;}</p>
<p>printf &quot;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&quot;;<br>printf &quot; Number of cpus free excluding the head&nbsp;&nbsp;&nbsp;&nbsp; : $cpus_free \n&quot; ;<br>printf &quot; Number of nodes occupied&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $diff\n&quot;;
<br>printf &quot; Number of nodes with both cpus free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $nodes_free\n&quot; ;<br>printf &quot; Number of nodes with only one cpu free&nbsp;&nbsp;&nbsp;&nbsp; : $single_cpu_node_free\n&quot;;<br>printf &quot;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&quot;;
<br><br></p></div>
<div><span class="gmail_quote">On 9/5/06, <b class="gmail_sendername">Garrick Staples</b> &lt;<a href="mailto:garrick@clusterresources.com">garrick@clusterresources.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On Tue, Sep 05, 2006 at 04:14:51PM +0200, bill alleged:<br>&gt; Hello<br>&gt;<br>&gt; How can I know how many resources have I left?
<br>&gt;<br>&gt; By hand, I can make a qstat -f and count how many nodes and ppn are<br>&gt; used, but is there an automatic way to do this?<br>&gt;<br>&gt; With an output like:<br>&gt; cluster with 10 nodes, 3 nodes with 4 ppn free, 2 nodes with 2
<br>&gt; CPU free and 2 nodes with 1 CPU free, other nodes full.<br><br>There is nothing in TORQUE that currently does this, but a contribution<br>along those lines would be accepted :)<br><br>_______________________________________________
<br>torqueusers mailing list<br><a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a><br><a href="http://www.supercluster.org/mailman/listinfo/torqueusers">http://www.supercluster.org/mailman/listinfo/torqueusers
</a><br></blockquote></div><br><br clear="all"><br>-- <br>_________________________________________________<br>Pai, Gurpura Madhusudan<br>Graduate Research Assistant,<br>Computational Fluid Dynamics Center,<br>0095-D Black Engineering,
<br>Iowa State University,<br>Ames, IA-50011<br>ph: (515) 294 6954<br><br><a href="http://www.iastate.edu">http://www.iastate.edu</a><br><a href="http://www.me.iastate.edu/CFDC/">http://www.me.iastate.edu/CFDC/</a><br><a href="http://www.public.iastate.edu/~mpai/">
http://www.public.iastate.edu/~mpai/</a>