flux-framework / flux-sched

Fluxion Graph-based Scheduler
GNU Lesser General Public License v3.0
84 stars 39 forks source link

Match policies malfunctioning on rabbit-like graph #1193

Open jameshcorbett opened 2 weeks ago

jameshcorbett commented 2 weeks ago

Using the match policies low and lownode on this JGF representation of rzvernal: rzvernal_R_norabbit.json

and the following jobspec:


version: 9999
resources:
    - type: slot
      count: 4
      label: default
      with:
      - type: ssd
        count: 1
      - type: node
        count: 1
        with:
        - type: core
          count: 1
# a comment
attributes:
  system:
    duration: 3600
tasks:
  - command: [ "app" ]
    slot: default
    count:
      per_slot: 1

resource-query will allocate far too many resources:

bash-4.4$ ./el8/resource/utilities/resource-query -fjgf -L ./rzvernal_R_norabbit.json -Plow
INFO: Loading a matcher: CA
resource-query> m allocate slot-jobspec.yaml 
      ---------ssd0[894:x]
      ---------ssd1[894:x]
      ---------ssd2[894:x]
      ---------ssd3[894:x]
      ------------core0[1:x]
      ---------rzvernal10[1:x]
      ------------core0[1:x]
      ---------rzvernal11[1:x]
      ------------core0[1:x]
      ---------rzvernal12[1:x]
      ------------core0[1:x]
      ---------rzvernal13[1:x]
      ------rack0[1:s]
      ------------core0[1:x]
      ---------rzvernal26[1:s]
      ------------core0[1:x]
      ---------rzvernal27[1:s]
      ------------core0[1:x]
      ---------rzvernal28[1:s]
      ------------core0[1:x]
      ---------rzvernal29[1:s]
      ------------core0[1:x]
      ---------rzvernal30[1:s]
      ------------core0[1:x]
      ---------rzvernal31[1:s]
      ------------core0[1:x]
      ---------rzvernal32[1:s]
      ------------core0[1:x]
      ---------rzvernal33[1:s]
      ------------core0[1:x]
      ---------rzvernal34[1:s]
      ------------core0[1:x]
      ---------rzvernal35[1:s]
      ------------core0[1:x]
      ---------rzvernal36[1:s]
      ------------core0[1:x]
      ---------rzvernal37[1:s]
      ------------core0[1:x]
      ---------rzvernal38[1:s]
      ------------core0[1:x]
      ---------rzvernal39[1:s]
      ------------core0[1:x]
      ---------rzvernal40[1:s]
      ------------core0[1:x]
      ---------rzvernal41[1:s]
      ------rack1[1:s]
      ------------core0[1:x]
      ---------rzvernal42[1:s]
      ------------core0[1:x]
      ---------rzvernal43[1:s]
      ------------core0[1:x]
      ---------rzvernal44[1:s]
      ------------core0[1:x]
      ---------rzvernal45[1:s]
      ------------core0[1:x]
      ---------rzvernal48[1:s]
      ------------core0[1:x]
      ---------rzvernal49[1:s]
      ------------core0[1:x]
      ---------rzvernal50[1:s]
      ------------core0[1:x]
      ---------rzvernal51[1:s]
      ------------core0[1:x]
      ---------rzvernal52[1:s]
      ------------core0[1:x]
      ---------rzvernal53[1:s]
      ------rack2[1:s]
      ---ElCapitan0[1:s]
INFO: =============================
INFO: JOBID=1
INFO: RESOURCES=ALLOCATED
INFO: SCHEDULED AT=Now
INFO: =============================
resource-query> 

Subsequent matches will allocate the correct number of resources:

resource-query> m allocate slot-jobspec.yaml
      ---------ssd4[894:x]
      ---------ssd5[894:x]
      ---------ssd6[894:x]
      ---------ssd7[894:x]
      ------------core0[1:x]
      ---------rzvernal14[1:x]
      ------------core0[1:x]
      ---------rzvernal15[1:x]
      ------------core0[1:x]
      ---------rzvernal16[1:x]
      ------------core0[1:x]
      ---------rzvernal17[1:x]
      ------rack0[1:s]
      ---ElCapitan0[1:s]
INFO: =============================
INFO: JOBID=2
INFO: RESOURCES=ALLOCATED
INFO: SCHEDULED AT=Now
INFO: =============================
resource-query> m allocate slot-jobspec.yaml
      ---------ssd8[894:x]
      ---------ssd9[894:x]
      ---------ssd10[894:x]
      ---------ssd11[894:x]
      ------------core0[1:x]
      ---------rzvernal18[1:x]
      ------------core0[1:x]
      ---------rzvernal19[1:x]
      ------------core0[1:x]
      ---------rzvernal20[1:x]
      ------------core0[1:x]
      ---------rzvernal21[1:x]
      ------rack0[1:s]
      ---ElCapitan0[1:s]
INFO: =============================
INFO: JOBID=3
INFO: RESOURCES=ALLOCATED
INFO: SCHEDULED AT=Now
INFO: =============================
resource-query>