Landwirt gesucht

SpaceX sucht einen Getreide-Farmer der Traktor fahren und reparieren kann, ein Gespür fürs Wetter hat, Lebensmittel und Sicherheitsstandards kennt, und zudem die Bürokratie am laufen hält. Soll der die Dünger-Mischung der neue Feststoffbooster verbessern, oder wollen Sie den gar auf den Mars schicken?
(mehr …)

WeiterlesenLandwirt gesucht

Dhrystone-MIPS und Transistorcount

Auch heute wieder ein Computerthema auf das ich beim Schreiben gekommen bin, demnach hat nach meinen Recherchen ein Rechner in der Penryn Architektur (Core 2) Geschwindigkeit von bis zu 18.000 MIPS, also Millionen Instruktionen pro Sekunde. Das sind pro Kern (wahrscheinlich auf ein 4-Kernsystem bezogen) bei 3,2 GHz Takt 1,4 Instruktionen pro Sekunde, und auch in der ct‘ hat man bei einer neuen Architektur namens VISC 5,24 DMIPS/Takt, allerdings wahrscheinlich auf zwei Kerne bezogen.

Nun was sind MIPS – es ist die Abkürzung von Millionen Instruktionen pro Sekunde. Das scheint ein einfaches Kriterium zu sein, ist es aber nicht. Zum einen ist es schwer Instruktionen zu zählen. Natürlich kann man ein Benchmark erstellen, denn Assemblerquelltext ansehen und dann vor allem bei Schleifen die Instruktionen zählen, mit den Durchläufen multiplizieren. Doch jenseits künstlicher kleiner Inhalte, bei konkreten größeren Problemen wird das schwer.

Das zweite ist das man ja damit auch Prozessoren und Rechner vergleichen will, und dann wird es schwer weil die Instruktionen verschiedener CPU unterschiedlich mächtig sind. Das sieht man schon bei der x86 Architektur: Eine Instruktion ist eine einfache Register-Register Bewegung von 32 Bit Daten wie „MOV EAX,EBX“ aber auch die kombinierte Addition und Multiplikation von acht Einfach genauen Fließkommazahlen (vfmaddps %ymm0, %ymm1, %ymm2, %ymm3).

(mehr …)

WeiterlesenDhrystone-MIPS und Transistorcount

Der Compiler ist schuld – oder auch nicht

Ein Compiler hat die Aufgabe eine höhere Programmiersprache in Maschinensprache zu übersetzen. Bei Großrechnern haben kompilierte Programme schon in den Sechzigern die Maschinensprache sukzessive verdrängt. Im PC Bereich war wegen der anfangs langsamen Prozessoren und dem geringen Speicher Assembler noch in den ersten Jahren wichtig, aber heute sicher nicht mehr.

Machen wir einen geschichtlichen Rückblick. Früher hat man auch evaluiert, wie effizient Compiler sind. Die Ergebnisse sind natürlich stark vom Quelltext abhängig. Die NASA hat für die Flugsoftware der Shuttle evaluiert wie schnell HAL als höhere Programmiersprache verglichen mit Assembler war. Und das Ergebnis war damals: 10-20% langsamer. Das Betriebssystem, das zeitkritisch war, wurde daraufhin in Assembler geschrieben, die „Anwendungen“ dann in HAL. Ein ähnliches Ergebnis gab es bei Tests der ersten Versionen von Turbo Pascal. Das ist erfreulich, denn das Programmieren ist doch erheblich leichter in einer Hochsprache. (mehr …)

WeiterlesenDer Compiler ist schuld – oder auch nicht

Funktionelle Einheiten, Vektorinstruktionen und Mehrkernprozessoren

Da wir alle drei Konzepte heute in den Intelprozessoren und auch einigen AMD-Typen finden, mal eine historische Betrachtung was die Unterschiede sind und was wo nützt. Das älteste sind mehrere funktionelle Einheiten. Dazu hole ich erst mal aus und erkläre wie eine CPU allgemein aufgebaut ist. Man kann sie selbst bei einfachen Exemplaren, also z.B. einem 8-Bit Mikroprozessor in mehrere Untereinheiten zerlegen die jeweils eine Aufgabe haben. Da ist zum einen der Befehlsdekoder. Er stellt fest welcher Befehl hinter dem Bitmuster steckt, das gerade geladen wird und welche Register er nutzt. Die Daten selbst bekommt er von einer Einheit die mit dem Speicher kommuniziert, je nach Architektur Load/Store Einheit, Bus-Interface etc. genannt. Dann gibt es noch mindestens eine Ausführungseinheit welche die Befehle auch durchführt, bei einfachen Prozessoren meistens als Arithmetisch-logische Einheit (ALU) bezeichnet. Das ist nur die Grundmenge. Es können durchaus mehrere dieser Einheiten sein.

Schon bald kam man drauf diese Einheiten zumindest zeitweise parallel arbeiten zu lassen. Ein Befehl wird z.B. erst von der Load/Store Einheit aus dem Speicher geholt, durchläuft dann den Befehlsdekoder und dann die Ausführungseinheit. Schon bei der 8086 CPU war die Bus-Interface Unit schon fähig während Decoder und ALU arbeiteten die nächsten Bytes vorrausschauend aus dem Speicher zu laden, das nennt man übrigens Prefetch. Der rapide Geschwindigkeitseinbruch der 8088 CPU kam dadurch zustande, dass neben den Befehlen auch noch Daten von dieser Einheit geholt und geschrieben wurden und durch die halbierte Busbreite kam sie kaum noch dazu den Prefetch durchzuführen, da jeder Transfer nun doppelt so lange dauerte. Auch bei der IBM 7030 Stretch gab es schon Parallelität von Laden/Speichern und ausführen/Dekodieren. (mehr …)

WeiterlesenFunktionelle Einheiten, Vektorinstruktionen und Mehrkernprozessoren

Das Ende eines Grundsatzes

Auch so könnte man ein Fazit aus den Benchmarks ziehen, welche die ct in ihren aktuellen Heft veröffentlicht. Sie hat Prozessoren von AMD und Intel unterschiedliche Benchmarks laufen lassen und auch die Prozessoren waren bunt gemischt – vom 35 Euro Exemplar bis zum neuen 950 Euro iCore i7 Haswell-EP Flagschiff.

Ich hatte jahrelang als Grundsatz beim Rechnerkauf bei allem auf die Mitte zu achten. Also bei Arbeitsspeicher, Prozessor, Festplattengröße. Damit bin ich immer gut gefahren. Man kann das auch gut begründen. Bei Festplatten ist es so, dass wenn man mehr Geld ausgibt, die Kapazität zuerst überproportional ansteigt, um dann stark abzuflachen. Bei Arbeitsspeicher bedeuten zu wenig, dass der Rechne rstark ausgebremst wird, weil viel auf die Festplatte ausgelagert ist, ist er zu groß wird er eventuell gar niemals vollständig genutzt. Bei Prozessoren gab es lange Zeit auch die Beziehung dass die Leistung jenseits der billigsten Exemplare zuerst stark anstieg und man bei den teuren Exemplaren extrem viel drauf zahlt für wenig Mehrleistung.

Wenn man das richtige Benchmark nimmt, findet man das auch noch in der ct bestätigt, so erreicht ein Celeron J1900 (35 Euro) 5% der Leistung eines ICore i7 5960X (950 Euro) – zumindest im Linpack Benchmark. Man kann aber auch mal sehen, wie schnell der Prozessor bei Benchmarks mit real existierenden Anwendungsprogrammen ist so der Office PC Mark 8 oder Sysmark 2014. Da kommt er Celeron schon auf 50-60% der Leistung des genannten iCore Prozessors. Der in etwa gleich teure Celeron G1840 erreicht sogar 80%. Wie diese enorme Diskrepanz? (mehr …)

WeiterlesenDas Ende eines Grundsatzes