<benchmark>.xml =============== Name und Beschreibung des Benchmarks. Wichtig ist hier der ``shortname``, unter dem der Benchmark weiter referenziert wird. .. code-block:: xml <?xml version="1.0" encoding="UTF-8"?> <!-- benchmark environment --> <benchmark shortname="hpcc" type="standalone"> <fname>HPC Challenge</fname> <version>1.3.1</version> <description>bla bla bla</description> Benötigt der Benchmark Argumente? Muß vorher/nachher etwas getan werden? Welche Module müssen geladen werden, damit alles tut? Diese Eigenheiten sollen hier abgedeckt werden. Bei ``call`` sind die Angaben ``copy`` und ``absolute`` gültig. Ersteres ist nützlich für Benchmarks, die keine Parameter für die Angabe der Konfigurationsdatei bieten und diese deshalb immer im selben Verzeichnis suchen (z.B. ``hpcc``). .. code-block:: xml <run> <path>/bin/ls</path> <call>absolute</call> <arguments></arguments> <precmd></precmd> <postcmd></postcmd> <module version="10.1.015">icc</module> <module version="10.1.0.015">imkl</module> <module version="10.1.015">ifort</module> <module version="3.2.0.011">impi</module> </run> Andere Typen für Konfigurationsdateien könnten sein: ``none`` oder einfach ``file``. Der Typ ``fixedPosFile`` ist eine Fortran-Stil Datei, die Werte an ganz bestimmten Zeilen erwartet. Der Name (z.B. ``problem_size``) ist der, der vom User in seiner run Datei überschrieben werden kann (mit Präfix). .. code-block:: xml <config type="fixedPosFile"> <template>hpccinf.txt</template> <!-- changeable values and their defaults. --> <var pos="6" default="10000">problem_size</var> <var pos="11" default="3">row_process_mapping</var> <var pos="12" default="4">column_process_mapping</var> </config> Wie die Werte wiedergefunden werden, steht hier. Der Typ sagt, es gibt eine parsbare Datei im ``variable = value`` Format (``nameValue``). Die Variable heisst dann z.B. ``HPL_Tflops`` und der Wert dahinter ist in der Einheit ``Tflops``. .. code-block:: xml <output type="parsefile" format="nameValue"> <!-- where to find the relevant results --> <value unit="Tflops" name="HPL_Tflops">floatingpoint performance</value> </output> </benchmark> Es fehlen noch Angaben zur graphischen Ausgabe. Die DTD-Datei ``benchmark.dtd`` wird nicht per xml Datei gesetzt, sondern von der Software. So soll vermieden werden, dass unterschiedliche DTDs entstehen (Benchmark Beschreibungen sind aufgeteilt in einzelne Dateien). .. code-block:: xml <!ELEMENT benchmark (fname, version, description, run, config, output)> <!ATTLIST benchmark shortname CDATA #REQUIRED type CDATA #IMPLIED> <!ELEMENT fname (#PCDATA)> <!ELEMENT version (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT run (path, call, arguments, precmd+, postcmd+, module+)> <!ELEMENT path (#PCDATA)> <!ELEMENT call (#PCDATA)> <!ELEMENT arguments (#PCDATA)> <!ELEMENT precmd (#PCDATA)> <!ELEMENT postcmd (#PCDATA)> <!ELEMENT module (#PCDATA)> <!ATTLIST module version CDATA #IMPLIED> <!ELEMENT config (template, var*)> <!ATTLIST config type CDATA #REQUIRED> <!ELEMENT template (#PCDATA)> <!ELEMENT var (#PCDATA)> <!ATTLIST var pos CDATA #REQUIRED default CDATA #REQUIRED> <!ELEMENT output (value*)> <!ATTLIST output type CDATA #REQUIRED format CDATA #REQUIRED> <!ELEMENT value (#PCDATA)> <!ATTLIST value unit CDATA #REQUIRED name CDATA #REQUIRED>