hardware ​
Implementation level ​
Type | Status |
---|---|
CML extraction template | |
HTML5 representation |
Template attributes ​
Attribute | Value |
---|---|
source | GROMACS log |
id | hardware |
name | Hardware section |
pattern | \s*Detecting\sCPU\sSIMD\sinstructions.* |
pattern2 | \s*Running\s*on.*node.* |
pattern3 | \s*Hardware\sdetected\son\shost.* |
endPattern | .*GPUs\sauto-selected.* |
endPattern2 | \s*#.*:.*$\s*$\s* |
endOffset | 2 |
repeat | * |
xml:base | job/hardware.xml |
Comment ​
Running on 1 node with total 6 cores, 6 logical cores, 1 compatible GPU
Hardware detected on host XXXX (the node of MPI rank 0):
CPU info:
Vendor: Intel
Brand: Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Family: 6 Model: 79 Stepping: 1
Features: aes apic avx avx2 clfsh cmov cx8 cx16 f16c fma hle intel lahf mmx msr pcid pclmuldq pdpe1gb popcnt pse rdrnd rdtscp rtm sse2 sse3 sse4.1 sse4.2 ssse3
Hardware topology: Only logical processor count
GPU info:
Number of GPUs detected: 1
#0: NVIDIA Tesla P100-PCIE-16GB, compute cap.: 6.0, ECC: yes, stat: compatible
Input ​
Detecting CPU SIMD instructions.
Present hardware specification:
Vendor: GenuineIntel
Brand: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
Family: 6 Model: 62 Stepping: 4
Features: aes apic avx clfsh cmov cx8 cx16 f16c htt lahf_lm mmx msr nonstop_tsc pcid pclmuldq pdcm pdpe1gb popcnt pse rdrnd rdtscp sse2 sse3 sse4.1 sse4.2 ssse3 tdt x2apic
SIMD instructions most likely to fit this hardware: AVX_256
SIMD instructions selected at GROMACS compile time: AVX_256
4 GPUs detected:
#0: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible
#1: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible
#2: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible
#3: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible
4 GPUs auto-selected for this run.
Mapping of GPUs to the 4 PP ranks in this node: #0, #1, #2, #3
Output text ​
xml
<comment class="example.output" id="hardware">
<module cmlx:templateRef="hardware">
<list dictRef="hardware">
<scalar dataType="xsd:string" dictRef="gm:hardware">Detecting CPU SIMD instructions.</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Present hardware specification:</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Vendor: GenuineIntel</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Brand: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Family: 6 Model: 62 Stepping: 4</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Features: aes apic avx clfsh cmov cx8 cx16 f16c htt lahf_lm mmx msr nonstop_tsc pcid pclmuldq pdcm pdpe1gb popcnt pse rdrnd rdtscp sse2 sse3 sse4.1 sse4.2 ssse3 tdt x2apic</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">SIMD instructions most likely to fit this hardware: AVX_256</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">SIMD instructions selected at GROMACS compile time: AVX_256</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">4 GPUs detected:</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">#0: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">#1: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">#2: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">#3: NVIDIA Tesla K20m, compute cap.: 3.5, ECC: yes, stat: compatible</scalar>
<scalar dataType="xsd:integer" dictRef="gm:numProcGPU">4</scalar>
<scalar dataType="xsd:integer" dictRef="gm:numRanks">4</scalar>
</list>
</module>
</comment>
Output text ​
xml
<comment class="example.output" id="hardware2">
<module cmlx:templateRef="hardware">
<list dictRef="hardware">
<scalar dataType="xsd:string" dictRef="gm:hardware">Running on 1 node with total 6 cores, 6 logical cores, 1 compatible GPU</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Hardware detected on host XXXX (the node of MPI rank 0):</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">CPU info:</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Vendor: Intel</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Brand: Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Family: 6 Model: 79 Stepping: 1</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Features: aes apic avx avx2 clfsh cmov cx8 cx16 f16c fma hle intel lahf mmx msr pcid pclmuldq pdpe1gb popcnt pse rdrnd rdtscp rtm sse2 sse3 sse4.1 sse4.2 ssse3</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Hardware topology: Only logical processor count</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">GPU info:</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">Number of GPUs detected: 1</scalar>
<scalar dataType="xsd:string" dictRef="gm:hardware">#0: NVIDIA Tesla P100-PCIE-16GB, compute cap.: 6.0, ECC: yes, stat: compatible</scalar>
</list>
</module>
</comment>
Template definition ​
xml
<templateList> <template pattern="\s*Detecting\sCPU\sSIMD\sinstructions.*" pattern2=".*GPUs\sdetected.*" pattern3="\s*Running\s*on.*node.*" pattern4="\s*Hardware\sdetected\son\shost.*" endPattern="\s*" endPattern2="~" endOffset="0" repeat="*"> <record repeat="*">{X,gm:hardware}</record>
</template> <template pattern=".*GPUs\sauto-selected.*" endPattern="\s*" endPattern2="~"> <record repeat="*">{I,gm:numProcGPU}GPUs\sauto-selected.*</record> <record>\s*Mapping\sof\sGPUs\sto\sthe{I,gm:numRanks}.*ranks\sin\sthis\snode:.*</record>
</template> <transform process="addChild" xpath="." elementName="cml:list" dictRef="hardware" /> <transform process="moveRelative" xpath=".//cml:scalar" to="../../../cml:list[@dictRef='hardware']" /> <transform process="addChild" xpath="." elementName="cml:scalar" dictRef="gm:numProcGPU" value="$string(replace(//cml:scalar[@dictRef='gm:hardware' and contains(text(), 'Number of GPUs detected')]/text(), 'Number of GPUs detected:\s*', ''))" /> <transform process="delete" xpath=".//cml:scalar[@dictRef='gm:numProcGPU' and text() ='']" /> <transform process="moveRelative" xpath="./cml:scalar" to="../cml:list[@dictRef='hardware']" /> <transform process="delete" xpath=".//cml:scalar[@dictRef='gm:numProcGPU' and empty(text())]" /> <transform process="delete" xpath=".//cml:module" />
</templateList>