How do I use PBSPro within LCG?

How do I use PBSPro within LCG?

This is collection of experiances of using VDT and PBSPro within LCG at various sites.

PBSPro is in use at the Pargue Institue of Physics. Jiri Kosina provided instructions from his experiances.

The following was provided by the NGS grid in the UK.

If you use PBSPro instead of OpenPBS the output of qstat and pbsnodes -a change slightly.
On PBSPro pbsnodes -a Looks like this:

node11
     ntype = cluster
     state = free
     license = l
     pcpus = 2
     properties = compute
     jobs = 9663.master/0
     resources_available.arch = linux
     resources_available.mem = 4125588kb
     resources_available.ncpus = 2
     resources_assigned.mem = 0kb
     resources_assigned.ncpus = 1
     resv_enable = True

On OpenPBS (torque to be precise) pbsnodes -a Looks like this:

lcg0337.gridpp.rl.ac.uk
     state = job-exclusive
     np = 2
     properties = lcgpro
     ntype = cluster
     jobs = 0/9410.lcgce02.gridpp.rl.ac.uk, 1/8918.lcgce02.gridpp.rl.ac.uk
     status = arch=linux,uname=Linux lcg0337.gridpp.rl.ac.uk \
            2.4.20-30.7.legacysmp #1 SMP Fri Feb 20 10:12:55 PST 2004 i686,\
            sessions=700221782,nsessions=2,\
            nusers=1,idletime=23908,totmem=2594956kb,availmem=1296300kb,\
            physmem=2064820kb,ncpus=4,loadave=0.00,rectime=1085580118

The difference is np vs pcpus and the way the running jobs are shown.

This diff came from the NGS Grid who use the glue-ce-all.pl script contained within VDT releases.
This is a slightly newer version I think to what LCG uses today in edg-ce-all but I expect it is problably still relavent.

 
*** glue-ce-all.pl.unpatched    Wed May 19 15:47:29 2004
--- glue-ce-all.pl      Wed May 19 11:21:53 2004
***************
*** 959,972 ****
      $node  = $1,     next if /^(\S+)/i;
      $state = "down", next if /^\s+state\s+=\s+.*down.*/i;
      $state = $1,     next if /^\s+state\s+=\s+(\S+)/i;
!     $cpus  = $1,     next if /^\s+np\s+=\s+(\d+)/i;
      $state = $1,     next if /^\s+state\s+=\s+(\S+)/i;
      $type  = $1,     next if /^\s+ntype\s+=\s+(\S+)/i;
                                                                                                                                 
      # PARSE Jobs line
      if (/^\s+jobs\s+=\s+(\S+.*)$/i){
        $jobList = $1;
!       for (map { /^\s?\d+\/(\S+)/ } split(/,/,$jobList)){
          $jobCount++;
          $Jobs{$_} = {};
          push (@{$Nodes{$node}{JOBS}}, $_);
--- 959,972 ----
      $node  = $1,     next if /^(\S+)/i;
      $state = "down", next if /^\s+state\s+=\s+.*down.*/i;
      $state = $1,     next if /^\s+state\s+=\s+(\S+)/i;
!     $cpus  = $1,     next if /^\s+pcpus\s+=\s+(\d+)/i;
      $state = $1,     next if /^\s+state\s+=\s+(\S+)/i;
      $type  = $1,     next if /^\s+ntype\s+=\s+(\S+)/i;
                                                                                                                                 
      # PARSE Jobs line
      if (/^\s+jobs\s+=\s+(\S+.*)$/i){
        $jobList = $1;
!       for (map { /^\s?\S+\/(\S+)/ } split(/,/,$jobList)){
          $jobCount++;
          $Jobs{$_} = {};
          push (@{$Nodes{$node}{JOBS}}, $_);

LCG FAQS


Last modified Fri  4 June 2004 . View page history
Switch to HTTPS . Website Help . Print View . Built with GridSite 1.4.3
For more about GridPP please contact Neasan O'Neill