Initial configuration

Just getting started with openpbs but I do have experience with older pbs and torque systems.

Our old config used a nodes file that looked something like:

host1 np=24 standard twentyfour host1
host2 np=24 standard twentyfour host2
host3 np=28 standard twentyeight host3

That would setup a standard queue, two hosts that were flagged as having 24 cores usable and one with 28 cores. Is there a config file to define nodes like that? I haven’t found it yet if it’s there.

From my very limited experience on this setup it looks like all the config is setup in the postgres DB and the nodes file our old setup uses is no longer needed. So I’ll be setting up the nodes and queues via qmgr, all that info gets saved to the database and read back when pbs starts up. Am I looking at that correctly? If I’m correct I can whip up a script to re-run the qmgr commands if I ever need to make big changes to the config.

My new pbs setup is just eight systems right now, each having 48 cores usable. I’ve gotten them working using qmgr by hand so far but looking for a way to set them up via some sort of config file. If my users test and find this new system suitable I will be migrating our old grid systems over to this new system. That will be about 80 nodes, various core counts between 12 and 28.

To add a node to the PBS Server

qmgr -c “create node nodename”

nodename is the output of hostname command on the compute node which is reverse resolvable to a static IP assigned to that node and is part /etc/hosts file and(or DNS)

pbsnodes -av # describes your nodes and configuration they have
pbsnodes -aSjv
qmgr -c “print nodes @default

Node and node configuration is managed via qmgr command and the node properties / configuration is stored in the pbs datastore.

Is there a best practice for scripting that process? I’ll end up with about 100 different nodes. They’ll be scattered across 4 or 5 queues so if I need to change things as hardware changes doing it by hand is not something I’d look forward to. I’m working up some scripts to handle it.

I was hoping there’d be some config file that could be read in to a qmgr session or possibly just set as a parameter for the server process.

If I end up just working up a script to get nodes and queues setup is there a clean way to flush the config before setting it? I’d like to be sure that if I have to change the config that there isn’t any stale info leftover.

You can create configuration file and pipe it to qmgr

qmgr < node_configuration_file

e.g:

qmgr -c “print nodes @default” > printnodes.txt
qmgr -c “delete nodes @default
qmgr < printnodes.txt

you overwirte the configuration or unset it using qmgr based on the situation

qmgr -c “set node NODENAME attribute=”
or
qmgr -c “unset node NODENAME attribute”
or
qmgr -c “unset node NODENAME attribute -= string_array_value”