accounting

Implementation level
Type Status
CML extraction template image1
HTML5 representation image2
Template attributes
Attribute Value
source GROMACS log
id accounting
pattern \s*Computing.*
endPattern \s*Total.*
endPattern2 ~
endOffset 1
xml:base times/accounting.xml
Input
 Computing:          Num   Num      Call    Wall time         Giga-Cycles
                     Ranks Threads  Count      (s)         total sum    %
-----------------------------------------------------------------------------
 Domain decomp.         4    6     200000    5103.204     330685.993   3.4
 DD comm. load          4    6       8001       0.241         15.622   0.0
 Neighbor search        4    6     200001    2261.103     146518.755   1.5
 Launch GPU ops.        4    6   16000002    1618.363     104869.419   1.1
 Comm. coord.           4    6    7800000    3533.431     228965.217   2.3
 Force                  4    6    8000001   46894.472    3038747.000  30.8
 Wait + Comm. F         4    6    8000001    4984.406     322987.904   3.3
 PME mesh               4    6    8000001   55351.105    3586734.101  36.4
 Wait GPU nonlocal      4    6    8000001     215.962      13994.284   0.1
 Wait GPU local         4    6    8000001     152.837       9903.762   0.1
 NB X/F buffer ops.     4    6   31600002    3155.777     204493.326   2.1
 Write traj.            4    6       8164     334.588      21681.182   0.2
 Update                 4    6    8000001    4064.861     263401.688   2.7
 Constraints            4    6    8000001   18507.381    1199272.451  12.2
 Comm. energies         4    6    4000001     246.077      15945.718   0.2
 Rest                                        5814.722     376792.141   3.8
-----------------------------------------------------------------------------
 Total                                     152238.529    9865008.563 100.0
Output text
<comment class="example.output" id="accounting">
         <module cmlx:templateRef="accounting">
            <array dataType="xsd:string" delimiter="#" dictRef="gm:work" size="16">Domain decomp.#DD comm. load#Neighbor search#Launch GPU ops.#Comm. coord.#Force#Wait + Comm. F#PME mesh#Wait GPU nonlocal#Wait GPU local#NB X/F buffer ops.#Write traj.#Update#Constraints#Comm. energies#Rest</array>
            <array dataType="xsd:double" dictRef="cc:wallTime" size="16">5103.204 0.241 2261.103 1618.363 3533.431 46894.472 4984.406 55351.105 215.962 152.837 3155.777 334.588 4064.861 18507.381 246.077 5814.722</array>
            <array dataType="xsd:double" dictRef="gm:gcyclessum" size="16">330685.993 15.622 146518.755 104869.419 228965.217 3038747.000 322987.904 3586734.101 13994.284 9903.762 204493.326 21681.182 263401.688 1199272.451 15945.718 376792.141</array>
            <array dataType="xsd:double" dictRef="gm:gcyclespercent" size="16">3.4 0.0 1.5 1.1 2.3 30.8 3.3 36.4 0.1 0.1 2.1 0.2 2.7 12.2 0.2 3.8</array>
            <scalar dataType="xsd:double" dictRef="gm:totalwalltime">152238.529</scalar>
            <scalar dataType="xsd:double" dictRef="gm:totalgcyclessum">9865008.563</scalar>
            <scalar dataType="xsd:double" dictRef="gm:totalgcyclespercent">100.0</scalar>
         </module>
    </comment>
Template definition
<record repeat="3" />
<templateList>  <template pattern="\s*((?!Rest).)*" endPattern="\s*Rest.*" endPattern2="~">    <record repeat="*">{X,gm:work}\s+[0-9]+\s+[0-9]+\s+[0-9]+\s+{F,cc:wallTime}{F,gm:gcyclessum}{F,gm:gcyclespercent}</record>
        </template>  <template pattern="\s*Rest.*" endPattern=".*" endPattern2="~" endOffset="0">    <record>{X,gm:work}{F,cc:wallTime}{F,gm:gcyclessum}{F,gm:gcyclespercent}</record>
        </template>  <template pattern="\s*Total.*" endPattern=".*" endPattern2="~" endOffset="0">    <record repeat="*">\s*Total\s*{F,gm:totalwalltime}{F,gm:totalgcyclessum}{F,gm:totalgcyclespercent}</record>
        </template>
    </templateList>
<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='gm:work']" delimiter="#" />
<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:wallTime']" />
<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='gm:gcyclessum']" />
<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='gm:gcyclespercent']" />
<transform process="pullup" xpath=".//cml:array" repeat="3" />
<transform process="pullup" xpath=".//cml:scalar" repeat="3" />
<transform process="delete" xpath="./cml:module" />
<transform process="delete" xpath="./cml:list" />