The nc hosts -rule option

Goetz Leonhardt
Goetz Leonhardt New Altair Community Member
edited February 2023 in Altair HPCWorks

Regarding how to use the 'nc hosts -rule' command, -h returns:

-rule <SELRULE> -- Show only slaves that match the given selection
                             rule. Use "vovselect fieldname from slaves" for
                             the complete list of fields that can be used in
                             the rule. Example rules:
                                 "status==READY"
                                 "status!=OVRLD slots>8"
                             Can accept multiple constraints.

Example:

nc hosts -rule "cores>4 ramtotal<20000" -O "@name@ @corestotal@ @ramtotal@"

Please see this page explaining selection rules (SELRUL). It has operators AND and OR, precedence of operators, string comparisons and many more.

nc cmd vovbrowser -url /doc/NetworkComputer_UserGuide/selrules.html

The available fields for the selection rule are retrieved with this nc command:

nc cmd vovselect fieldname from slaves

In my case it returns 67 fieldnames, see the full list below.

Please keep in mind that these fieldnames may or may not be available in the list of fields, available for printout in the formatted string, specified with -O. These fields are retrieved with nc hosts -f

In my case 44 fields. Please see the full list below.

Example (please note 'version' in -rule vs. VOVVERSION in the -O option:

nc hosts -rule "version~Linux64/2016.09" -O "@VOVVERSION@"

Example with matching names:

nc ho -rule "status==FULL" -O "@status@"

When using string comparisons please note how the vovselect command returns the content of the fieldname, to be compared in -rule.

Example: nc cmd vovselect status from slaves

Here the fieldname 'status' can be given in both small and capital letters. Both are specifying the same fieldname in the context of vovselect.

Both are specifying the same fieldname in the context of nc hosts -rule.

When checking the output of 'vovselect status from slaves' we find that the content is printed in capital letters, ie READY,SICK,FULL, etc. Hence in order to compare the status of slaves in -rule, we need to compare with the capital letter version of the status nc ho -rule "status==FULL" -O "@status@"

Or use case insensitive match nc ho -rule "status~~full" -O "@status@"

> nc cmd vovselect fieldname from slaves
ID
IDINT
STATUS
NAME
HOST
PID
SLAVENAME
SLAVEGROUP
SLAVESLOTSUSED
SLAVESLOTSSUSPENDED
SLAVESLOTSSUSPENDABLE
STATSVISITS
STATSREJECTRAM
STATSREJECTSLOTS
STATSREJECTCORES
STATSREJECTRESERVED
STATSREJECTOTHER
FULLINFO
RESOURCES
PROPERTIES
PROP
PROPDUMP
TYPE
CAPACITY
VERSION
LASTUPDATE
RAM
RAMTOTAL
CORES
CPUS
PERCENT
SWAP
SLOTS
MESSAGESYS
MESSAGEUSER
ARCH
CLASSRESOURCES
DOEXEC
DONETINFO
DOPROCINFO
DORTTRACING
RESOURCESEXTRA
RESOURCESPEC
RESOURCECMD
POWER
RAWPOWER
MANUALPOWER
CURLOAD
EFFLOAD
MAXLOAD
RUNNINGJOBS
LIFETIMEJOBS
RESERVEDBY
RESERVEUSER
RESERVEGROUP
RESERVEOSGROUP
RESERVEJOBCLASS
RESERVEJOBPROJ
RESERVEFORBUCKETID
RESERVEFORID
RESERVESTART
RESERVEEND
HEARTBEAT
LASTJOBID
ROWCOUNT
CORESUSED
CORESAVAIL

nc ho -f
         arch
         clock
         consumables
         cores
         corestotal
         extras
         group
         hb
         hbpp
         host
         id
         load1
         load15
         load5
         loadeff
         machine
         maxload
         message
         model
         name
         numjobs
         osclass
         percent
         power
         ram
         ramfree
         ramtotal
         rawpower
         release
         resources
         slavetype
         slots
         slotstotal
         status
         swap
         swapfree
         swaptotal
         timeleft
         timeleftpp
         tmp
         uptime
         uptimepp
         user
         vovversion