Skip to content
Snippets Groups Projects
Commit aebe1095 authored by Jan Frenzel's avatar Jan Frenzel
Browse files

Merge branch '290-new-page-overview-performance-analysis' into 'preview'

Added initial complete version of new performance engineering overview document.

Closes #290

See merge request !664
parents 14d0ec9a cce0fc06
No related branches found
No related tags found
2 merge requests!673Automated merge from preview to main,!664Added initial complete version of new performance engineering overview document.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 960 720"
height="720"
width="960"
xml:space="preserve"
id="svg2"
version="1.1"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
id="clipPath18"
clipPathUnits="userSpaceOnUse"><path
style="clip-rule:evenodd"
id="path16"
d="M 0,1.2207e-4 H 720 V 540.00012 H 0 Z" /></clipPath></defs><g
transform="matrix(1.3333333,0,0,-1.3333333,0,720)"
id="g10"><g
id="g12"><g
clip-path="url(#clipPath18)"
id="g14"><path
id="path20"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="M 0,6.104e-6 H 720 V 540.00001 H 0 Z" /></g></g><path
id="path22"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 337.36,494.91 c 0,7.86 6.37,14.22 14.22,14.22 h 102.84 c 7.86,0 14.23,-6.36 14.23,-14.22 v -56.89 c 0,-7.86 -6.37,-14.22 -14.23,-14.22 H 351.58 c -7.85,0 -14.22,6.36 -14.22,14.22 z" /><path
id="path24"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 337.36,494.91 c 0,7.86 6.37,14.22 14.22,14.22 h 102.84 c 7.86,0 14.23,-6.36 14.23,-14.22 v -56.89 c 0,-7.86 -6.37,-14.22 -14.23,-14.22 H 351.58 c -7.85,0 -14.22,6.36 -14.22,14.22 z" /><text
id="text28"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,350.64,471.6)"><tspan
id="tspan26"
y="0"
x="0 4.7779198 14.73192 21.955681 28.30728 34.92432 44.878319 60.027359 69.469437 79.309677 85.433762 94.875839 104.82984">Instrumented </tspan></text>
<text
id="text32"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,360.48,450.72)"><tspan
id="tspan30"
y="0"
x="0 9.0818396 19.035839 28.98984 33.350639 37.711441 45.598801 54.604801 60.956402 65.3172 75.252243">application</tspan></text>
<path
id="path34"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 485.76,450.27 3.07,-1.4 3.07,-1.47 3.04,-1.52 3.01,-1.57 2.98,-1.62 2.96,-1.66 2.93,-1.72 2.89,-1.76 2.88,-1.81 2.83,-1.87 2.81,-1.9 2.77,-1.96 2.75,-2 2.7,-2.05 2.68,-2.1 0.33,-0.27 -1.89,-2.33 -0.29,0.24 -2.64,2.07 -2.66,2.01 -2.71,1.98 -2.72,1.92 -2.78,1.88 -2.79,1.84 -2.82,1.79 -2.86,1.73 -2.88,1.7 -2.91,1.64 -2.95,1.59 -2.97,1.55 -2.99,1.49 -3.02,1.45 -3.07,1.4 z m 40.46,-17.57 4.61,-12.15 -12.84,1.97 c -0.82,0.12 -1.38,0.89 -1.25,1.71 0.12,0.81 0.89,1.38 1.71,1.25 l 10.29,-1.57 -1.62,-2.02 -3.7,9.74 c -0.3,0.78 0.09,1.64 0.87,1.94 0.77,0.29 1.64,-0.1 1.93,-0.87 z" /><path
id="path36"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 511.34,394.46 c 0,7.86 6.37,14.22 14.23,14.22 h 102.84 c 7.85,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.86 -6.37,-14.22 -14.22,-14.22 H 525.57 c -7.86,0 -14.23,6.36 -14.23,14.22 z" /><path
id="path38"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 511.34,394.46 c 0,7.86 6.37,14.22 14.23,14.22 h 102.84 c 7.85,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.86 -6.37,-14.22 -14.22,-14.22 H 525.57 c -7.86,0 -14.23,6.36 -14.23,14.22 z" /><text
id="text42"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,522.62,371.14)"><tspan
id="tspan40"
y="0"
x="0 16.2108 25.65288 34.77264 42.186001 52.139999 58.529518 67.971603 83.120644 92.562721 102.44088 108.79248">Measurement </tspan></text>
<text
id="text46"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,559.94,350.26)"><tspan
id="tspan44"
y="0"
x="0 9.9540005 18.959999 25.08408">data</tspan></text>
<path
id="path48"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 602.26,301.13 0.73,-4.39 0.64,-4.43 0.54,-4.44 0.45,-4.45 0.34,-4.46 0.25,-4.45 0.14,-4.47 0.06,-4.46 -0.06,-4.47 -0.14,-4.46 -0.25,-4.46 -0.34,-4.45 -0.44,-4.45 -0.55,-4.44 -0.63,-4.43 -0.25,-1.49 -2.96,0.5 0.24,1.42 0.63,4.37 0.53,4.36 0.44,4.39 0.34,4.39 0.24,4.39 0.14,4.4 0.06,4.39 -0.05,4.4 -0.15,4.4 -0.24,4.4 -0.34,4.38 -0.43,4.38 -0.54,4.38 -0.62,4.36 -0.74,4.39 z m 6.83,-60.9 -8.31,-9.99 -4.6,12.15 c -0.3,0.78 0.09,1.64 0.87,1.94 0.77,0.29 1.64,-0.1 1.93,-0.88 l 3.69,-9.74 -2.55,0.43 6.66,8.01 c 0.53,0.63 1.48,0.72 2.11,0.19 0.64,-0.53 0.73,-1.47 0.2,-2.11 z" /><path
id="path50"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 511.34,193.56 c 0,7.86 6.37,14.22 14.23,14.22 h 102.84 c 7.85,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.85 -6.37,-14.22 -14.22,-14.22 H 525.57 c -7.86,0 -14.23,6.37 -14.23,14.22 z" /><path
id="path52"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 511.34,193.56 c 0,7.86 6.37,14.22 14.23,14.22 h 102.84 c 7.85,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.85 -6.37,-14.22 -14.22,-14.22 H 525.57 c -7.86,0 -14.23,6.37 -14.23,14.22 z" /><text
id="text56"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,527.42,170.18)"><tspan
id="tspan54"
y="0"
x="0 9.4799995 18.922079 25.53912 30.961679 40.953602 47.570641 62.643841 71.725677 81.67968 89.737679 99.179764">Performance </tspan></text>
<text
id="text60"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,531.62,149.3)"><tspan
id="tspan58"
y="0"
x="0 4.3607998 14.16312 19.566719 29.55864 36.175678 51.248878 60.254879 66.606483 70.967278 80.902321">information</tspan></text>
<path
id="path62"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 531.77,109.41 -2.62,-2.13 -2.68,-2.09 -2.7,-2.05 -2.75,-2.01 -2.77,-1.953 -2.81,-1.912 -2.83,-1.859 -2.87,-1.814 -2.9,-1.767 -2.93,-1.717 -2.95,-1.669 -2.99,-1.618 -3.01,-1.565 -3.04,-1.518 -3.07,-1.466 -0.39,-0.179 -1.25,2.725 0.35,0.161 3.02,1.443 2.99,1.497 2.97,1.54 2.94,1.592 2.91,1.646 2.89,1.688 2.85,1.743 2.83,1.786 2.79,1.831 2.77,1.885 2.74,1.93 2.7,1.97 2.66,2.01 2.64,2.08 2.62,2.12 z m -33.71,-28.459 -12.93,1.261 7.46,10.634 c 0.48,0.678 1.41,0.842 2.09,0.366 0.68,-0.475 0.84,-1.411 0.37,-2.089 l -5.99,-8.529 -1.08,2.354 10.37,-1.011 c 0.83,-0.08 1.43,-0.814 1.35,-1.638 -0.08,-0.825 -0.81,-1.428 -1.64,-1.348 z" /><path
id="path64"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 337.36,93.111 c 0,7.859 6.37,14.219 14.22,14.219 h 102.84 c 7.86,0 14.23,-6.36 14.23,-14.219 v -56.89 c 0,-7.856 -6.37,-14.224 -14.23,-14.224 H 351.58 c -7.85,0 -14.22,6.368 -14.22,14.224 z" /><path
id="path66"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 337.36,93.111 c 0,7.859 6.37,14.219 14.22,14.219 h 102.84 c 7.86,0 14.23,-6.36 14.23,-14.219 v -56.89 c 0,-7.856 -6.37,-14.224 -14.23,-14.224 H 351.58 c -7.85,0 -14.22,6.368 -14.22,14.224 z" /><text
id="text70"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,353.4,69.72)"><tspan
id="tspan68"
y="0"
x="0 9.4799995 18.922079 25.53912 30.961679 40.953602 47.570641 62.643841 71.725677 81.67968 89.737679 99.179764">Performance </tspan></text>
<text
id="text74"
style="font-variant:normal;font-weight:normal;font-size:18.98399925px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,378.72,48.816)"><tspan
id="tspan72"
y="0"
x="0 6.3596401 15.813672 25.780272 35.78484 42.410255">report</tspan></text>
<path
id="path76"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 320.25,80.852 -3.06,1.41 -3.07,1.465 -3.04,1.519 -3.01,1.563 -2.99,1.617 -2.95,1.671 -2.93,1.713 -2.9,1.77 -2.87,1.812 -2.84,1.858 -2.81,1.913 -2.77,1.957 -2.74,2 -2.71,2.05 -2.68,2.1 -0.33,0.27 1.89,2.33 0.29,-0.24 2.64,-2.07 2.67,-2.02 2.7,-1.97 2.74,-1.93 2.75,-1.88 2.8,-1.832 2.83,-1.788 2.85,-1.74 2.89,-1.692 2.91,-1.644 2.94,-1.592 2.97,-1.543 2.99,-1.495 3.03,-1.446 3.07,-1.41 z m -40.46,17.58 -4.61,12.148 12.84,-1.97 c 0.82,-0.12 1.38,-0.89 1.25,-1.71 -0.12,-0.82 -0.89,-1.38 -1.71,-1.25 l -10.29,1.57 1.62,2.02 3.7,-9.744 c 0.3,-0.774 -0.09,-1.64 -0.87,-1.934 -0.77,-0.294 -1.64,0.095 -1.93,0.87 z" /><path
id="path78"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 163.38,193.56 c 0,7.86 6.36,14.22 14.22,14.22 h 102.84 c 7.86,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.85 -6.36,-14.22 -14.22,-14.22 H 177.6 c -7.86,0 -14.22,6.37 -14.22,14.22 z" /><path
id="path80"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 163.38,193.56 c 0,7.86 6.36,14.22 14.22,14.22 h 102.84 c 7.86,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.85 -6.36,-14.22 -14.22,-14.22 H 177.6 c -7.86,0 -14.22,6.37 -14.22,14.22 z" /><text
id="text84"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,209.28,180.62)"><tspan
id="tspan82"
y="0"
x="0 10.10568 20.04072 29.99472 39.436798">Code </tspan></text>
<text
id="text88"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,177,159.74)"><tspan
id="tspan86"
y="0"
x="0 4.3607998 19.434 29.388 35.625839 45.46608 53.751598 63.19368 78.34272 87.784798 97.662956 104.01456">improvement </tspan></text>
<text
id="text92"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,194.28,138.86)"><tspan
id="tspan90"
y="0"
x="0 9.9540005 19.945921 26.03208 35.474159 45.352322 51.703918 56.06472 65.146561">potential</tspan></text>
<path
id="path94"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 203.76,230 -0.74,4.39 -0.63,4.43 -0.55,4.43 -0.44,4.45 -0.34,4.46 -0.25,4.46 -0.15,4.46 -0.05,4.46 0.05,4.47 0.15,4.46 0.24,4.46 0.34,4.45 0.45,4.45 0.54,4.45 0.64,4.42 0.25,1.5 2.96,-0.5 -0.24,-1.42 -0.63,-4.37 -0.54,-4.37 -0.43,-4.39 -0.34,-4.38 -0.25,-4.39 -0.14,-4.41 -0.05,-4.39 0.05,-4.4 0.14,-4.39 0.25,-4.4 0.33,-4.39 0.44,-4.38 0.54,-4.37 0.62,-4.36 0.74,-4.39 z m -6.83,60.9 8.31,9.98 4.6,-12.14 c 0.29,-0.78 -0.1,-1.64 -0.87,-1.94 -0.78,-0.29 -1.64,0.1 -1.94,0.87 v 0 l -3.69,9.75 2.56,-0.43 -6.67,-8.01 c -0.52,-0.64 -1.47,-0.72 -2.11,-0.19 -0.63,0.53 -0.72,1.47 -0.19,2.11 z" /><path
id="path96"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 163.38,394.46 c 0,7.86 6.36,14.22 14.22,14.22 h 102.84 c 7.86,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.86 -6.36,-14.22 -14.22,-14.22 H 177.6 c -7.86,0 -14.22,6.36 -14.22,14.22 z" /><path
id="path98"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 163.38,394.46 c 0,7.86 6.36,14.22 14.22,14.22 h 102.84 c 7.86,0 14.22,-6.36 14.22,-14.22 v -56.89 c 0,-7.86 -6.36,-14.22 -14.22,-14.22 H 177.6 c -7.86,0 -14.22,6.36 -14.22,14.22 z" /><text
id="text102"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,192.24,371.14)"><tspan
id="tspan100"
y="0"
x="0 4.7779198 19.92696 29.88096 36.118801 45.959042 54.24456 63.686642 73.64064">Improved </tspan></text>
<text
id="text106"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,186.48,350.26)"><tspan
id="tspan104"
y="0"
x="0 9.0818396 19.035839 28.98984 33.350639 37.711441 45.598801 54.604801 60.956402 65.3172 75.252243">application</tspan></text>
<path
id="path108"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 274.24,421.72 2.62,2.12 2.68,2.1 2.71,2.05 2.74,2 2.78,1.96 2.8,1.91 2.84,1.86 2.87,1.82 2.9,1.76 2.92,1.72 2.96,1.66 2.99,1.62 3.01,1.57 3.04,1.52 3.07,1.47 0.39,0.17 1.24,-2.72 -0.34,-0.16 -3.02,-1.44 -2.99,-1.5 -2.98,-1.55 -2.94,-1.59 -2.91,-1.64 -2.89,-1.7 -2.85,-1.73 -2.82,-1.79 -2.8,-1.84 -2.77,-1.87 -2.73,-1.93 -2.7,-1.97 -2.67,-2.02 -2.64,-2.07 -2.62,-2.12 z m 33.72,28.48 12.93,-1.29 -7.49,-10.62 c -0.47,-0.68 -1.41,-0.84 -2.09,-0.36 -0.67,0.47 -0.84,1.41 -0.36,2.09 l 6,8.51 1.08,-2.35 -10.37,1.03 c -0.82,0.08 -1.42,0.82 -1.34,1.64 0.08,0.83 0.82,1.43 1.64,1.35 z" /><path
id="path110"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 40.169,496.65 c 0,7.86 6.368,14.23 14.223,14.23 H 157.23 c 7.86,0 14.23,-6.37 14.23,-14.23 v -56.89 c 0,-7.85 -6.37,-14.22 -14.23,-14.22 H 54.392 c -7.855,0 -14.223,6.37 -14.223,14.22 z" /><path
id="path112"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 40.169,496.65 c 0,7.86 6.368,14.23 14.223,14.23 H 157.23 c 7.86,0 14.23,-6.37 14.23,-14.23 v -56.89 c 0,-7.85 -6.37,-14.22 -14.23,-14.22 H 54.392 c -7.855,0 -14.223,6.37 -14.223,14.22 z" /><text
id="text116"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,53.664,473.23)"><tspan
id="tspan114"
y="0"
x="0 12.12002">Un</tspan></text>
<text
id="text120"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,75.768,473.23)"><tspan
id="tspan118"
y="0"
x="0">-</tspan></text>
<text
id="text124"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,81.528,473.23)"><tspan
id="tspan122"
y="0"
x="0 9.9919205 19.794241 26.14584 30.506639 45.598801 49.959599 56.993759 66.435837 76.389839">optimized </tspan></text>
<text
id="text128"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,63.144,452.71)"><tspan
id="tspan126"
y="0"
x="0 9.0818396 19.035839 28.98984 33.350639 37.711441 45.598801 54.604801 60.956402 65.3172 75.252243">application</tspan></text>
<path
id="path130"
style="fill:#4f81bd;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 40.169,92.584 c 0,7.856 6.368,14.226 14.223,14.226 H 157.23 c 7.86,0 14.23,-6.37 14.23,-14.226 v -56.89 c 0,-7.855 -6.37,-14.223 -14.23,-14.223 H 54.392 c -7.855,0 -14.223,6.368 -14.223,14.223 z" /><path
id="path132"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 40.169,92.584 c 0,7.856 6.368,14.226 14.223,14.226 H 157.23 c 7.86,0 14.23,-6.37 14.23,-14.226 v -56.89 c 0,-7.855 -6.37,-14.223 -14.23,-14.223 H 54.392 c -7.855,0 -14.223,6.368 -14.223,14.223 z" /><text
id="text136"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,66.264,69.072)"><tspan
id="tspan134"
y="0"
x="0 12.55152 22.448641 28.80024 33.161041 48.253201 52.613998 59.534401 68.976479 78.930481">Optimized </tspan></text>
<text
id="text140"
style="font-variant:normal;font-weight:normal;font-size:18.95999908px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,63.144,48.552)"><tspan
id="tspan138"
y="0"
x="0 9.0818396 19.035839 28.98984 33.350639 37.711441 45.598801 54.604801 60.956402 65.3172 75.252243">application</tspan></text>
<path
id="path142"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 190.38,469.71 h 127.44 v -3 H 190.38 Z m 119.2,5.04 11.22,-6.54 -11.22,-6.55 c -0.72,-0.42 -1.64,-0.17 -2.06,0.54 -0.41,0.72 -0.17,1.64 0.54,2.05 l 9,5.25 v -2.59 l -9,5.25 c -0.71,0.42 -0.95,1.34 -0.54,2.05 0.42,0.72 1.34,0.96 2.06,0.54 z" /><path
id="path144"
style="fill:#4f81bd;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 320.79,65.639 H 193.35 v -3 H 320.79 Z M 201.6,70.685 190.37,64.139 201.6,57.594 c 0.71,-0.418 1.63,-0.176 2.05,0.539 0.41,0.716 0.17,1.634 -0.54,2.052 l -9,5.25 v -2.591 l 9,5.25 c 0.71,0.417 0.95,1.335 0.54,2.051 -0.42,0.716 -1.34,0.957 -2.05,0.54 z" /><text
id="text148"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,509.04,445.9)"><tspan
id="tspan146"
y="0"
x="0">M</tspan></text>
<text
id="text152"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,524.76,445.9)"><tspan
id="tspan150"
y="0"
x="0 9.1079998 18 25.181999 34.883999 41.004002 50.112 64.746002 73.800003 83.232002">easurement</tspan></text>
<text
id="text156"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,612.02,260.88)"><tspan
id="tspan154"
y="0"
x="0">A</tspan></text>
<text
id="text160"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,622.94,260.88)"><tspan
id="tspan158"
y="0"
x="0 9.7019997 18.594 23.021999 31.427999 38.610001 43.037998">nalysis</tspan></text>
<text
id="text164"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,512.81,72.72)"><tspan
id="tspan162"
y="0"
x="0">P</tspan></text>
<text
id="text168"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,522.41,72.72)"><tspan
id="tspan166"
y="0"
x="0 6.1199999 15.228 22.41 31.535999 41.130001 47.124001 55.889999 62.136002 66.564003 76.176003">resentation</tspan></text>
<text
id="text172"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,208.49,76.392)"><tspan
id="tspan170"
y="0"
x="0">E</tspan></text>
<text
id="text176"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,216.77,76.392)"><tspan
id="tspan174"
y="0"
x="0 8.2799997 17.172001 21.6 31.302 40.068001 46.313999 50.742001 60.425999">valuation</tspan></text>
<text
id="text180"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,126.6,271.78)"><tspan
id="tspan178"
y="0"
x="0 9.5220003 19.205999 28.872 38.015999">Code </tspan></text>
<text
id="text184"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,100.2,250.18)"><tspan
id="tspan182"
y="0"
x="0 9.684 19.35 25.596001 30.024 44.658001 49.085999 56.034 64.800003 71.045998 75.365997 84.959999">optimization</tspan></text>
<text
id="text188"
style="font-variant:normal;font-weight:bold;font-size:18px;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';writing-mode:lr-tb;fill:#17375e;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,178.68,447.91)"><tspan
id="tspan186"
y="0"
x="0 4.8060002 14.472 21.474001 27.719999 34.110001 43.776001 58.41 67.536003 77.022003 83.015999 91.781998 98.028 102.348 112.032">Instrumentation</tspan></text>
</g></svg>
\ No newline at end of file
# Performance Engineering Overview
!!! cite "Walter J. Doherty, 1970 [^1]"
Fundamentally, performance is the degree to which a computing system meets the expectations of
the person involved with it.
Performance engineering encompasses the techniques applied during a systems development life cycle
to ensure the non-functional requirements for performance (such as throughput, latency, or memory
usage) will be met.
Often, it is also referred to as systems performance engineering within systems engineering, and
software performance engineering or application performance engineering within software engineering
[[Wikipedia]](https://en.wikipedia.org/wiki/Performance_engineering).
[^1]: Scheduling TSS/360 for responsiveness. In: AFIPS '70 (Fall): Proceedings of the November
17-19, 1970, fall joint computer conference, November 1970, Pages 97–111
## Objectives
??? hint "Some good reasons to think about performance in HPC"
- Increase research output by ensuring the system can process transactions within the requisite time
frame
- Eliminate system failure requiring scrapping and writing off the system development effort due to
performance objective failure
- Eliminate avoidable system tuning efforts
- Avoid additional and unnecessary hardware acquisition costs
- Reduce increased software maintenance costs due to performance problems in production
- Reduce additional operational overhead for handling system issues due to performance problems
- Identify future bottlenecks by simulation over prototype
## Installed Tools in a Nutshell
| | Task | Easiness | Details | Overhead | Re-compilation |
|----------------------|----------------------------------------------|-------------|----------|-----------|-----------------
| [lo2s](#lo2s) | Create performance [trace](#trace) | easy | medium | low | (no)[^2] |
| [MUST](#must) | Check MPI correctness | medium | medium | variable | no |
| [PAPI](#papi) | Read portable CPU counters | advanced | medium | variable | yes |
| [Perf](#perf-tools) | Produce and visualize [profile](#profile) | easy | medium | low | (no)[^2] |
| [PIKA](#pika) | Show performance [profile](#profile) and [trace](#trace) | very easy | low | very low | no |
| [Slurm](#slurm-profiler) | Produce and visualize simple [trace](#trace)| easy | low | low | no |
| [Score-P](#score-p) | Create performance [trace](#trace) | complex | high | variable | yes |
| [Vampir](#vampir) | Visualize performance [trace](#trace) | complex | high | n.a. | n.a. |
[^2]: Re-compilation is not required. Yet, to obtain more details it is recommended to re-compile with the `-g` compiler option, which adds debugging information to the executable of an application.
## Approach and Terminology
Performance engineering typically is a cyclic process.
The following figure shows such a process and its potential stages.
![Performance engineering cycle](misc/performance_engineering_cycle.svg)
### Instrumentation
!!! hint "Instrumentation is a common term for preparing the performance measurement"
The engineering process typically begins with the original application in its unmodified state.
First, this application needs to be instrumented, i.e. it must be prepared to enable the
measurement of the performance properties.
There are different ways to do this, including manual instrumentation of the source code by the
user, automatic instrumentation by the compiler, linking against pre-instrumented libraries, or
interrupt-driven sampling during run time.
### Measurement
!!! note "During measurement, raw performance data is collected"
When an instrumented application is executed, the additional instructions introduced during the
instrumentation phase collect and record the data required to evaluate the performance properties
of the code.
Unfortunately, the measurement itself has a certain influence on the performance of the instrumented
code.
Whether the perturbations introduced have a significant effect on the behavior depends on the
specific structure of the code to be investigated.
In many cases, the perturbations will be rather small, so that the overall results can be considered
to be a realistic approximation of the corresponding properties of the non-instrumented code.
Yet, it is always advisable to compare the runtime of instrumented applications with their original
non-instrumented counterpart.
#### Profile
!!! hint "Performance profiles hold aggregated data (e.g. total time spent in function `foo()`)"
A performance profile provides aggregated metrics like _time_ or _number of calls_ for a list of
functions, loops or similar as depicted in the following table:
| Function | Total Time | Calls | Percentage |
|----------|-----------:|------:|-----------:|
| `main()` | 2 s | 1 | 1% |
| `foo()` | 80 s | 100 | 40% |
| `bar()` | 118 s | 9000 | 59% |
#### Trace
<!-- markdownlint-disable-next-line line-length -->
!!! hint "Traces consist of a sorted list of timed application events/samples (e.g. enter function `foo()` at 0.11 s)."
In contrast to performance [profiles](#profile), performance traces consist of individual
application samples or events that are recorded with a timestamp.
A trace that corresponds to the profile recording above could look as follows:
| Timestamp | Data Type | Parameter |
|----------:|----------------|-----------------|
| 0.10 s | Enter Function | `main()` |
| 0.11 s | Enter Function | `foo()` |
| 0.12 s | Enter Function | `bar()` |
| 0.15 s | Exit Function | `bar()` |
| 0.16 s | Enter Function | `bar()` |
| 0.17 s | Exit Function | `bar()` |
| | _many more events..._ | |
| 200.00 s | Exit Function | `main()` |
<!-- markdownlint-disable-next-line line-length -->
!!! hint "Traces enable more sophisticated analysis at the cost of potentially very large amounts of raw data."
Apparently, the size of a performance trace depends on the recorded time whereas a profile does not.
Likewise, a trace can tell you when a specific action in your application happened whereas a profile
will tell you how much time in total a class of actions takes.
### Analysis
!!! note "Well defined performance metrics are derived from raw performance data during analysis"
The collected raw data is typically processed by a analysis tool (profiler, consistency checker, you
name it) to derive meaningful, well-defined performance metrics like data rates, data dependencies,
performance events of interest, etc.
This step is typically hidden to the user and taken care of automatically once the raw data was
collected.
Some tools, however, provide an independent analysis front-end that allows specifying the type of
analysis to carry out on the raw data.
### Presentation
!!! note "Presenting performance metrics graphically fosters human intuition"
After processing the raw performance data, the resulting metrics are usually presented in the form
of a report that makes use of tables or charts known from programs like Excel.
In this step, the reduction of the data complexity simplifies the evaluation of the data by software
developers.
Yet, data reductions have the potential to hide important facts or details.
### Evaluation
!!! note "The evaluation of performance metrics requires tools and lots of thinking"
During the evaluation phase, the metrics and findings in a performance report are compared to the
behavior/performance as expected by software developers.
This step typically requires a fair amount of knowledge about the application under test or software
performance in general.
The application is considered to behave sufficiently well or weaknesses have been identified which
potentially can be improved.
An application or its configuration is changed in the later case.
After evaluating an application's performance, the cyclic engineering process is either completed or
restarted from beginning.
## Installed Tools Summary
At ZIH, the following performance engineering tools are installed and maintained:
### lo2s
!!! hint "Easy to use application and system performance trace recorder supporting Vampir"
[lo2s](lo2s.md) records the status of an application at fixed intervals (statistical sampling).
It does not require any [instrumentation](#instrumentation).
The [measurement](#measurement) of a given application is done by pre-fixing the application's
executable with `lo2s`.
The data analysis of the fixed metrics is fully integrated and does not require any user actions.
Performance data is written to a [traces](#trace) repository at the current directory.
See [lo2s](lo2s.md) for further details.
Once the data have been recorded, the tool [Vampir](vampir.md) needs to be invoked to study the data
graphically.
### MUST
<!-- markdownlint-disable-next-line line-length -->
!!! hint "Advanced communication error detection for applications using the Message Passing Interface (MPI) standard."
[MUST](mpi_usage_error_detection.md) checks your application for communication errors if the MPI
library is used.
It does not require any [instrumentation](#instrumentation).
The checks of a given MPI application are done by simply replacing `srun` with `mustrun` when the
application is started.
The data analysis of the fixed metrics is fully integrated and does not require any user actions.
The correctness results are written to an HTML-formatted output file, which can be inspected with a
web browser.
### PAPI
!!! hint "Portable reading of CPU performance metrics like FLOPS"
The [PAPI](papi.md) library allows software developers to read CPU performance counters in a
platform-independent way.
Native usage of the library requires to manually [instrument](#instrumentation) an application by
adding library calls to the source code of the application under investigation.
Data [measurement](#measurement) happens whenever the PAPI library is called.
The data obtained is raw data.
Software developers have to process the data by themselves to obtain meaningful metrics.
Tools like [Score-P](#score-p) have built-in support for PAPI.
Therefore, native usage of the PAPI library is usually not needed.
### Perf Tools
!!! hint "Easy to use Linux-integrated performance data recording and analysis"
[Linux perf](perf_tools.md) reads and analyses CPU performance counters for any given application.
It does not require any [instrumentation](#instrumentation).
The [measurement](#measurement) of a given application is done by simply prefixing the application
executable with `perf`.
Perf has two modes of operation (`perf stat`, `perf record`), which both record [profile](#profile)
raw data.
While the first mode is very basic, the second mode records more data.
Use `perf report` to analyze the raw output data of `perf record` and produce a performance report.
See [Linux perf](perf_tools.md) for further details.
### PIKA
!!! hint "Very easy to use performance visualization of entire batch jobs"
[PIKA](pika.md) allows users to study their active and completed
[batch jobs](../jobs_and_resources/slurm.md).
It does not require any [instrumentation](#instrumentation).
The [measurement](#measurement) of batch jobs happens automatically in the background for all batch
jobs.
The data analysis of the given set of metrics is fully integrated and does not require any user
actions.
Performance metrics are accessible via the
[PIKA web service](https://selfservice.tu-dresden.de/services/1663599/).
### Score-P
!!! hint "Complex and powerful performance data recording and analysis of parallel applications"
[Score-P](scorep.md) is an advanced tool that measures configurable performance event data.
It generates both [profiles](#profile) and detailed [traces](#trace) for subsequent analysis.
It supports automated [instrumentation](#instrumentation) of an application (involves
re-compilation) prior to the [measurement](#measurement) step.
The data analysis of the raw performance data can be carried out with the tools `scalasca`
(advanced MPI metrics), `cube` ([profile](#profile) viewer), `scorep-score` ([profile](#profile)
command line viewer), or [Vampir](#vampir) ([trace](#trace) viewer).
Many raw data sources are supported by Score-P.
It requires some time, training, and practice to fully benefit from the tool's features.
See [Score-P](scorep.md) for further details.
### Slurm Profiler
!!! hint "Easy to use performance visualization of entire batch jobs"
The [Slurm Profiler](../jobs_and_resources/slurm_profiling.md) gathers performance data from every
task/node of a given [batch job](../jobs_and_resources/slurm.md).
It records a coarse-grained [trace](#trace) for subsequent analysis.
[Instrumentation](#instrumentation) of the applications under test is not needed.
The data analysis of the given set of system metrics needs to be initiated by the user with a
command line interface.
The resulting performance metrics are accessible in a simple graphical front-end that provides
time/performance graphs.
### Vampir
!!! hint "Complex and powerful performance data visualization of parallel applications"
[Vampir](vampir.md) is a graphical analysis tool that provides a large set of different chart
representations for performance data [traces](#trace) generated by tools such as
[Score-P](scorep.md) or [lo2s](lo2s.md).
Complex statistics, timelines, and state diagrams can be used by software developers to obtain a
better understanding of the inner working of a parallel application.
The tool requires some time, training, and practice to fully benefit from its rich set of features.
......@@ -13,11 +13,7 @@ It will tell you:
- How to deal with (or even prevent) bugs
- [Find caveats and hidden errors in MPI application codes](mpi_usage_error_detection.md)
- [Using debuggers](debuggers.md)
- How to investigate the performance and efficiency of your code
- [Pika: monitoring of batch jobs](pika.md)
- [Perf: sampling-based performance analysis](perf_tools.md)
- [Score-P: event tracing of HPC applications](scorep.md)
- [Vampir: trace visualization](vampir.md)
- [How to investigate the performance and efficiency of your code](performance_engineering_overview.md)
Some hints that are helpful:
......
......@@ -82,6 +82,7 @@ nav:
- Mathematics Libraries: software/math_libraries.md
- Debugging: software/debuggers.md
- Software Engineering Tools:
- Overview: software/performance_engineering_overview.md
- MPI Error Detection: software/mpi_usage_error_detection.md
- Score-P: software/scorep.md
- lo2s: software/lo2s.md
......
personal_ws-1.1 en 471
personal_ws-1.1 en 475
Abaqus
ACL
ACLs
Addon
Addons
AFIPS
ALLREDUCE
Altix
Amber
......@@ -75,6 +76,7 @@ Dockerfile
Dockerfiles
DockerHub
dockerized
Doherty
DOI
don'ts
dotfile
......@@ -432,6 +434,7 @@ tracefiles
tracepoints
transferability
Trition
TSS
TUD
und
undistinguishable
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment