Home | Computer | Hardware | Site Map |
In meiner losen Reihe von „Fehlschlägen“ von Intel, also Prozessoren, die von Intel entwickelt wurden, aber die Erwartungen nicht erfüllten kommt mit diesem Artikel der krönende Abschluss. Bisher erschienen schon:
Der Intel 8085 (1976) – ein Nachfolger des Intel 8080, dem zum Verhängnis wurde, das zeitgleich der noch bessere Z80 erschien.
Der iAPX 432 (1981) – eine objektorientierte 32 Bit Architektur, die jedoch in realen Benchmark quälend langsam war.
Der I860 (1989), ein von Intel als „Cray on a Chip“ beworbener RISC Prozessor mit auf dem Papier beeindruckender Performance. Leider erreichte er diese Geschwindigkeit in realen Programmen nicht und noch bedeutender: Er war auf Maschinensprachenebene inkompatibel zu jedem eingeführten Prozessor. (Den Artikel lesen sie gerade).
Und nun eben im Jahre 2001 der Itanium mit einer VLIW Architektur, der nicht die Erwartungen Intels erfüllte.
Im Jahre 1989 kündigte Intel einen neuen Prozessor an, den Intel 860. Es war der zweite Versuch neben der bekannten x86 Architektur eine zweite Produktlinie zu etablieren. Der erste Versuch, der iAPX 432 scheiterte einige Jahre vorher. Intel sparte nicht mit Vorschusslorbeeren und kündigte den Prozessor als "Cray on a Chip" an, was natürlich Erwartungen weckte. Neben der offiziellen Bezeichnung "i860" hat sich auch die Typnummer 80860 eingebürgert, die sich an die Nomenklatur der x86 Linie anlehnte (80186 - 80286 - 80386). Zu der Zeit kehrte Intel aber auch dieser Nomenklatur den Rücken und kündigte den nächsten Prozessor nur als "486" an.
Dieser Ausdruck störte mich, als ich in der ct'6/1989 erstmals von dem Intel 860 hörte. Meine damalige Uni (Stuttgart) hatte eine Cray 2, eine der ersten in Europa. An diesen Rechner kam man als normaler Student nicht heran. Seymour Cray und seine von ihm konstruierten Rechner hatten einen legendären Ruf. Die schnellsten Rechner ihrer Zeit stammten von Cray, zuerst noch von der Firma CDC (Cyber 6600 und 7600) dann von Crays eigener Firma (Cray 1 und 2).
Und nun sollte das alles auf einem Chip untergebracht werden?
Heute weiß ich - es war tatsächlich möglich. Wie schnell ein Rechner ist, hängt primär von drei Faktoren ab:
Seinem Takt: die erste Cray arbeitete mit einem Takt von 80 MHz. 1989 als der i860 erschien, hatten Mikroprozessoren einen maximalen Takt von 33 MHz, waren also nicht so weit von einer Cray entfernt. Die erste Version des I860 hatte den auch einen Takt von 25 oder 33 MHz.
Seiner Komplexität: Je komplexer ein Chip ist, desto schneller ist er im Normalfall. So ist ein 32 Bit Rechner schneller als ein 8 Bitter, weil er für eine 32 Bit Operation nur einen Befehl braucht, während ein 8 Bitter dafür mindestens vier braucht. Zudem kann man immer mehr in Hardware "gießen" je mehr Transistoren man zur Verfügung hat. So gab es 1989 auch den 486 Prozessor der den vorher separaten mathematischen Coprozessor und Cache im Chip integrierte.
Seiner Architektur: Crays Supercomputer war ein 64 Bit Rechner mit einer Besonderheit: er war auf schnelle Fließkommaoperationen spezialisiert. Dazu hatte er Vektorregister in die 64 Werte, anstatt ein Wert passten. Pro Takt wurde ein Register an die Recheneinheit übergeben. So konnte eine Fließkommaoperation in einem Takt ausgeführt werden. Mit den normalen Registern benötigte die Cray dagegen sechs Takte. Mehr noch. Für eine sehr häufig benutzte Operation: die Addition gefolgt von einer Multiplikation konnte man, da unterschiedliche Einheiten benötigt wurden, die Operationen parallel durchführen, dann erreichte eine Cray eine Spitzenperformance von 160 Mflops.
160 Mflops der Cray 1 - obwohl das nicht mehr die aktuelle Performance war (die damals aktuelle Cray 2 hatte eine Peak-Performance von 1.9542 Mflops, der für September 1990 angekündigte NEC SX-3 eine Performance von bis zu 22 GFlops) war das doch meilenweit von der Performance eines PC entfernt. Der gerade neu erschienene 486-25 schaffte in Hochsprachenbenchmarks etwa 0,7 Mflops. So war ich skeptisch, ob der "Wunderprozessor" seine Versprechen einlösen konnte.
Immerhin - das kann ich mit dem Wissen von heute sagen - technisch möglich wäre es gewesen. Der Kernpunkt ist die oben beschriebene Komplexität. Eine Cray war so schnell, weil sie sehr schnell schaltende ECL-Chips nutzte. Die waren schnell, aber die Integrationsdichte von ECL-Schaltkreisen hinkte schon, als die Cray 1 im Jahre 1976 erschien, der aktuellen Integration hinterher. Die CPU bestand schließlich aus über 200.000 Gattern auf Zigtausenden von Chips. Für ein Gatter benötigt man im einfachsten Fall zwei Transistoren, selbst wenn es mehr sind - der i860 Prozessor hatte nicht weniger als 1 Millionen Transistoren, die Komplexität einer Cray konnte man also auf einem Chip unterbringen. Doch hatte der Intel 860 auch dieselbe Rechenleistung?
Der i860 war Intels erst RISC-Architektur. Bisher waren alle Intel Prozessoren CISC Architekturen gewesen und sie wurden immer komplexer. RISC (Reduced Instruction Set) war das "In"-Thema der zweiten Hälfte der Achtziger Jahre. Zahlreiche neue Prozessoren wurden veröffentlicht, die alle RISC-Architekturen hatten. Die grundlegende Idee von RISC: Anstatt viele komfortable Befehle langsam auszuführen, führt ein Prozessor wenige elementare Befehle schnell aus. Er kann dadurch viel weniger komplex aufgebaut werden und ist schneller und billiger zu entwickeln und zu produzieren. Es waren schon etliche RISC-Architekturen in den vergangenen Jahren erschienen, so die MIPS-Architektur, Suns Sparc, die bis heute dominierende ARM-Architektur. Andere waren angekündigt wie AMD 2900, Motorola 88000, Inmos T800, Intergraf R-300 und von Intel auch den Controller Intel 80960. De Intel 860 war ebenfalls eine RISC Architektur.
Er verarbeitete bei Fließkommazahlen 64 Bits - genauso viele wie eine Cray - das war damals etwas Besonderes, auch im RISC Bereich. Ganze Zahlen waren aber nur 32 Bit breit. Für sie gab es 32 Integer-Register zu je 32 Bit. Für Fließkommazahlen gab es 16 allgemeine Fließkommaregister mit je 64 Bits Breite, die aber in 32 halb so große von je 32 Bit Breite aufgeteilt werden konnten. Damit waren "Single Precision" (32 Bit) wie "Double Precision" Rechnungen möglich.
Intern war er aber gemischte Architektur wie man auch an den 32 Bit breiten Integerregistern sieht. Dazu gab es vier Fließkommaregister mit Spezialfunktionen und die in jedem Prozessor nötigen Controlregister für den Programmzeiger, Flags, Zeiger auf den Stack etc.
Intern war der Bus sogar zum Cache 128 Bit breit und er wurde gepipelint, das ermöglichte schnelle Blocktransfers. Eine Pipeline holt den nächsten Wert, bevor der aktuelle schon übergeben ist. Die anderen Busse, auch der externe Datenbus, waren 64 Bit breit. Intel klassifizierte daher den Prozessor als 64 Bit Prozessor "i860 64-Bit Microprocessor".
Wie eine Cray unterstützte der Prozessor die Drei-Adress-Schreibweise, bei der bei einer Rechenoperation drei Register beteiligt sind: Das Ergebnisregister und zwei Operanden. Die x86 Architektur hatte dagegen eine Zweiadress-Architektur, bei der das Ergebnis den ersten Operanden überschrieb. Die inzwischen eingeführte Vektoreinheit AVX verwendet auch auf der x86 Architektur die Drei-Adress-Architektur.
Intern gab es eine Ausführungseinheit "Core Unit" und je eine Fließkomma-Addition und Multiplikationseinheit. Sie konnten alle parallel arbeiten, sodass wie bei der Cray theoretisch eine Addition und Multiplikation parallel arbeitet werden konnte. Zusammen mit der "Core" genannten 32 Bit Alu, konnte so pro Takt theoretisch je eine Integer und zwei Fließkommaoperationen abgearbeitet werden.
Eine Besonderheit war eine dritte FPU-Einheit, der "Graphics Processor". Es war im Wesentlichen eine 64 Bit Fließkomma-ALU, die aber nur ganze Zahlen verarbeitete, nicht wie bei Fließkommatypen unterschied zwischen Exponent und Wertebereich. Sie konnte je zwei Fließkommaregister als 128 Bit Register nutzen. Die Instruktionen dafür waren SIMD Anweisungen (Single Instruction, Multple Data). Das heißt, der Registerinhalt wurde nicht als 128 Bit Ganzzahl angesehen, sondern z.B. als 8 × 16 Bit Ganzzahlen. Die Bezeichnung Graphics Prozessor erhielt er dadurch, dass bei Grafikoperationen auf den Bildschirminhalt - damals typischerweise 8 oder 16 Bit Integerwerte, die gleiche Operation angewandt wurde. So konnte der Prozessor immer acht oder 16 Bildpunkte auf einmal bearbeiten. Die Erfahrungen die Intel dabei machte, flossen später in eine Erweiterung des Pentium - MMX, weiterentwickelt heute zu AVX (Advanced Vector Extensions).
Der Bedarf, dass man die 128 Bit Register auch mit Daten füllen muss, führte zu VLIW (Very Large Instruction Words), wie der Name aussagt, enthalten Befehle mehr Daten als die Kernarchitektur als Bitbreite hat, also hier 128 Bit anstatt 64 Bit. Die Graphic-Engine unterstützte 8, 16 und 32 Bit Werte für Bildpunkte.
Die reklamierte hohe Fließkommaperformance erhielt der 860 durch einen speziellen Modus der Fließkommaeinheit. Sie konnte im Pipelined-Mode pro Takt einen neuen Wert an die Recheneinheiten übergeben, sodass pro Takt eine Fließkomma-Rechenoperation durchgeführt wurde. Im normalen Modus benötigte eine Operation dagegen drei bis vier Takte.
Die Integer "Core" Einheit arbeitete mit 8 Bit, 16 Bit und 32 Bit Operanden, Sie führte die Laden/Speichern-, Ganzzahl-, Bit-, I/O und Programmfluss/Transfer Operationen aus und holte auch die Instruktionen für die Fließkommaeinheit aus dem Speicher.
Um die benötigten Datenmengen zu verarbeiten hatte der Prozessor einen Cache. Er war 4 KByte für Instruktionen und 8 KByte groß für die Daten. Das war zu der Zeit zumindest für RISC Architekturen eine Besonderheit. Die meisten RISC Prozessoren dieser Zeit hatten keinen Cache. Beide Caches waren vierfach assoziativ und hatten eine Cacheline von 32 Bytes. Der interne Codecache transferierte 8 Bytes pro Takt, der Datencache, um die Fließkommawerte nachzuliefern, sogar 16 Byte pro Takt. Das waren zwei 32 Bit Instruktionen und zwei 64 Bit Gleitkommawerte pro Takt. Die erste Version genannt i860, nach erscheinen der zweiten Generation in i870XR umbenannt, debütierte Anfang 1989.
Die zweite Generation, genannt Intel I860XP die 1991 veröffentlicht wurde, bekam auf 16 KByte vergrößerte Caches für Instruktionen und Daten. Das Reduzieren der Transistorgröße von 1,0 auf 0,8 Mikrometer ermöglichte zudem einen höheren Takt von 40 bzw. 50 MHz. Bei der ersten Generation hatte man schlicht und einfach nicht den Platz für so große Caches. Wie man auf dem Die Foto sieht nehmen schon diese relativ kleinen Caches ein Drittel der Chpfläche ein (sie sind die uniformesn Felder links auf dem ersten Bild ganz oben). Bei der zweiten Genration (Die Foto unten) machen sie schon die Hälfte des Chips aus.
Der Prozessor unterstützte das Mappen von logischem auf physikalischen Speicher. Auf dem Chip selbst gab es zwei Übersetzungstabellen. Eine mit 64 Einträgen für Seiten von 4 KByte Größe, einen zweiten bei dem I860XP mit 16 Einträgen für Seiten von 4 MByte Größe. Der Adressraum betrug 4 GByte, also 232 Bits.
Intel ahnte wahrscheinlich schon, das der Prozessor alleine es schwer haben würde, einen Markt zu finden und legte ihn so aus, das er auch als Coprozessor genutzt werden konnte. Er kannte dieselben Datentypen wie Intels 386 und 486 Prozessor und hatte eine vergleichbare Architektur beim Übersetzen des logischen in den physikalischen Adressraum. Um ihn in andere Systeme einzubinden, konnte man sogar die Anordnung der Daten von "Little Endian" (Intel) auf "Big Endian" (Motorola und viele RISC-Plattformen) ändern.
Der i860 hatte nur 87 Anweisungen. Das zeichnet ihn als echten RISC Prozessor aus. Selbst die Cray 1, die ebenfalls als RISC-Computer gilt, hatte 128 Instruktionen, der kurze Zeit später erschienene Intel 486 sogar 289 Anweisungen.
Es gab lediglich vier Adressierungsmodi:
Register + Offset: Um ein Feld in einem eindimensionalen Array zu adressieren
Register + Register: Um ein Feld in einem zweidimensionalen Array zu adressieren
Register: Typischer Zugriff auf einfache Variablen
Offset: Direkter Zugriff auf Adressen, beschränkt auf die ersten und letzten 32 K des logischen Adressraums.
Diese wenigen Adressierungsmodi spiegeln auch den Einsatz als Zahlenverarbeiter wieder. Es gibt keine Adressoperationen die nativ Zeiger unterstützen, aber Felder werden unterstützt. Sie sind das Basiselement aller physikalischen Simulationen und ohne die Eigenschaft von Feldern, dass vorhersehbar ist, wo das nächste Element ist, wäre eine Beschleunigung des Ablaufs sowohl bei einer Cray wie auch beim i860 oder anderen "Number-Crunchern" nicht möglich.
Der Datenbus war gemultiplext. Das heißt er wurde als Adressbus (29 Bits + acht Signale für je 8 Bits die beim Datenzugriff geholt wurden) und Datenbus (maximal 64 Bits) genutzt. Die Transferrate zum Speicher betrug maximal 4 Bytes pro Takt, mithin ein Viertel der Datenrate des Datencaches und die Hälfte des Codecaches. Um den Cache optimal zu füllen, benötigte man daher vier RAM Bänke. Da jede RAM-Bank 64 Bits übergeben musste benötigte man selbst bei 4 Bit Organisation (z. B. 256 K × 4) 64 Bausteine. Ein RAM Ausbau unter 8 MByte würde daher das System verlangsamen.
Daher gab es zwei Zusatzbausteine, die einen externen Cache unterstützten. Ein solcher war auch bei 386-er und 486 Rechner Standard und Cache-RAMS mit der benötigten Zugriffszeit waren verfügbar.
Parameter |
Wert |
---|---|
Produktionszeitraum: |
1989 - Mitte der Neunziger |
Taktfrequenz: |
25 bis 33 MHz (I860XR), 1989 |
Technologie: |
1,0 Mikrometer (I860XR), |
Transistoren: |
1 Million (i860XR) |
Adressraum: |
4 Gigabyte |
Technologie: |
64 Bit Prozessor mit SIMD/VLIW Erweiterungen |
Cache: |
4 KB Daten + 8 KB Code (I860XR), |
Aufbau: |
1 Core Unit für Ganzzahlen + Allgemeine Befehle |
Register: |
32 x 32 Bit Ganzzahl |
Bus: |
Intern 64 und 128 Bit zwischen Instructioncache und Datencache zur Core Unit/FP Unit |
Ich komme zur Eingangsfrage zurück. Erreichte der i860 tatsächlich die versprochene Performance? Nun eine Cray 1 konnte er nicht einholen, da er zwar in der Spitzenperformance pro Takt genauso viele Ergebnisse lieferte, aber eine Cray 1 eben mit 80 MHz getaktet war und der I860 maximal 50 MHz erreichte.
Um die Geschwindigkeit eines Systems zu erhöhen, gibt es zwei Wege. Der eine ist die Architektur allgemein zu verbessern, dann wird jedes Programm automatisch schneller. Dazu gehört die Einführung einer Pipeline oder die Einführung von Caches. Das zweite sind Spezialerweiterungen, die jedoch nur genutzt werden können, wenn das Programm den richtigen Code hat. Dazu gehören sowohl die Vektorregister der Cray wie der Pipelined-Mode der FPU beim i860.
Bei der Cray gelang es den Programmierern des Fortran-Compilers als Standard-Compiler für die Cray sehr gut. Die Spitzenperformance von 2 Flops pro Takt erreichten echte Anwendungen (meist physikalische Simulationen von Wetter, Crash, Aerodynamik oder Atombomben) selten, aber im Mittel konnte man 1 FLOP pro Takt erwarten.
Das war beim I860 nicht so. Auch hier gab es spezielle Opcodes für den Pipelined Mode, für den Dual-Mode (gleichzeitiger Betrieb von FP Adder und FP Multilplier) benötigte man sogar eigene Anweisungen, während es bei der Cray ausreichte, die Instruktionen in der richtigen Reihenfolge zu platzieren. Lediglich handoptimierter Assemblercode erreichte 1 FLOP/Takt niemals aber die theoretischen 2 FLOP. Gängige Programme von Hochsprachen-Compilern dagegen maximal ¼ Flop/Takt.
Als Enghals entpuppe sich der Speicher. Normaler DRAM Speicher war schon damals zu langsam um die benötigten Datenmengen von bis zu 800 Mbyte/s zu liefern. Die Spitzenperformance erhielt man nur, wenn die Daten im Cache waren. In realen Anwendungen lief der interne Cache sehr schnell leer und dann musste gewartet werden bis er wieder vom Speicher gefüllt wurde. Daher vergrößerte man bei der zweiten Generation auch die Caches auf das doppelte. Standard RAM hatte 1989 eine Zugriffszeit von 80 ns. Der i860 benötigte bei der kleinsten Taktfrequenz ohne Cachezugriff mindestens RAM mit 40 ns Zugriffszeit, bei 50 MHz sogar mit nur 20 ns. Das schafften nur externe Level-2 Caches doch selbst die scheinen in praktischen Programmen schnell leergelaufen zu sein. Demgegenüber hatte der 1989 neu erschienene NEC SX-3 Supercomputer RAM mit 1,6 ns Zugriffszeit - allerdings hatten die nur 40 Kbit Kapazität, während im PC Bereich der Standardbaustein 1 MBit aufnahm. Auch die Cray setzte auf RAM das die benötigte Zugriffszeit hatte. Als dies bei den nachfolgenden Generationen immer schwerer wurde so schnelles RAM zu bekommen, setzte man auf mehrere RAM-Bänke, die nacheinander angesprochen wurden.
Trotzdem war selbst diese Performance des i860 herausragend im PC Bereich. Das grundlegende Problem war eher, dass er zu nichts kompatibel war. Die Zeit wo man eine neue Architektur im PC-Bereich einführen konnte und sie sich aufgrund ihrer besseren Technologie breit durchsetzte, war vorbei. Seit Jahren dominierte die x86 Linie die Verkäufe. Ein kleinerer Markt wurde von der Mc 68000 Linie bedient die in den Apple Macintoshs, Atari ST oder Commodore Amigas steckte. So scheiterte auch der Versuch die ARM Plattform mit einem eigenen Rechner, dem Archimedes zu etablieren. ARM schaffte die Wende den Prozessor in Geräten "embedded Device" unterzubringen. Die anderen neu eingeführten RISC Prozessoren steckten aber vornehmlich in Workstations der Hersteller also den Sun Workstations (SPRAC) oder MIPS Workstations. Deren Benutzerkreis setzte nicht Standardsoftware ein, sondern entwickelte selbst und der Hersteller musste nur das Standard-Betriebssystem UNIX für seine Plattform adaptieren. Intel stellte als einzige Software einen Fortran und C-Compiler mit Vektorisierer und einen Assembler zur Verfügung. Beide liefen nicht nativ auf dem i860, sondern unter Unix oder OS/2 auf einem x86 Rechner. Das heißt, eine Firma die den Prozessor einsetzen wollte, musste erst mal sämtliche Software inklusive Betriebssystem selbst entwickeln. Selbst für Programmierer, die ihn nur als Zusatzchip nutzen wollten war dies eine karge Softwareumgebung.
Der i860 war ausgelegt mit anderen Prozessoren zusammenzuarbeiten und es gab so einige Erweiterungskarten für 486-Rechner. Einige Hersteller sahen sogar einen Sockel für den Chip auf dem Mainboards vor. In dieser Funktion war er im Prinzip ein mathematischer Coprozessor. Eine zweite Anwendung fand er auf High-End Graphickarten wo er die Berechnungen durchführte. Für den normalen Anwender setzte auch der Preis eine Einstiegshürde. Eine Zusatzkarte mit diesem Prozessor kostet 9.999 DM, für das Geld bekam man schon einen kompletten 80386 Rechner inklusive Monitor und Festplatte.
Andy Grove, damals CEO von Intel umschrieb das Problem so:
"We now had two very powerful chips that we were introducing at just about the same time: the 486, largely based on CISC technology and compatible with all the PC software, and the i860, based on RISC technology, which was very fast but compatible with nothing. We didn't know what to do. So we introduced both, figuring we'd let the marketplace decide. ... our equivocation caused our customers to wonder what Intel really stood for, the 486 or i860?"
Intel stellte die Produktion des i860 Mitte der Neunziger Jahre ein. Die Technologie des Graphic Processors wurde aber beibehalten. Beim Pentium Prozessor wurde MMX (Multimedia Extensions) eingeführt, bei denen die normalen Fließkommaregister zweckentfremdend wurden, um mehrere 8 oder 16 Bit Ganzzahlen parallel zu berechnen.
Diese Technologie wurde weiterentwickelt. SSE (Streaming Extension) unterstützte ab dem Pentium II auch Fließkommawerte. Ab der Ivy Bridge Architektur löste AVX (Adavanced Vector Extensions) SSE ab. Bei AVX sind die Fließkommaregister nun größer als für Fließkommazahlen überhaupt benötigt. 2022 beherrschen die meisten Intel Prozessoren AVX 256 (256 Bit breite Register) und die Topmodelle der letzten Generationen auch AVX 512 (512 Bit breite Register).
Jedes Register kann mehrere 32 Bit oder 64 Bit lange Fließkommazahlen aufnehmen, die dann in einem Rutsch verarbeitet werden. Bei AVX 256 also vier 64 Bit Zahlen oder acht 32 Bit Zahlen gleichzeitig. Zusätzlich erlaubt ein Spezialbefehl Fused-Add-Multiply wie bei der Cray / i860 die gleichzeitige Addition und Multiplikation in einem Takt.
Das Grundproblem ist geblieben. In einem einfachen Test, eigentlich nur einer Codezeile, der einer Matrizenmultiplikation kommt man mit verschiedenen Compilern auf unterschiedliche Ergebnisse:
#define DIM 1024
typedef double mat[DIM][DIM];
mat a,b,c;
int _tmain(int argc, _TCHAR* argv[])
{
for (int k=0; k < DIM; k++)
for (int j=0; j < DIM; j++)
for (int i=0; i < DIM; i++)
{
c[i][j]+= a[i][k] * b[k][j];
}
}
Die eigentliche Berechnung steht in der Zeile:
c[i][j]+= a[i][k] * b[k][j];
Das ist eine gekoppelte Addition/Multiplikation, der Idealfall für die Abarbeitung von AVX aber auch anderen Vektorarchitekturen. Ein i7-4750HQ Prozessor mit 4 Kernen, Hyperthreading (8 Threads) und 3,2 GHz Normal. und 3,7 GHz Turbo-Takt schafft dann folgende Leistungen:
Ein Kern aktiv: 3 bis 3,7 GFlops
Alle logischen Kerne (8 Stück) aktiv: 12,7 GFlops
AVX durch den Compiler genutzt, alle Kerne aktiv: 37 GFLOPS
Bibliotheksfunktion genutzt die AVX noch besser nutzt: 140 GFlops
Das bedeutet: es hängt davon ab ob der Compiler die Erweiterung AVX und mehrere Kerne nutzt oder nicht. Die höchste Leistung erreichte man nur mit einem C++ Compiler des Prozessorherstellers Intel. Der Microsoft Compiler schaffte maximal 28,9 GFlops. Da man für eigene Probleme aber nur bedingt auf Bibliotheksfunktionen zurückgreifen kann, ist die zu erwartende Rechnerperformance so deutlich geringer. Daneben kann es sein, dass der Compiler das Problem nicht auf mehrere Kerne verteilen kann, dann sinkt die Performance auf die eines Kerns, also ein 35-stel des Spitzenwerts.
Dieses Problem haben auch Supercomputer. Bei ihnen wird die Geschwindigkeit mit dem Linpack Benchmark gemessen, der im Kern wie der Codeteil oben, eine Matrizenmultiplikation umfasst. In diesem Benchmark erreicht der beim Schreiben des Artikels im Februar 2022 aktuelle Spitzenreiter der Top 500 Liste, der Fugato Supercomputer eine Peakleistung von 415,53 PFLOPS mit einer Effizienz von 80,9% (im Vergleich zur theoretischen Peak Performance) bei 152.064 Nodes. Beim HPCG - High Performance Conjugate Gradient Benchmark, das näher an der Performance bei realen technisch-wissenschaftlichen Anwendungen liegt, schaffte er bei 138.240 Nodes ein Bestwert von 13,366 Pflops. Pro Node sinkt die Leistung also auf 3,5 Prozent des Peakwerts.
https://www.cpu-world.com/CPUs/80860/index.html
http://www.bitsavers.org/components/intel/i860/240874-001_i860XP_Microprocessor_Data_Book_May91.pdf
https://www.ardent-tool.com/CPU/i860_Hardware_Design_Guide_Feb89.pdf
http://electro.fisica.unlp.edu.ar/arq/downloads/Papers/RISC/IEEE_Micro_1989_-_Intel_i860.pdf
https://epaper.heise.de/download/archiv/0cc928cf1de8/ct.14.12.176-179.pdf
Artikel erstellt: 16.2.2022.
Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.
Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.
Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.
Mehr über das Buch auf dieser eigenen Seite.
Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.
Sitemap | Kontakt | Impressum / Datenschutz | Neues | Hier werben / advertisment here | Buchshop | Bücher vom Autor |