Note: This was a proposal to create a new DAX schema that supported more advanced control structures. It isn't being actively developed.

HIGHER DAX

Objective

To provide support of iterations in the dax and provide file and variable iteration capabilites. This could be potentially exteneded to provide conditionals later

Design Notes

Currently a dax contains all the jobs, arguments for all the jobs and file required for all the jobs explicitly in an unrolled fashion. While this provides easy mapping to individual jobs the format is not very concise to generate. We propose a higher level format which will allow support for iterations across arguments (parameter sweep), or across files. Also to start with we will support adding relations of type 1 to 1 , Fan in (Many to 1) , Fan out (Many to Many)

<workflow>
  <task id="11111" namespace="pegasus" name="keg" version="2.0">
     <argument> -x <param key="X"> -y <param key="Y"> -i <file key="IN"> -o <file key="OUT"> -conf <file name="CONF"></argument>
     <iter>
        <element>
          <value key="X">YAHOO</value>
          <value key="Y">FOOBAR</value>
          <value key="IN">F1.in</value>
          <value key="OUT">F1.out</value>
        </element>
       <element>
          <value key="X">GOOGLE</value>
          <value key="Y">BARGOO</value>
          <value key="IN">F2.in</value>
          <value key="OUT">F2.out</value>
        </element>
     </iter>
  </task>



  <task id="22222" namespace="pegasus" name="date" version="2.0">
     <iter>
        <element>
          <argument>-x 1 -y 1 -i <file name="f1.out"/> -o <file name="f1.1.out"/></argument>
        </element>
        <element>
          <argument>-x 2 -y 2 -i <file name="f2.out"/> -o <file name="f2.2.out"/></argument>
        </element>
     </iter>
  </task>
 <links>
 I need to figure out how to do the links
</links>
</workflow>

Schema

Example

  • No labels