{"id":10130,"date":"2014-06-17T00:29:48","date_gmt":"2014-06-16T22:29:48","guid":{"rendered":"http:\/\/www.bernd-leitenberger.de\/blog\/?p=10130"},"modified":"2014-06-17T08:17:56","modified_gmt":"2014-06-17T06:17:56","slug":"die-sache-mit-den-gigaflops","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2014\/06\/17\/die-sache-mit-den-gigaflops\/","title":{"rendered":"Die Sache mit den Gigaflops"},"content":{"rendered":"<p>Da ich gerade in loser Reihe mich mit den Supercomputern von Cray besch&auml;ftige und dann in der letzten ct&#8216; noch der Artikel &#8222;<a href=\"https:\/\/www.heise.de\/artikel-archiv\/ct\/2014\/12\/176_Matrix-reloaded\">Matrix reloaded<\/a>&#8220; erschien m&ouml;chte ich an dieser Stelle mal was zu der realen und theortischen Geschwindigkeit auf sich hat. Bei Supercomputern aber auch Gro&szlig;rechnern hat sich da die Angabe der Flie&szlig;kommaoperationen pro Sekunde eingeb&uuml;rgert. Fr&uuml;her meist Megaflops, heute pro Prozessor Gigaflops und pro Rechner k&ouml;nnen es schon Teraflops sein. Das Ma&szlig; ist auch f&uuml;r den Laien gut verst&auml;ndlich: Ein &#8222;FLOP&#8220; so die Abk&uuml;rzung ist eine Rechnung pro Sekunde, entspricht also im t&auml;glichen Leben einem Druck auf die Taschenrechnertasten + &#8211; * \/ oder einer l&auml;ngeren Anstrengung des Kopfes. Das F steht f&uuml;r Flie&szlig;kommazahlen, denn es gibt auch die Ganzzahlrechnungen, die man zweckentfremden zur Festpunktarithmetrik nutzen kann. So wird aus einer 20 Stelligen Ganzzahl eben dann eine 16 Stellige mit 4 Stellen hinter dem Komma. Nachteil dieses Verfahrens ist, dass man nicht sehr gro&szlig;e oder sehr kleine Zahlen verarbeiten kann.<!--more--> Bei allen Rechnern wird die Geschwindigkeit in FLOPS leicht angegeben: Wie viele dieser, kann man maximal zu einem Zeitpunkt ausf&uuml;hren. Als Beispiel greife ich auf eine <a href=\"\/cray-1.shtml\" target=\"_blank\">Cray 1<\/a> zur&uuml;ck, weil es bei der noch sehr einfach war und es keine Caches oder andere Features gab die das Ergebnis verf&auml;lschen. Die Cray 1 konnte in Vektoroperationen gleichzeitig eine Addition und Multiplikation durchf&uuml;hren und erreichte so 2 Flops pro Takt. Das war bei 80 Millionen Takten pro Sekunde dann 160 MFlops. Doch das Beispiel zeigt auch schon wo der Hase im Pfeffer ist. Denn es gilt nur f&uuml;r Vektoroperationen, sprich dass man f&uuml;r ganze Felder von Zahlen die gleiche Operation durchf&uuml;hrt. In FORTRAN w&auml;re das bei diesem Codebeispiel der Fall:<\/p>\n<p><!--StartFragment--><\/p>\n<pre><code><span class=\"fortran1-reservedword\">COMMON<\/span><span class=\"fortran1-space\"> A(<\/span><span class=\"fortran1-number\">64<\/span><span class=\"fortran1-symbol\">),B(<\/span><span class=\"fortran1-number\">64<\/span><span class=\"fortran1-symbol\">),C(<\/span><span class=\"fortran1-number\">64<\/span><span class=\"fortran1-symbol\">),D(<\/span><span class=\"fortran1-number\">64<\/span><span class=\"fortran1-symbol\">)\r\n    <\/span><span class=\"fortran1-reservedword\">DO<\/span><span class=\"fortran1-number\">10<\/span><span class=\"fortran1-symbol\">,I=<\/span><span class=\"fortran1-number\">1<\/span><span class=\"fortran1-symbol\">,<\/span><span class=\"fortran1-number\">64\r\n<\/span><span class=\"fortran1-space\">    D(I)=A(I)*B(I)+C(I)\r\n<\/span><span class=\"fortran1-number\">10<\/span><span class=\"fortran1-reservedword\">CONTINUE\r\n<\/span><\/code><\/pre>\n<p><!--EndFragment-->Dieses Beispiel ist in FORTAN, weil Cray Research einen FORTRAN Compiler mit &#8222;Autovektorisierer&#8220; bereitstellte, der bei solchen Schleifen die Vektoroperationen automatisch durchf&uuml;hrte. In diesem Falle werden die Daten in die Vektorregister geladen, die Multiplikation l&auml;uft mit A(1) und B(1) an und im n&auml;chsten Takt kommt dann die Addition von C(1) und dem Ergebnis hinzu w&auml;hrend parallel A(2= * B(2) berechnet wird. F&uuml;r i=2 bis 63 arbeiten so beide Recheneinheiten parallel. Diese Technik nennt man Chaining. Das ist aber nicht die reale Geschwindigkeit dieses Benchmarks. Denn zum einen haben die Operationen eine Vorlaufzeit: Sie m&uuml;ssen dekodiert und die Ausgangswerte an die Funktionseinheiten &uuml;bergeben werden. Die letzte Operation hat auch noch eine Nachlaufzeit in der das letzte Ergebnis ins Zielregister geschrieben wird. Dies addiert 5 Takte bei der Addition und 6 bei der Multiplikation. F&uuml;r 64 werte (das Maximum was die Register fassen) braucht man so 70 Takte. Doch die werte m&uuml;ssen erst in das Register kommen und vom Register die Ergebnisse auch wieder in den Hauptspeicher kommen. Das Laden eines Vektorregisters dauert 81 Takte. Hier haben wir 4 Lade- und einen Speichervorgang, dass addiert, wenn man die Zahlen nicht f&uuml;r andere Operationen braucht 5 x 81 Takte. Dagegen entfallen auf die Schleife keine weiteren Operationen, denn die wird beim Vektorisieren gar nicht ausgef&uuml;hrt. Es muss aber in einem Befehl noch angegeben werden wie viele Vektoroperationen durchgef&uuml;hrt werden, das addiert noch ein paar Takte. Im Worst Case w&uuml;rden die 128 Flop hier also 480 Takte brauchen, das w&auml;ren dann nur noch 21,3 MFlops.<\/p>\n<p>So was beobachtet man auch in Wirklichkeit. Im Livermoore Forschungslabor hat man genau untersucht, wie schnell die Rechner sind und hat aus existierenden Programmen zwischen 6 und 73 MFlops herausgebracht. Das obige Beispiel ergab in &Uuml;bereinstimmung mit den theoretischen Werten 22 MFLOP. Der LINPACK Benchmark der heute Standard f&uuml;r Tests ist ergab bei n=300 rund 34 MFLOPs. Noch schlechter sieht es aus, wenn nicht Vektoroperationen durchgef&uuml;hrt werden, sondern einzelne Zahlen also keine ganzen Arrays bearbeitet werden. Dann braucht eine Cray 1 rund sechsmal so lange, auch ist ein Skalarregister erst in 14 Takten geladen. Es handelt sich also um eine typische Peakperformanceangabe. Nun ein Sprung zu heute. Im obigen Artikel stellte Andreas Stiller einen Laufzeitunterschied in einem Benchmark vom Faktor 1000 fest &#8211; da ist die Geschwindigkeitseinbu&szlig;e der Cray 1 oben vom Faktor 10 doch ein Pappenstiel. Dabei handelte es sich nicht um einen Uralt-Compiler verglichen mit dem neuesten Exemplar, sondern um den aktuellen von Visual Studio mit Intels C++ Compiler. Kernst&uuml;ck ist folgendes Codest&uuml;ck, dem obigen Forttran Code recht &auml;hnliches:<\/p>\n<p><!--StartFragment--><\/p>\n<pre><code><span class=\"cpp1-preprocessor\">#define DIM 1024\r\n<\/span><span class=\"cpp1-reservedword\">typedef<\/span><span class=\"cpp1-reservedword\">double<\/span><span class=\"cpp1-space\"> mat[DIM][DIM];\r\n\r\nmat a,b,c;\r\n\r\n<\/span><span class=\"cpp1-reservedword\">void<\/span><span class=\"cpp1-space\"> clear()\r\n\r\n{\r\n   <\/span><span class=\"cpp1-reservedword\">for<\/span><span class=\"cpp1-space\"> (<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> i=<\/span><span class=\"cpp1-number\">0<\/span><span class=\"cpp1-symbol\">; i &lt; DIM; i++)\r\n   <\/span><span class=\"cpp1-reservedword\">for<\/span><span class=\"cpp1-space\"> (<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> j=<\/span><span class=\"cpp1-number\">0<\/span><span class=\"cpp1-symbol\">; j &lt; DIM; j++)\r\n   {\r\n\tc[i][j] = <\/span><span class=\"cpp1-float\">0.0<\/span><span class=\"cpp1-symbol\">;\r\n\tb[i][j] = i*<\/span><span class=\"cpp1-float\">1.2<\/span><span class=\"cpp1-symbol\">;\r\n\ta[i][j] = j*<\/span><span class=\"cpp1-float\">1.1<\/span><span class=\"cpp1-symbol\">;\r\n   }\r\n}\r\n\r\n\r\n\r\n<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> _tmain(<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> argc, _TCHAR* argv[])\r\n{\r\n   clear();\r\n   <\/span><span class=\"cpp1-reservedword\">for<\/span><span class=\"cpp1-space\"> (<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> k=<\/span><span class=\"cpp1-number\">0<\/span><span class=\"cpp1-symbol\">; k &lt; DIM; k++)\r\n   <\/span><span class=\"cpp1-reservedword\">for<\/span><span class=\"cpp1-space\"> (<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> j=<\/span><span class=\"cpp1-number\">0<\/span><span class=\"cpp1-symbol\">; j &lt; DIM; j++)\r\n   <\/span><span class=\"cpp1-reservedword\">for<\/span><span class=\"cpp1-space\"> (<\/span><span class=\"cpp1-reservedword\">int<\/span><span class=\"cpp1-space\"> i=<\/span><span class=\"cpp1-number\">0<\/span><span class=\"cpp1-symbol\">; i &lt; DIM; i++)\r\n   {\r\n\tc[i][j]+= a[i][k] * b[k][j];\r\n   }\r\n<\/span><\/code><\/pre>\n<p><!--EndFragment-->Nur vom letzte Teil nach Clear (der Initialisierung) wird f&uuml;r die GFLOP Berechnung benutzt und auf einem schnellen <a href=\"http:\/\/ark.intel.com\/products\/76087\">iCore i7-4750 HQ Prozessor<\/a> (3,2 GHz, 4 Kerne, Hyperthreading) kam beim Microsoft Compiler 0,126 GFlops und beim Intel Compiler 138 GFlops &#8211; als Extremwerte. Diese eine Zeile in drei Schleifen hat es in sich. Bei den Compilern, die verwendet wurden, ist die Schleifenanordnung k-j-i so angelegt, dass sie die optimale Anordnung der Compiler f&uuml;r die Arrayelemente umgeht. Diese legen die Elemente einer Spalte hintereinander an, die innerste Schleife l&auml;uft bei zwei der drei Matrizen aber &uuml;ber die Zeilen. Dadurch sind Caches weitgehend unwirksam. Der Hauptspeicher ist aber um L&auml;ngen langsamer als die Caches. &Auml;ndert man die Reihenfolge auf i-j-k ab, so steigt die Performance von 0,126 auf 3,2 GFLOPS. Das ist &uuml;brigens compilerabh&auml;ngig, denn bei meinem Borland war eine andere Reihenfolge die schnellste.<\/p>\n<p>Das ist die Performance pro Kern mit skalaren Operationen. Nun gibt es die Erweiterung AVX2. Die kann vier Werte gleichzeitig bearbeiten. Das ergibt die vierfache Performance. Beim &#8222;Autovektorisieren&#8220; ist mit Microsofts Compiler aber nur eine Steigerung um 25 bis 50% drin. &Uuml;ber einen Compilerschalter nutzt der Compiler alle vier Prozessoren ohne das der Programmierer seinen Code &auml;ndern muss ihn z.b. in parallellaufende Threads aufteilt. Beim Microsofts Compiler kommt man so auf maximal 28,9 GFLOPS, bei Intel sogar auf 62 GFLOPS. Der Prozessor hat vier Kerne die sogar 8 Threads parallel verarbeiten k&ouml;nnen. Das letzte ist dann noch die Benutzung des Fused AddMultiply Befehls, der in einem Rutsch die Multiplikation und Addition durchf&uuml;hrt und so die Performance nochmals verdoppelt. Den Maximalwert von 138 GFlops erhielt man durch den Aufruf einer Bibliotheksfunktion f&uuml;r Matrixmultiplikation welche alle Tricks implementierte, also nicht mit eigenem Code. Theoretisch sollte der Prozessor 204,8 GFLOP erreichen. Der Artikel ist lesenswert, auch weil er zeigt, das viele Compilerflags nicht den Code schneller achten und schon kleine &Auml;nderungen an vorgeschlagenen Geschwindigkeitsoptimierungen die Performance wieder ins Bodenlose fallen lassen Und das alles bei einer Programmzeile, in drei einfachen Schleifen. Man kann sich dann mal vorstellen, was dann erst passiert wenn der Code etwas komplexer ist. Man wird wohl nicht erwarten dass Programmierer f&uuml;pr jede Codezeile im kopf haben wie man sie am besten formuliert, damit der Compiler den schnellsten Code erzeugt Es verwundert daher nicht wenn man im Supercomputerbereich das uralte FORTRAN nimmt, bei denen man nicht so vieles einstellen kann, viel weniger Optionen bei der Variablendeklaration und Parameter&uuml;bergabe gibt. Weiterhin gibt es f&uuml;r die Supercomputer oft auch FORTRAN Compiler mit propriet&auml;ren Erweiterungen um die Parallelisierung zu unterst&uuml;tzen.<\/p>\n<p>Der Endverbraucher hat vond en Optimierungen nichts. erst rechts nichts von Erweiterungen wie AVX, die im obigen Beispiel erst den Perfromanceboost um den Faktor 4-7 brachte. Denn damit w&uuml;rde der Code dann nicht mehr unter &auml;lteren Rechnern oder neuen CPU ohne dieses Features (Celerons oder Atoms) laufen. Softwarehersteller verzichten daher darauf. Die sehr schlechten F&auml;higkeiten von Compilern schnellen Code zu erzeugen f&uuml;hrten auch zum Aus von zwei Intel Prozessoren: dem i860 und Itanium. Beide setzten die VLIW Technologie ein, bei der der Compiler befehle so umgruppiert, dass sie unabh&auml;ngig voneinander ausgef&uuml;hrt werden k&ouml;nnen und so alle Recheneinheiten optimal auslasten. Das war jedoch nur selten der Fall. Aus dieser Sicht w&auml;re es am besten man w&uuml;rde zur&uuml;ckgehen zu einem einfachen Instruktionssatz, vielen Registern, damit man bei den vielen heutigen kurzen Funktionsaufrufen m&ouml;glichst viele Parametern in den Registern halten kann und dann vielleicht mehr Kernen die parallel arbeiten k&ouml;nnen. RISC ist nichts neues, es gab schon immer Rechner mit einfachen Instruktionen ohne Spezialregister und ohne Spezialbefehle. Aber der Begriff kam erst in den Achtzigern auf, als eine Auswertung von Compilercode zeigte, das bei den &uuml;blichen CISC Architekturen die Compiler 80% des Codes mit 20% der Befehle erzeugten. Die vielen Spezialbefehle (die restlichen 80%) wurden also selten benutzt und so sollte RISC Code Compiler freundlich sein. Leider konnte sich keine RISC Architektur auf lange Zeit gegen Intels Marktmacht durchsetzen &#8211; wenn man St&uuml;ckzahlen im dreistelligen Millionenbereich hat, dann kann man sich komplexere Architekturen leisten die aufwendiger zu Produzieren sind, weil man &uuml;ber die St&uuml;ckzahl die Investitionen in die Herstellung wieder hereinbekommt und Chip Herstellung ist eben im Prinzip wie Zeitung drucken &#8211; hat man einmal die Vorlage erstellt so (bei Chips: den Fertigungsprozess im Griff) so ist es egal ob man einen 8 Bit Mikrocontroller produziert oder einen 32 Bit Atom, nur die jeweils neueste Technologie die den teuersten Chips vorbehalten ist kostet mehr.<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/f687d9e07488486aa0ad56fe6c52b65f\" alt=\"\" width=\"1\" height=\"1\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da ich gerade in loser Reihe mich mit den Supercomputern von Cray besch&auml;ftige und dann in der letzten ct&#8216; noch der Artikel &#8222;Matrix reloaded&#8220; erschien m&ouml;chte ich an dieser Stelle mal was zu der realen und theortischen Geschwindigkeit auf sich hat. Bei Supercomputern aber auch Gro&szlig;rechnern hat sich da die Angabe der Flie&szlig;kommaoperationen pro Sekunde [&hellip;]<\/p>\n","protected":false},"author":169,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[3673,1312,3672],"class_list":["post-10130","post","type-post","status-publish","format-standard","hentry","category-computer","tag-compiler","tag-cray","tag-gigaflop","entry"],"a3_pvc":{"activated":false,"total_views":681,"today_views":0},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":18480,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/12\/27\/die-umweltbilanz-der-new-shepard\/","url_meta":{"origin":10130,"position":0},"title":"Die Umweltbilanz der New Shepard","author":"Bernd Leitenberger","date":"27. Dezember 2025","format":false,"excerpt":"K\u00fcrzlich ist die deutsche Michaela Benthaus mit Blue Origin auf der Mission New Shepard NS37 geflogen. Da die Dame querschnittsgel\u00e4hmt ist, war dies den Nachrichten eine Schlagzeile wert, \u00e4hnlich wie vor einigen Monaten der Flug von Kate Perry, ebenfalls mit Blue Origin auf der New Shepard. Was dabei untergegangen ist,\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg04.met.vgwort.de\/na\/99ff84c04ca842a2baa1d4552eb54bab","width":350,"height":200},"classes":[]},{"id":18612,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/28\/galileos-cds-teil-2\/","url_meta":{"origin":10130,"position":1},"title":"Galileos CDS \u2013 Teil 2","author":"Bernd Leitenberger","date":"28. M\u00e4rz 2026","format":false,"excerpt":"So, heute geht es weiter mit Teil 2 \u00fcber Galileos CDS, dieser Beitrag schlie\u00dft nahtlos an den ersten Beitrag von gestern an, wie man schon an der ersten Textzeile sieht. Nach der Einleitung im ersten Teil geht es heute weiter damit warum der RCA 1802 genutzt wurde und was seine\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/191e4b0728de42829cf656027b84dc82","width":350,"height":200},"classes":[]},{"id":18676,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/05\/31\/die-glorreichen-10-programmiersprachen\/","url_meta":{"origin":10130,"position":2},"title":"Die glorreichen 10 \u2013 Programmiersprachen","author":"Bernd Leitenberger","date":"31. Mai 2026","format":false,"excerpt":"Ich wollte mal eine Reihe in dieser Rubrik \u00fcber Programmiersprachen machen. Zuerst dachte ich daran eine Liste nach meinen pers\u00f6nlichen Favoriten zu erstellen. Anfangs bef\u00fcrchtete ich, dass ich gar nicht auf 10 komme, aber es sind tats\u00e4chlich mehr, wenngleich ich in vielen Sprachen nur kleine Programme verfasst habe oder mich\u2026","rel":"","context":"In &quot;Die Glorreichen 10&quot;","block_context":{"text":"Die Glorreichen 10","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/die-glorreichen-10\/"},"img":{"alt_text":"","src":"https:\/\/vg09.met.vgwort.de\/na\/4073c4f9dc6943a08702cdde13605d43","width":350,"height":200},"classes":[]},{"id":18002,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/03\/07\/nachlese-achter-teststart-starship-itf-8\/","url_meta":{"origin":10130,"position":3},"title":"Nachlese achter Teststart Starship ITF-8","author":"Bernd Leitenberger","date":"7. M\u00e4rz 2025","format":false,"excerpt":"Ich mache diese Nachlese wie die bei ITF-7 nicht mehr so ausf\u00fchrlich wie die vorherigen, sondern konzentriere mich auf die wesentlichen Ereignisse. Hier die wesentlichen Ereignisse der Super-Heavy. Bei ihr fielen beim Boostback-Burn zwei der 13 inneren Triebwerke aus. So ist der erste Brennschluss (nach dem nur noch die innersten\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg05.met.vgwort.de\/na\/4424715e8bf74a938ee3b9b549d02a5b","width":350,"height":200},"classes":[]},{"id":18449,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/10\/16\/das-v4-wirds-schon-richten-2\/","url_meta":{"origin":10130,"position":4},"title":"Das V4 wirds schon richten (2)","author":"Bernd Leitenberger","date":"16. Oktober 2025","format":false,"excerpt":"So, heute der zweite Teil des Artikels von gestern. Nachdenken hilft Bei den Vers-Sprechen von Elon Musk hilft Nachdenken. Ich habe in der Tabelle auch die Gesamttreibstoffmenge angegeben: Parameter Starship V1 (2023\/24) Starship V2 (2025) Starship V3 (2026-) Starship V4 Nutzlast (wiederverwendbar) 15 t 35 t 100+ t 200+ Gesamtmasse\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg04.met.vgwort.de\/na\/d193ca8d21b14074b04b39cfcfcae20f","width":350,"height":200},"classes":[]},{"id":18666,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/05\/24\/nachlese-starship-ift-12\/","url_meta":{"origin":10130,"position":5},"title":"Nachlese Starship IFT-12","author":"Bernd Leitenberger","date":"24. Mai 2026","format":false,"excerpt":"Am 23.3.2026 (MESZ) fand nach drei Tagen Versp\u00e4tung darunter einem Scrub nach Beginn des Countdowns am Vortag der 12-te Start eines Starship IFT-12 statt. Die SuperHeavy hatte die Seriennummer 19, die eigentlich daf\u00fcr vorgesehene mit der Seriennummer 18 wurde am 21.11.2025 bei einem routinem\u00e4\u00dfigen Drucktest zerst\u00f6rt. Das Starship hatte die\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/f19d187cb3874c0e865293c1db843fb9","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/10130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/comments?post=10130"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/10130\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=10130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=10130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=10130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}