Talk: planning slides (cont..)

This commit is contained in:
Fischlurch 2026-08-09 05:39:17 +02:00
parent 15090bd997
commit 3f61b106cc

View file

@ -240,9 +240,7 @@
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#690f14" CREATED="1786157164429" HGAP="525" ID="ID_487001972" MODIFIED="1786158477936" TEXT="X" VSHIFT="-18">
<font NAME="SansSerif" SIZE="21"/>
<node CREATED="1786235664313" ID="ID_1678569803" MODIFIED="1786235696451" TEXT="what is &#xbb;fast&#xab; and what &#xbb;slow&#xab; &#x27f9; Time-Scales"/>
</node>
<node CREATED="1785540830071" ID="ID_126092826" MODIFIED="1785540836160" TEXT="architectural challenge">
<node CREATED="1785542295608" ID="ID_676687623" MODIFIED="1785542315834" TEXT="IO invades my control-flow">
@ -323,7 +321,29 @@
<node CREATED="1785705215460" ID="ID_1041446652" MODIFIED="1785705218215" TEXT="two meanings">
<node CREATED="1785705219604" ID="ID_235422789" MODIFIED="1785705224583" TEXT="control-flow correlation"/>
<node CREATED="1785705225235" ID="ID_845381194" MODIFIED="1785705228894" TEXT="visibility management">
<node CREATED="1785705991375" ID="ID_347714238" MODIFIED="1785706006498" TEXT="visibility?? &#x27f9; NUMA !!"/>
<node COLOR="#5b280f" CREATED="1785705991375" ID="ID_347714238" MODIFIED="1786245015452" TEXT="visibility?? &#x27f9; NUMA !!">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1786245032571" ID="ID_1765938120" MODIFIED="1786245043602" STYLE="fork" TEXT="NUMA schie&#xdf;t hier &#xfc;ber das Ziehl hinaus">
<icon BUILTIN="wizard"/>
</node>
<node CREATED="1786245051584" ID="ID_829978590" MODIFIED="1786245480820" TEXT="(wir brauchen keine mehrfach-Sockets oder chiplets)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
allein der Umstand da&#223; Cores direkt an einem Cache h&#228;ngen, gen&#252;gt, um die Notwendigkeit der Synchronisation aufzuzeigen ... daher ist das Schl&#252;sselwort auch &quot;cache-coherence&quot;
</p>
</body>
</html>
</richcontent>
<node CREATED="1786245489365" ID="ID_763564504" MODIFIED="1786245499980" TEXT="Englisch: coherence, nicht coherency">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1786245028814" ID="ID_1433367293" MODIFIED="1786245029751" TEXT="visibility?? &#x27f9; cache-coherency !!"/>
</node>
</node>
<node CREATED="1785706316326" ID="ID_38548076" MODIFIED="1785706326849" TEXT="to ensure both sides see the memory effects">
@ -428,6 +448,9 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#690f14" CREATED="1786157164429" HGAP="525" ID="ID_487001972" MODIFIED="1786246634044" TEXT="X" VSHIFT="-18">
<font NAME="SansSerif" SIZE="21"/>
</node>
<node CREATED="1785875859594" ID="ID_404844187" MODIFIED="1785875865559" TEXT="Example: Video Player">
<node CREATED="1785875876826" ID="ID_256659487" MODIFIED="1785875895788" TEXT="have a fast Open-GL pipeline &#x27f9; just need hand-over"/>
<node CREATED="1785875964166" ID="ID_684645417" MODIFIED="1785875979393" TEXT="Backpressure &#x27f8; use fixed-size ring"/>
@ -680,9 +703,65 @@
<node CREATED="1785877094220" ID="ID_1651644833" MODIFIED="1785877434241" TEXT="Diagramm &quot;Application setup&quot;"/>
</node>
<node CREATED="1753975388927" ID="ID_844470552" MODIFIED="1785876443685" TEXT="Code-Beispiele">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785873575052" ID="ID_1698936757" MODIFIED="1785884741878" TEXT="Producer-Consumer">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785873575052" ID="ID_1698936757" MODIFIED="1786245908602" TEXT="Producer-Consumer">
<linktarget COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1007251265" SOURCE="ID_564793830" STARTARROW="None" STARTINCLINATION="-119;11;"/>
<linktarget COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1915855216" SOURCE="ID_537337249" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1786245652055" ID="ID_798071934" MODIFIED="1786245789280">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<u>Producer</u>:
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">write payload[...]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// ordinary stores </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// StoreStore + LoadStore barrier here </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">store(flag, READY, release) </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<u>Consumer</u>:
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">v = load(flag, acquire) </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// LoadLoad + LoadStore barrier here </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">if (v == READY) </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">&#160;&#160;&#160;&#160;read payload[...]&#160;&#160;&#160;&#160;&#160;// ordinary loads </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">else </font>
</p>
<p http-equiv="content-type" content="text/html; charset=utf-8" class="font-claude-response-body break-words whitespace-normal" dir="ltr">
<font face="Monospaced" size="2" color="#261b52">&#160;&#160;&#160;&#160;// walk away &#8212; no information gained, positive or negative </font>
</p>
</body>
</html>
</richcontent>
</node>
</node>
</node>
<node CREATED="1753974744448" ID="ID_233051154" MODIFIED="1753974749608" TEXT="Demo code"/>
@ -795,7 +874,7 @@
<node CREATED="1786158112260" ID="ID_1719290378" MODIFIED="1786158117815" TEXT="video pushes the limits"/>
<node CREATED="1786158120997" ID="ID_1802759909" MODIFIED="1786158140188" TEXT="&#x27f9; make optimum use of resources"/>
</node>
<node CREATED="1786158146164" ID="ID_1965918049" MODIFIED="1786158155733" TEXT="IO is &#xbb;problematic&#xab;">
<node CREATED="1786158146164" ID="ID_1965918049" MODIFIED="1786235987151" TEXT="I/O is &#xbb;problematic&#xab;">
<node CREATED="1786158231476" ID="ID_310766175" MODIFIED="1786158242607" TEXT="much more complex than the &quot;compute&quot; resource"/>
<node CREATED="1786158247058" ID="ID_405882035" MODIFIED="1786158266443" TEXT="it is slow">
<node CREATED="1786158272327" ID="ID_1400639102" MODIFIED="1786158291344" TEXT="slow can refer to..."/>
@ -810,7 +889,7 @@
</node>
<node CREATED="1786158328007" ID="ID_457446692" MODIFIED="1786158570391" TEXT="&#x27f9; it is hard to predict"/>
<node CREATED="1786158352524" ID="ID_1145344027" MODIFIED="1786158354567" TEXT="and especially for Video &#x27f6; a new twist.... "/>
<node CREATED="1786158361606" ID="ID_986117401" MODIFIED="1786158372785" TEXT="IO is no longer slow">
<node CREATED="1786158361606" ID="ID_986117401" MODIFIED="1786235991899" TEXT="I/O is no longer slow">
<node CREATED="1786158373937" ID="ID_947160129" MODIFIED="1786158378724" TEXT="and that&apos;s the problem"/>
</node>
<node CREATED="1786158641707" ID="ID_1475320779" MODIFIED="1786158678740" TEXT="what is &#xbb;fast&#xab; ... and &#xbb;slow&#xab;?"/>
@ -825,6 +904,124 @@
<node CREATED="1786209276951" ID="ID_1586351838" MODIFIED="1786209300679" TEXT="1 clock-cylce &#x2254; 1sec"/>
</node>
</node>
<node CREATED="1786235838071" ID="ID_149312062" MODIFIED="1786235846841" TEXT="architectural challenge">
<node CREATED="1786235868263" ID="ID_439346940" MODIFIED="1786235884394" TEXT="I/O invades the control-flow">
<node CREATED="1786236083238" ID="ID_1030610372" MODIFIED="1786236095616" TEXT="I/O just happens"/>
<node CREATED="1786236097484" ID="ID_343037218" MODIFIED="1786236110925" TEXT="handling creates accidental overhead"/>
</node>
<node CREATED="1786236117616" ID="ID_960264533" MODIFIED="1786236129403" TEXT="Solution patterns">
<node CREATED="1785601495587" ID="ID_1049863439" MODIFIED="1786236168822" TEXT="block in processing"/>
<node CREATED="1785601569001" ID="ID_250647320" MODIFIED="1785601575268" TEXT="avoid the blocking"/>
<node CREATED="1785601798675" ID="ID_717937918" MODIFIED="1786236213144" TEXT="instruct I/O tasks"/>
</node>
<node CREATED="1786236228043" ID="ID_59513152" MODIFIED="1786236238313" TEXT="Excourse: Berkely vs. MIT">
<node CREATED="1786236251057" ID="ID_995829099" MODIFIED="1786236253406" TEXT="Berkely">
<node CREATED="1786236321789" ID="ID_1752234528" MODIFIED="1786236351802" TEXT="prefer simple code"/>
<node CREATED="1786236331604" ID="ID_1695326473" MODIFIED="1786236337591" TEXT="ship early"/>
</node>
<node CREATED="1786236356302" ID="ID_1804975294" MODIFIED="1786236358676" TEXT="MIT">
<node CREATED="1786236372934" ID="ID_768441053" MODIFIED="1786236387905" TEXT="prefer simple interface"/>
<node CREATED="1786236429183" ID="ID_1642532955" MODIFIED="1786236435988" TEXT="correctnes justifies complexity"/>
</node>
</node>
</node>
<node CREATED="1786236925825" ID="ID_1490811401" MODIFIED="1786236928888" TEXT="io_uring">
<node CREATED="1786236937314" ID="ID_1437391420" MODIFIED="1786236941389" TEXT="Kernel-Interface">
<node CREATED="1786236989681" ID="ID_1900578005" MODIFIED="1786237025505" TEXT="a pair of ringbuffers">
<node CREATED="1786242103207" ID="ID_265581273" MODIFIED="1786242196867">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Ringbuffer</u>:<br />
</p>
<p>
<font face="Monospaced" color="#704545">buffer[cursor % RING_SIZE]</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1786242211296" ID="ID_1804746347" MODIFIED="1786242216162" TEXT="Kleinvieh...."/>
<node CREATED="1786242217560" ID="ID_1208716837" MODIFIED="1786242229913" TEXT="a queue for Submissions"/>
<node CREATED="1786242230765" ID="ID_120169631" MODIFIED="1786242235257" TEXT="a queue for Completions"/>
</node>
<node CREATED="1786242281758" ID="ID_458051448" MODIFIED="1786242284866" TEXT="memory-mapped">
<node CREATED="1786242286578" ID="ID_1783792321" MODIFIED="1786242301371" TEXT="ringbuffers"/>
<node CREATED="1786242292221" ID="ID_1267065092" MODIFIED="1786242303656" TEXT="data buffers"/>
</node>
<node CREATED="1786242318954" ID="ID_893637645" MODIFIED="1786242359199" TEXT="entries tagged with user data item"/>
<node CREATED="1786242363635" ID="ID_1548043873" MODIFIED="1786242386764" TEXT="submissions model classical syscalls"/>
</node>
<node CREATED="1786242404480" ID="ID_387275241" MODIFIED="1786242408617" TEXT="what we got....">
<node CREATED="1786242410435" ID="ID_673729734" MODIFIED="1786242417320" TEXT="making syscalls without making syscalls"/>
<node CREATED="1786242418928" ID="ID_66154275" MODIFIED="1786242428469" TEXT="this started a security nightmare..."/>
</node>
<node CREATED="1786242489571" ID="ID_312711315" MODIFIED="1786242495102" TEXT="liburing">
<node CREATED="1786242497913" ID="ID_231424686" MODIFIED="1786242502130" TEXT="thin abstraction layer"/>
<node CREATED="1786242503167" ID="ID_90257215" MODIFIED="1786242511283" TEXT="programmer friendly interface">
<node CREATED="1786242534132" ID="ID_803087090" MODIFIED="1786242542775" TEXT="setup uring"/>
<node CREATED="1786242549354" ID="ID_999494168" MODIFIED="1786242562910" TEXT="&#xbb;API functions&#xab; to build SQE"/>
<node CREATED="1786242565728" ID="ID_1698341247" MODIFIED="1786242581586" TEXT="can &#xbb;peek&#xab; or &#xbb;block&#xab; on the completion queue"/>
</node>
<node CREATED="1786242586984" ID="ID_1554868288" MODIFIED="1786242595184" TEXT="But: should understand what happens below"/>
</node>
</node>
<node CREATED="1786243142002" ID="ID_669329022" MODIFIED="1786243145711" TEXT="Synchronisation">
<node CREATED="1785705215460" ID="ID_753464307" MODIFIED="1785705218215" TEXT="two meanings">
<node CREATED="1785705219604" ID="ID_1231615837" MODIFIED="1785705224583" TEXT="control-flow correlation"/>
<node CREATED="1785705225235" ID="ID_204102711" MODIFIED="1785705228894" TEXT="visibility management"/>
</node>
<node CREATED="1785705991375" ID="ID_695911002" MODIFIED="1786245441529" TEXT="visibility?? &#x27f9; cache-coherence !!">
<arrowlink COLOR="#687482" DESTINATION="ID_1882333702" ENDARROW="Default" ENDINCLINATION="-1812;-1632;" ID="Arrow_ID_1367738858" STARTARROW="None" STARTINCLINATION="1373;113;"/>
</node>
<node CREATED="1786245208683" ID="ID_899315378" MODIFIED="1786245216190" TEXT="Adversaries">
<node CREATED="1786245217834" ID="ID_1803513261" MODIFIED="1786245241950" TEXT="cache effects, NUMA"/>
<node CREATED="1786245243012" ID="ID_1155344476" MODIFIED="1786245291603" TEXT="the compiler / optimizer"/>
</node>
<node CREATED="1786246113057" ID="ID_1523190067" MODIFIED="1786246116003" TEXT="Abstractions">
<node CREATED="1786246117555" ID="ID_969154444" MODIFIED="1786246121651" TEXT="Barriers / Fences">
<node CREATED="1786246153449" MODIFIED="1786246153449" TEXT="StoreStore"/>
<node CREATED="1786246164738" MODIFIED="1786246164738" TEXT="LoadLoad"/>
<node CREATED="1786246177165" MODIFIED="1786246177165" TEXT="LoadStore"/>
<node CREATED="1786246190951" MODIFIED="1786246190951" TEXT="StoreLoad"/>
</node>
<node CREATED="1786246217323" ID="ID_1893817108" MODIFIED="1786246222075" TEXT="Memory Order">
<node CREATED="1786246223006" ID="ID_1140165000" MODIFIED="1786246224709" TEXT="relaxed"/>
<node CREATED="1786246225377" ID="ID_165584437" MODIFIED="1786246249330" TEXT="acquire"/>
<node CREATED="1786246251318" ID="ID_1464583765" MODIFIED="1786246252857" TEXT="release"/>
<node CREATED="1786246253430" ID="ID_214589823" MODIFIED="1786246263177" TEXT="seq_cst"/>
</node>
</node>
<node CREATED="1786245528744" ID="ID_891133446" MODIFIED="1786245544593" TEXT="Example: producer &#x27f6; consumer">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785791243995" ID="ID_537337249" MODIFIED="1786245908602" TEXT="Code-Beispiel">
<arrowlink COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1915855216" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1786245936803" ID="ID_1211062148" MODIFIED="1786245940949" TEXT="Zonen">
<node CREATED="1786245941715" ID="ID_167190015" MODIFIED="1786245945822" TEXT="Deklaration"/>
<node CREATED="1786245946151" ID="ID_1870232563" MODIFIED="1786245948582" TEXT="Producer"/>
<node CREATED="1786245949031" ID="ID_1605784790" MODIFIED="1786245950335" TEXT="Consumer"/>
</node>
<node CREATED="1786246037197" ID="ID_1751155176" MODIFIED="1786246052268" TEXT="&quot;ordinary stores&quot; &quot;ordinary loads&quot;"/>
<node CREATED="1786245952238" ID="ID_620086092" MODIFIED="1786245961769" TEXT="Barriers">
<node CREATED="1786245976787" ID="ID_1632014732" MODIFIED="1786245983275" TEXT="StoreStore + LoadStore"/>
<node CREATED="1786246013602" ID="ID_275398204" MODIFIED="1786246015120" TEXT="LoadLoad + LoadStore"/>
</node>
<node CREATED="1786246068359" ID="ID_1757141587" MODIFIED="1786246072948" TEXT="walk away...">
<node CREATED="1786246072948" ID="ID_486362621" MODIFIED="1786246074745" TEXT="no information gained, positive or negative"/>
</node>
</node>
</node>
<node CREATED="1786246360156" ID="ID_1257663952" MODIFIED="1786246365634" TEXT="Futex and wait-states">
<node CREATED="1786246367647" ID="ID_1794884039" MODIFIED="1786246375878" TEXT="Atomic in userspace"/>
<node CREATED="1786246511906" ID="ID_1181870053" MODIFIED="1786246524005" TEXT="Check: flag equals expected">
<node CREATED="1786246526121" ID="ID_481886127" MODIFIED="1786246545962" TEXT="yes &#x27f9; sleep (Kernel call)"/>
<node CREATED="1786246546790" ID="ID_1627212633" MODIFIED="1786246561350" TEXT="no &#x27f9; immeditately return"/>
</node>
<node CREATED="1786246572246" ID="ID_1144371495" MODIFIED="1786246584476" TEXT="wakeup: signal threads put to sleep on Futex"/>
</node>
</node>
</node>
</node>
<node CREATED="1754271624646" ID="ID_52826289" MODIFIED="1754271626857" TEXT="Grafik">
@ -922,6 +1119,14 @@
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1786245320212" ID="ID_1882333702" MODIFIED="1786245441529" TEXT="Diagramm &quot;cache coherence&quot;">
<linktarget COLOR="#687482" DESTINATION="ID_1882333702" ENDARROW="Default" ENDINCLINATION="-1812;-1632;" ID="Arrow_ID_1367738858" SOURCE="ID_695911002" STARTARROW="None" STARTINCLINATION="1373;113;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1786245352847" ID="ID_563431072" MODIFIED="1786245357032" TEXT="coherence.svg">
<icon BUILTIN="wizard"/>
</node>
<node CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786245382367" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1785877301089" TEXT="Diagramm &quot;State-Ring&quot;">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1785877302464" ID="ID_1725774104" MODIFIED="1785880120631" STYLE="fork" TEXT="Ein Schema ist nebenbei im Chat mit Claude &quot;angefallen&quot;">