next up previous contents
Next: About this document ... Up: Sample JDF Files Previous: Example 2   Contents

Example 3

The following example illustrates the flexibility in the FBSNG dependency clauses. Complex dependency clauses can be created. Since FBSNG automatically orders the executions stream correctly based on the dependency clauses, it doesn't matter which order the sections are entered into the JDF file.

SECTION A 
  EXEC=AAA.exe
  QUEUE=main_queue
  NUMPROC=5 
  DEPEND=done(in1) 
  STDERR=startup.err 
  STDOUT=startup.out 
  MAILTO=testuser@fnal.gov 
  NEED=1 
SECTION B 
  EXEC=BBB.exe 
  QUEUE=main_queue 
  NUMPROC=5 
  DEPEND=done(in2) 
  STDERR=startup.err 
  STDOUT=startup.out 
  MAILTO=testuser@fnal.gov 
  NEED=1 
SECTION C 
  EXEC=BBB.exe 
  QUEUE=main_queue 
  NUMPROC=5 
  DEPEND=done(in1) && done(in2) 
  STDERR=startup.err 
  STDOUT=startup.out 
  NEED=1 
SECTION ABC 
  EXEC=ABC.exe 
  QUEUE=main_queue 
  NUMPROC=5 
  DEPEND=done(A) && (done(B) || done(C)) 
  STDERR=startup.err 
  STDOUT=startup.out 
  NEED=1
SECTION out 
  EXEC=output.exe 
  QUEUE=output_queue 
  DEPEND=done(ABC) 
  NUMPROC=1
  NEED=1
SECTION in1 
  EXEC=input.exe 
  QUEUE=input_queue 
  NUMPROC=2 
  NEED=1
SECTION in2 
  EXEC=input.exe 
  QUEUE=input_queue 
  NUMPROC=1
  NEED=1
FBSNG enforces the dependency chain specified. The order that the sections appear in the JDF file have no relevance in determining when a section is to be executed. In the above example, in1 and in2 would be immediately eligible to run.

FBSNG Home