Der letzte Teil des Artikels befasst sich mit dem Vergleich der Leistung eines neuen russischen Computers mit ausländischen Konkurrenten und seinen eigenen Vorgängern.
Achtung: viele Briefe und Bilder!Wir erinnern uns an den Inhalt der vorherigen Teile:- Hardware-Überprüfung :
- Akquisitionsprozess;
- Hardware
- Software-Überprüfung :
- Betriebssystemstart;
- reguläre Software;
- Übersicht über Entwicklungswerkzeuge :
- Architekturmerkmale;
- Maschinensprache;
- Entwicklungswerkzeuge;
- Benchmarking-Leistung:
Viel Spaß beim Lesen!Haftungsausschluss
Der Autor täuschte sich lange Zeit zutiefst und glaubte, dass dieser Computer von der Firma für seine eigenen Bedürfnisse gekauft wurde - zusätzlich zu der ausgenutzten Technologie einer früheren Generation. Und erst zum Zeitpunkt des Eingangs wurde klar, dass das neue Produkt als Teil des Komplexes für die weitere Lieferung vorgesehen ist. Anstelle des geplanten anfänglich nachdenklichen Lesens der Dokumentation, der praktischen Kenntnis aller Feinheiten, der sorgfältigen Auswahl der Testwerkzeuge und anderer meditativer Aktivitäten mussten wir daher schnell, wenn nicht chaotisch handeln. Der Grad der Unzulänglichkeit hat zusätzlich dank des Notfalls vor und nach Neujahr zugenommen, an dessen praktikabler Beseitigung der Autor parallel teilgenommen hat.« . . , ». (nutanix)
Wir haben uns nicht vorgenommen, ein „wirklich korrektes“ Ergebnis zu erzielen, das die einzigartigen Vor- oder Nachteile einer bestimmten Plattform genau aufzeigt. Ich wollte nur eine gemeinsame Vorstellung von der Rechenleistung des neuen Elbrus vor dem Hintergrund zuvor bekannter Beispiele für Haushalts- und westliche Elektronik aus der Sicht eines normalen Benutzers bekommen, der vorgefertigte Programme in zusammengesetzter Form verwendet oder sie aus Quellcodes kompiliert, ohne esoterisches Wissen über Optimierung und Portierung zu verwenden. Daher wird der Artikel keine Empfindungen wie "Elbrus hat Xeon beim Verschlüsseln nach dem GOST-Algorithmus zerrissen" oder "Elbrus im x86-Emulationsmodus funktioniert noch schneller als das Ausführen von nativem Code" (der hier und da im Internet gelesen werden kann und aus irgendeinem Grund immer ohne Offenlegung) haben Details). Aus Gründen der Wahrheit und Intrige ist es jedoch erwähnenswertdass in einer Reihe von Tests der Protagonist dieser Überprüfung tatsächlich um ein Vielfaches höhere Ergebnisse zeigte als ein ähnlicher Computer, der auf Core i7 basiert.Testteilnehmer
Da die absoluten Werte der in den Benchmarks erhaltenen Ergebnisse normalerweise sehr abstrakte Werte sind, selbst wenn die Testalgorithmen auf dem Programmcode realer Anwendungen basieren, wurde beschlossen, eine Reihe identischer Messungen auf einer Reihe von Computerplattformen durchzuführen, die so unterschiedlich wie möglich sind und gleichzeitig fast die gesamte Fläche abdecken eine Reihe relevanter Technologien für einen ähnlichen Zweck.Intel Atom-basierter Computer mit x86-64-Architektur
Vielleicht wäre der ideale Rivale für Elbrus ein moderner Intel Celeron oder Atom mit vier Kernen und einer niedrigen Frequenz oder ein Analogon unter der Marke AMD. Von den Behältern war jedoch nur ein Atom D2500 mit zwei Kernen auf einem Intel D2500CC-Motherboard im Mini-ITX-Format gelötet. Die Konfiguration dieses kompakten und offensichtlich nicht zu munteren Computers erfordert wahrscheinlich keine zusätzlichen Erklärungen. Sie hatte nur eine atypische Komponente - eine 3,5-Zoll-Festplatte (obwohl aus der ersten Serie), aber da die E / A-Leistung nicht im Mittelpunkt der Studie stand, kann diese Tatsache vernachlässigt werden. Um maximale programmatische Ähnlichkeit zu gewährleisten, wurde das Debian 7.9.0-Distributionskit für die x86‑64-Architektur mit dem Linux-Kernel 3.2.0 als Betriebssystem ausgewählt (insbesonderedass das Installieren und Aktualisieren älterer Versionen von Debian keine Suche für schwache Nerven ist).Der Computer mit x86-64-Architektur auf Basis von Intel Core i7 Der
zweite natürliche Teilnehmer war ein Computer, der sich durch Funktionen und Geschwindigkeit auszeichnet - der Dell OptiPlex 990 Desktop-Miniturm mit einem Core i7-2600-Prozessor und einem Original-Motherboard auf Basis des Q67-Chipsatzes. Das System arbeitete im täglichen Modus - mit deaktivierter Turbo Boost-Funktion, aber aktiviertem Hyper-Threading, wobei openSUSE 13.2 für die x86‑64-Architektur mit dem Linux-Kernel 3.16.7 ausgeführt wurde. Elbrus-90mikro Computer basierend auf dem MTsST R500




Es wäre jedoch falsch, nur Vergleiche mit dem Mainstream anzustellen, da der neue Elbrus-4C in erster Linie die alten Vertreter der Elbrus-Produktlinie ersetzt, zu der nicht nur Computer mit E2K-Architektur, sondern auch SPARC gehören. Leider verfügt unser Unternehmen nicht über die moderne Architekturausrüstung SPARC V9 wie den MTsST R1000, aber "wir haben das Glück", mit der gesamten R500-Brut zu spielen - aus der SPARC V8-Generation, die immer noch 32-Bit ist. Der erste Vertreter der alten Garde war der Elbrus-90mikro-Computer im Format eines gewöhnlichen Miniturms mit zwei gelöteten R500-Prozessoren, einer diskreten Grafikkarte seines eigenen Designs, einer gewöhnlichen Festplatte und einem optischen Laufwerk. Das Betriebssystem dieses Computers ist MSVS 3.0 für die SPARC-Architektur mit dem Linux-Kernel 2.4.25, dem GCC 3.3.6-Compiler und der GNU LibC 2.2.5-Bibliothek.Ein weiterer RAR-basierter SPARC V8-Architekturcomputer (Beispielansicht, Foto von der ICST-Site)
Ein anderer Computer ist ebenfalls mit einem Paar R500-Prozessoren ausgestattet. Er ist jedoch im modularen Design von Euromechanics 6U hergestellt, verfügt nur über 512 MB RAM und eine Flash-Karte auf Industrieebene als Hauptlaufwerk (das Meltron P7-Modell wird stolz als „SSD“ bezeichnet, aber die tatsächliche Leistung in diesem Bereich Der Computer befindet sich näher an den alten, langsamen Flash-Laufwerken. Der grundlegende Unterschied zum vorherigen Teilnehmer besteht darin, dass hier das Elbrus-Betriebssystem (OS 311-03) vom Anfang 2011 mit dem Linux 2.6.16-Kernel, dem LCC 1.16.12-Compiler, installiert ist (Kompatibilität mit GCC 3.4.6 wird deklariert). und die GNU LibC 2.16.0-Bibliothek. Wie später zu sehen sein wird, führen diese programmatischen Unterschiede zu MSWS manchmal zu einem signifikanten Geschwindigkeitsunterschied, wobei sich die Skalen in die eine oder andere Richtung neigen. Daher sind beide Ergebnisreihen unten aufgeführt.markiert jeweils "R500 / E" für einen Computer mit einem Elbrus-System und "R500 / M" für einen Computer mit einem MSVS-System.Coremark
Wie bereits kurz erwähnt, enthält die Software eine ziemlich umfangreiche Sammlung von Testdienstprogrammen, um die korrekte Funktion der Geräte- und Systembibliotheken zu überprüfen und die Leistung zu messen. Einige dieser Dienstprogramme werden von der Firma MTsST entwickelt, andere sind bekannte Programme von Drittanbietern. Unter den letzteren gibt es auch Versionen, die speziell für Elbrus angepasst wurden: CoreMark erfordert beispielsweise, dass jede Plattform ihre eigene Schnittstelle implementiert, wobei die Funktionen des Compilers und der Bibliotheken, Systemaufrufe und Datenstrukturen, Multithreading- und Zeitmesswerkzeuge berücksichtigt werden. Diese Portierung bietet jedoch keine versteckten Vorteile, zumal die Ergebnisse des Hauptlaufs dann mit dem Profiler überprüft werden.Der CoreMark-Test wurde vom Konsortium zur Messung eingebetteter Mikroprozessoren (EEMBC) erstellt und besteht aus mehreren synthetischen Aufgaben, einschließlich der Verarbeitung von Matrizen und verknüpften Listen, dem Umschalten des Zustands einer Zustandsmaschine und der Berechnung einer Prüfsumme. Aus dem Grund, dass eine Registrierung erforderlich ist, um die Quellcodes herunterzuladen und die Ergebnisse zu veröffentlichen, hat dieser Test offenbar nicht an Popularität gewonnen: Derzeit befinden sich 406 Einträge in der Datenbank .
Modus | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
ein Kern | 15'218 | 3'595 | 2'260 | 602 | 434 |
alle Kerne | 88'570 | 7'108 | 8'850 | 1'214 | 850 |
Das Ergebnis des Elbrus-4C-Prozessors im Single-Threaded-Modus ist etwas höher als das des alten AMD Athlon XP-M bei gleicher Taktrate. Wenn alle vier Kerne verwendet werden, liegt es nahe am Dual-Core-Athlon 64 X2 QL-65, Intel Atom 330, D525 , D2500, Core 2 Duo E4300, dessen Frequenz mindestens doppelt so hoch ist.Ein seltsames Verhalten wurde vom R500 mit dem Elbrus-Betriebssystem demonstriert: Wenn zwei Threads oder zwei Prozesse verwendet wurden, teilten sich beide einen Kern gleichermaßen, und nur der dritte und die nachfolgenden Threads oder Prozesse wurden ebenfalls auf den zweiten Kern verteilt, und die Sättigung trat nur bei einem Grad an Parallelität auf, der gleich war 8. Daher zeigt die gepunktete Linie auch zusätzliche Ergebnisse, wobei die Anzahl der Threads die Anzahl der Kerne eines Computers überschreitet: Wie Sie sehen können, haben alle anderen Testteilnehmer diese gestrichelten Linien gespeichert vayutsya in einer horizontalen Linie - die Art und Weise sollte es sein, wenn jeder Thread alle verfügbaren Ressourcen verbraucht. Die Gründe für die Anomalie konnten nicht herausgefunden werden: Möglicherweise sind dies die Funktionen der Taskplanereinstellungen im Elbrus-System auf diesem Computer.7 - Reißverschluss
Die Idee, den eingebauten Archivierungstest in das Testprogramm aufzunehmen, reifte nach dem Lesen eines Berichts über CNews im Jahr 2014, in dem auch die Leistung des Core i7-2600 (ohne Hyper-Threading, aber anscheinend mit Turbo Boost) und Elbrus-4C verglichen wurde, wenn auch mit einer Häufigkeit 700 MHz sowie Elbrus-2C + mit nur zwei Kernen und einer Frequenz von 500 MHz, aber es gibt vier weitere Signalverarbeitungskerne ElCore9 DSP von Elvis (sie waren jedoch nicht an diesen Tests beteiligt). Nach den dort angegebenen Werten zu urteilen, startete der Autor „ 7z b"Und das Ergebnis durch die Anzahl der Kerne geteilt. Wir veröffentlichen die Ergebnisse in ihrer ursprünglichen Form, und im Diagramm wird als Maß für die Geschwindigkeit die geschätzte Anzahl von Ganzzahloperationen für alle Kerne pro Zeiteinheit (MIPS) ausgewählt. Die Tabelle zeigt die absolute Datenverarbeitungsgeschwindigkeit und die relative Bewertung eines Kerns unter Berücksichtigung der tatsächlichen Prozessorlast in andere Betriebsart.
Anzeige | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
Komprimierung, MB / s | 17'200 | 1'300 | 2'144 | 228 | 247 |
Auspacken, MB / s | 211'282 | 24'738 | 38'894 | 3'227 | 2'430 |
Bewertung, MIPS | 18'781 | 1'823 | 2'920 | 269 | 241 |
Kernel-Bewertung | 2'662 | 1'000 | 843 | 263 | 243 |
Hier können wir beobachten, wie der neue Elbrus selbst im Single-Threaded-Modus fast nicht hinter Atom zurückbleibt und die Gesamtleistung aller Kerne die Leistung bereits um das Eineinhalbfache übertrifft.Beide R500-basierten Computer zeigten diesmal eine Zurückhaltung bei der Skalierung auf zwei Threads. Darüber hinaus konnte der 7-Zip im MSWS-System aus irgendeinem Grund den Grad der Kernel-Last während des Auspackens nicht bestimmen - es war notwendig, ihn analog zur Komprimierung auf 99% zu setzen und die Bewertung manuell zu berechnen.Öffnet
Ähnlich wie beim vorherigen Test kam die Entscheidung, OpenSSL zu betreiben, natürlich nach einer wiederholten Begegnung mit Thesen wie "Inländische Prozessoren sind in der Kryptographie sehr effektiv, insbesondere bei GOST-Algorithmen" (welche Implementierung der Algorithmen leider nicht angegeben ist). Die Suche nach Dateien, deren Name das Wort „ gost “ enthält, hat zu einem eher bescheidenen Ergebnis geführt:/usr/include/nettle/gosthash94.h
/usr/include/php/ext/hash/php_hash_gost.h
Das gängigste OpenSSL 0.9.8zc, das mit dem System geliefert wurde, konnte sich ebenfalls mit nichts rühmen. Daher wurden für die Tests populärere Algorithmen für Hashing, symmetrische Verschlüsselung und Berechnung der digitalen Signatur ausgewählt.





Algorithmus | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
MD5 | 615/3546 | 320/635 | 125/500 | 19.10 | 30/59 |
SHA-1 | 534/2181 | 192/381 | 165/658 | 6.3 / 13 | 17/34 |
SHA-512 | 301/1227 | 119/237 | 89/355 | 0,7 / 1,4 | - - |
Hier und unten sind die Maximalwerte angegeben, ausgedrückt in "dezimalen" Megabyte pro Sekunde. Der Bruch gibt die Ergebnisse an, wenn ein Kern und alle Kerne verwendet werden. Ein Bindestrich bedeutet, dass dieser Algorithmus in der regulären Version von OpenSSL nicht unterstützt wird: Für das alte Elbrus-System beträgt er 0,9,8b, für MSVS 0,9,7b (ja, wir sind nicht anfällig für Heartbleed!).



Algorithmus | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
RC4 | 797/4060 | 202/401 | 61/246 | 5.8 / 12 | 24.12 |
AES-CBC | 81/351 | 43/79 | 32/128 | 2.1 / 4.1 | 5.1 / 10 |
AES-IGE | 78/341 | 20/40 | 43/170 | - - | - - |
Während die symmetrische Kryptographie normalerweise dieselbe Zeit benötigt, um Nachrichten mit gleichem Volumen zu verschlüsseln und zu entschlüsseln (mit der möglichen Ausnahme der Kosten für die Erzeugung des Anfangszustands), verarbeiten asymmetrische Algorithmen Daten mit fester Größe, erfordern jedoch einen anderen Satz oder eine andere Anzahl von Schritten zum Erzeugen und Überprüfen digitale Signatur. Daher werden weitere Ergebnisse separat dargestellt und in der Anzahl der Operationen pro Sekunde ausgedrückt.Algorithmus | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
RSA-4096, Unterschrift | 105/477 | 22.11 | 6.6 / 27 | 0,8 / 1,7 | 0,8 / 1,5 |
RSA-4096-Test | 6496 / 30'176 | 700/1400 | 453/1790 | 56/126 | 49/98 |
DSA-2048, Unterschrift | 2396 / 11'200 | 267/534 | 157/634 | 20/40 | 18/37 |
DSA-2048-Überprüfung | 2052/9531 | 220/440 | 136/534 | 17/34 | 15/29 |
ECDSA-p384, Unterschrift | 4896 / 22'480 | 782/1560 | 273/1085 | 55/108 | - - |
ECDSA-p384, Überprüfung | 1135/4994 | 157/312 | 49/198 | 10/21 | - - |
ECDH-p384-Austausch | 1367/6014 | 187/374 | 58/233 | 25.12 | - - |
Die Gesamtleistung von Elbrus-4C in diesen Tests liegt ebenfalls auf dem Niveau des Atom D2500, was entweder einen Vorteil oder eine Verzögerung von Algorithmus zu Algorithmus zeigt. Die Ergebnisse des R500 mit dem Elbrus-Betriebssystem werden für 4 Streams angegeben. In diesem Modus erreichte er das Maximum, verlor zwar noch viel an seinen Bruder unter der Kontrolle von MSVS in Bezug auf Hashing und Verschlüsselung, rehabilitierte sich jedoch leicht mit asymmetrischer Kryptographie.Unixbench
Diese Reihe von synthetischen Tests, die verschiedene Aspekte des Computerbetriebs abdecken, von elementaren arithmetischen Operationen bis hin zu Systemaufrufen und Plattenoperationen, wurde erstmals in den frühen 80er Jahren entwickelt und hat sich nach und nach weiterentwickelt, ohne an Popularität als plattformübergreifendes Tool zu verlieren integrierte Bewertung der Systemleistung im Allgemeinen und einzelner Komponenten im Besonderen.Test | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
Dhrystone 2 | 3240 / 13'735 | 595/1190 | 185/738 | 67/132 | 59/118 |
Weizenstein | 820/5344 | 171/382 | 126/505 | 27/52 | 23/46 |
Execl | 886/5630 | 257/524 | 82/314 | 47/85 | 88/136 |
Datei, 1024/2000 | 3040/2994 | 451/683 | 287/373 | 44/47 | 37/32 |
Datei, 256/500 | 1983/1890 | 307/479 | 185/232 | 34/34 | 30/23 |
File, 4096/8000 | 4273/5664 | 807/1112 | 618/904 | 55/57 | 38/42 |
Rohr | 1747/8922 | 419/851 | 209/824 | 59/115 | 107/181 |
Kontext | 585/4865 | 214/428 | 175/688 | 51/99 | 62/116 |
Gabel | 1260/4537 | 264/570 | 63/222 | 78/85 | 83/120 |
Shell, 1 | 1968/6990 | 458/703 | 210/551 | 45/65 | 123/183 |
Shell, 8 | 5465/7113 | 670/684 | 490/562 | 68/68 | 166/166 |
Syscall | 2978/6584 | 781/1183 | 333/1082 | 79/152 | 133/223 |
insgesamt | 1920/5550 | 403/682 | 203/519 | 52/76 | 66/92 |
Es sollte beachtet werden, dass es im Elbrus 401 - PC - Softwarepaket eine Version von UnixBench 5.1.2 gab, aber aus Gründen der Konsistenz wurde die aktuelle Version 5.1.3 überall verwendet, zumal die Standardversion dieselben Indikatoren zeigte (als Teil des Messfehlers).Pgbench (Postgresql)
Es war schwierig, den Artikel über die Postgresql-Beschleunigung unter IBM Power8 zu umgehen , in dem der Prozess der Optimierung des Programmcodes insbesondere für diese Architektur beschrieben und die Entwicklung des gesamten Projekts positiv bewertet wurde, ohne sich mit dem Wunsch zu infizieren, zu überprüfen, inwieweit die bescheidenere Technik von den fantastisch leistungsstarken Indikatoren abweicht . Eine andere Sache ist, dass die persönlichen zum Testen ausgewählt wurdenComputer behaupten nicht, ein seriöser Datenbankserver zu sein, nicht nur, weil sie viel weniger Prozessorkerne und Ausführungsthreads haben, sondern auch weniger Cache, RAM und "kein" Festplattensystem. Das Volumen der Testbasis (weniger als 0,5 GB) passt jedoch in den Rahmen eines auf einem Personal Computer geeigneten Speichers für personenbezogene Daten und passt darüber hinaus vollständig in den Arbeitsspeicher der meisten ausgewählten Computer. Daher kann dieser Test als umfassendes Maß für die Geschwindigkeit des gesamten Computers angesehen werden, der im Gegensatz zu UnixBench eine realistische, wenn auch einseitige Art der Last aufweist.Das Computer-Betriebssystem "Elbrus 401 - PC" enthält Postgresql 9.2.3, und es wurde beschlossen, diese Version zu einem Bezugspunkt für alle anderen Teilnehmer zu machen, ohne auf aktuellere Versionen zu verzichten. Nach dem Kopieren des Entwickler-Repositorys zum 3. Dezember 2015 haben wir versucht, die aktuelle Version, im Folgenden als „9.6devel“ bezeichnet, unabhängig zusammenzustellen. In der Konfigurationsphase stellte sich jedoch heraus, dass für jede Architektur eine plattformspezifische Implementierung von Spinlocks erforderlich ist (was es ist). und wie es sich von anderen Arten von Schlössern unterscheidet, die von Postgresql verwendet werden, wird in dem oben erwähnten Artikel beschrieben, und für E2K ist es natürlich nicht in der Hauptzeile. Als Fallback können Sie den Modus „ -‐disable-spinlocks “ verwenden .”, Wie die Dokumentation warnt, jedoch auf Kosten eines spürbaren - wenn auch nicht katastrophalen - Produktivitätsrückgangs. Wenn sich herausstellte, dass die selbstorganisierte Version 9.6 langsamer als die Standardversion 9.2.3 war, erwies sich die Version 9.2.3, die dann auch aus öffentlichen Quellen gesammelt wurde, als noch langsamer als 9.6. Und der Neustart der Standardversion 9.2.3 nach dem Ende aller anderen Tests bestätigte, dass der Leistungsabfall nicht allein durch die Funktionen des SSD-Laufwerks erklärt werden kann (obwohl dies im kombinierten Test zum Lesen und Schreiben nicht möglich gewesen wäre). Daher legt sich die Schlussfolgerung nahe, dass die MCST-Programmierer die erforderlichen Änderungen an der regulären Version vorgenommen haben, dh, sie haben eine vollständige Portierung durchgeführt. Daher werden wir diese Version mit dem Suffix „ e2k “ und die selbstorganisierte Version ohne Spinlocks mit dem Suffix „bezeichnen.ds . "Im Gegenteil, auf der SPARC-Plattform traten keine Probleme beim Erstellen von Version 9.2.3 aus öffentlichen Quellen auf, da diese offiziell unterstützt wird. Ein Versuch, den Erfolg mit Version 9.6 zu konsolidieren, schlug jedoch in der Kompilierungsphase fehl, da Speicherbarrieren (ein Mechanismus zur Sicherstellung einer strengen Reihenfolge von Speicheroperationen auf Prozessoren mit außergewöhnlicher Ausführung von Anweisungen) jetzt nur in SPARC V9 unterstützt werden. Der gleiche Fehler trat beim Erstellen von Version 9.4.5 (dem damals stabilen Hauptzweig) auf, obwohl die Dokumentation weiterhin die alte Architektur unterstützt.Die Testmethode war so einfach wie möglich: Das DBMS wurde unmittelbar nach der Initialisierung des Repositorys mit Standardeinstellungen gestartet, dort wurde eine Testdatenbank erstellt, die mit dem Dienstprogramm Pgbench für 32 parallele Flows gefüllt wurde, und anschließend wurde eine Reihe von Pgbench-Starts für jeweils 60 Sekunden mit einer unterschiedlichen Anzahl simulierter Clients durchgeführt. Jedes davon funktionierte in einem eigenen Thread (daher waren die Ergebnisse höher als wenn mehrere Clients denselben Thread gemeinsam nutzten). Die Anzahl der innerhalb jeder Sitzung übertragenen Anforderungen blieb die Standardeinstellung (10 Anforderungen pro Verbindung). Da die Clients auf demselben Computer wie der Server ausgeführt wurden, wurde die für den Verbindungsaufbau aufgewendete Zeit nicht berücksichtigt.Das Hauptlastszenario von Pgbench imitiert die TPC-B-Testsuite, die bereits in den 1990er Jahren vom Data Processing Performance Council entwickelt wurde, und besteht aus verschiedenen Abfragen zum Abrufen und Ändern von Daten. Offensichtlich ist der Engpass in diesem Fall das Festplattensubsystem, das für uns nicht von Bedeutung ist. Aus diesem Grund haben wir auch schreibgeschützte Tests (nur SELECT) durchgeführt. Wie bereits erwähnt, passt die gesamte Datenbank gleichzeitig in den Arbeitsspeicher. Darüber hinaus wurde dieses Szenario von den Autoren der Patches für Power8 und ihren Vorgängern aus dem x86-64-Camp verwendet, um ihre Verbesserungen zu demonstrieren.

Das Skript | i7-2600 | D2500 | E2S-800 | R500 / E. | R500 / M. |
---|
Tpc-b | 307/542 | 248/285 | 991/991 | 16/16 | 87/87 |
AUSWÄHLEN | 82'304 / 83'280 | 4076/4076 | 8732/8732 | 650/650 | 766/766 |
Die Ergebnistabelle enthält die maximal erreichten Indikatoren, ausgedrückt in der Anzahl der verarbeiteten Anforderungen pro Sekunde: Der Bruch gibt die Werte an, die mit Version 9.2.3 und in allen getesteten Versionen im Allgemeinen erhalten wurden. Dieses Maximum entspricht normalerweise der Anzahl der parallel bedienten Clients, die der Anzahl der Prozessorkerne entspricht, wenn nur Daten gelesen werden sollen. Wenn Daten auch auf die Festplatte geschrieben werden, wird das Maximum mit mehr Parallelität erreicht, anscheinend aufgrund der Neuordnung der Befehle durch die Festplatte (oder den Systemcache, wenn der Test dies zulässt).Die Korrelation der Ergebnisse der ersten drei Teilnehmer ist durchaus zu erwarten: Elbrus 401 - PC war aufgrund seiner schnellen SSD im gemischten Modus allen voraus, und dies erinnerte erneut daran, dass der Zentralprozessor nicht der einzige ist, der für die Reaktionsfähigkeit des Computers wichtig ist. Das Bild während der Datenabtastung ist völlig anders, aber man kann nicht übersehen, dass der Elbrus-4C-Prozessor trotz der mehr als doppelten Frequenzvorteile dem Atom D2500 ebenbürtig ist, auch wenn die Anzahl der Threads innerhalb der Anzahl der Kerne des letzteren liegt. Anscheinend spielt der Unterschied in der Cache-Größe in der zweiten Ebene (8 MB gegenüber 1 MB) eine Rolle. Nicht gestern verliert die erfundene Erfolgsformel „Viel Speicher und ein schneller Antrieb“ nicht an Relevanz!Die fragmentarischen Ergebnisse eines auf dem R500 basierenden Computers mit dem Betriebssystem Elbrus bedürfen einer gesonderten Erläuterung. Entweder aufgrund fehlenden Arbeitsspeichers oder aufgrund anderer Umstände zeigte das Pgbench-Dienstprogramm einfach keine Lebenszeichen mehr, nachdem es im 2-Stream-Modus zum Schreiben oder im 3-Stream-Modus zum Lesen ausgeführt wurde. Darüber hinaus verbesserte sich die Situation auch bei einer Abnahme des Volumens der Testbasis (aufgrund einer Abnahme des Skalierungsfaktorparameters; das Ergebnis wird durch eine gepunktete Linie im Diagramm angezeigt) und dementsprechend des Auftretens einer ausreichenden Menge an freiem Speicher nicht. Was jedoch charakteristisch ist, war, dass der Aufrufstapel des "schlafenden" Programms wie folgt aussah:#0 0x00.... in __lll_lock_wait_private () from /lib/libc.so.6
#1 0x00.... in __lll_lock () from /lib/libc.so.6
#2 0x00.... in free () from /lib/libc.so.6
#3 0x00.... in doCustom ()
#4 0x00.... in main ()
Oh, diese Schlösser!Was die bedauerliche Leistung bei den Tests dieses Computers für die Aufzeichnung betrifft, wäre es naiv, von einer Flash-Karte eine hohe Leistung zu erwarten.Wenn man die Ergebnisse insgesamt kommentiert, kann man feststellen, dass ein derart revolutionärer Leistungsunterschied zwischen den getesteten Versionen von Postgresql, der in dem zuvor erwähnten Artikel gezeigt wurde, in unserem Experiment nicht bemerkt werden konnte: Abgesehen von der Version für E2K, die unabhängig in einer nicht optimalen Form zusammengestellt wurde, lagen die Unterschiede innerhalb der Fehlergrenze Messungen, auch bei gemischter Last, wenn die Geschwindigkeit der Festplatte für die ausgewählte Testdauer statistisch schlecht vorhergesagt wurde.Außerdem war geplant, das DBMS „Linter VS“ (nicht zu verwechseln mit „ Linter “) zu testen , das in MSVS enthalten ist, obwohl es nicht Teil der regulären Software-Suite ist , deren Version 707.3.4 auf Postgresql 8.4.3 basiert und deren ursprüngliche Erweiterungen obligatorisch sind Zugangskontrolle. Das optionale Dienstprogramm Pgbench ist jedoch nicht im Lieferumfang dieses Produkts enthalten, und eine selbst zusammengestellte Version aus öffentlichen Quellcodes erwies sich als nicht kompatibel mit dem verwendeten Modell der Rechte und Privilegien.LCC, GCC
Das Erstellen von Postgresql erwies sich als guter Benchmark an sich: Dies ist kein sehr kleines Projekt, sodass Setup und Kompilierung in kürzester Zeit auf dem Bildschirm flackern, aber gleichzeitig nicht zu groß ist, als dass sich der Prozess über einen längeren Zeitraum erstrecken oder aufgrund fehlender Abhängigkeiten oder Plattformen mit einem Fehler enden könnte Inkompatibilitäten. Der einzige Nachteil unter dem Gesichtspunkt umfassender Tests besteht darin, dass Postgresql vollständig in C geschrieben ist - es gibt kein einziges Modul in C ++.Die Gesamtkompilierungszeit von Version 9.2.3 im Multithread-Modus mit verschiedenen Optimierungsstufen wurde gemessen: Die in der Tabelle angegebenen Ergebnisse werden in Stunden, Minuten und Sekunden entsprechend der astronomischen Zeit ausgedrückt, und die Gesamtprozessorzeit des Benutzers in allen Threads wird in Klammern angegeben (die Systemkosten sind relativ gering und sind höchstwahrscheinlich mit Datei-E / A verbunden, was für uns in diesem Zusammenhang nicht sehr interessant ist. Die Zeit zum Konfigurieren der Assembly wurde nicht berücksichtigt: Obwohl sie erheblich und sogar mit der Kompilierungszeit vergleichbar sein kann, wird die Konfiguration in einer bestimmten Phase des Projekts normalerweise nur einmal durchgeführt, während der Compiler häufig aufgerufen wird, wenn Änderungen vorgenommen werden. Denken Sie auch daranBeim Erstellen einer stabilen Version mit Standardeinstellungen werden optionale Dienstprogramme wie Pgbench nicht kompiliert, anstatt die aktuelle Version aus dem Repository zu erstellen. | i7‑2600 | D2500 | E2S-800 | R500/E | R500/M |
---|
-O0 | 0:00:17 (0:01:15) | 0:03:00 (0:05:08) | 0:02:00 (0:06:17) | 0:25:51 (0:42:09) | 0:14:18 (0:23:53) |
-O1 | 0:00:24 (0:02:12) | 0:04:31 (0:07:56) | 0:05:25 (0:15:18) | 1:33:35 (2:02:02) | 0:19:14 (0:33:10) |
-O2 | 0:00:32 (0:03:01) | 0:06:02 (0:10:47) | 0:13:12 (0:34:50) | 1:38:30 (2:46:51) | 0:27:31 (0:46:57) |
-O3 | 0:00:38 (0:03:37) | 0:07:02 (0:12:41) | 0:33:04 (1:22:04) | 2:17:38 (4:05:42) | 0:30:20 (0:51:40) |
Diese Ergebnisse zeigen nur, wie schnell eine bestimmte Version eines bestimmten Projekts mit den Standardeinstellungen kompiliert wird - eine bestimmte Version des Vollzeit-Compilers auf einer bestimmten Plattform. Vertreter der x86‑64-Architektur verwendeten den GCC 4.8.3- bzw. 4.7.2-Compiler, ein Computer mit MSWS verwendete GCC 3.3.6 für die SPARC-Architektur, und Teilnehmer mit dem Elbrus-Betriebssystem hatten LCC 1.16.12 bzw. 1.19.18 Darüber hinaus sind der optimierende LCC-Compiler für die SPARC-Architektur und für die E2K-Architektur zwei völlig unterschiedliche Compiler, die unterschiedlich viel Arbeit leisten und unterschiedlichen Leistungscode erzeugen. Daher ist hier ein direkter Vergleich nicht möglich, und aus den Ergebnissen dieses Tests können keine Rückschlüsse auf die Geschwindigkeit der Ausrüstung gezogen werden. Eine andere Sachedass es gut wäre, die Wirksamkeit von Optimierungen zu untersuchen, aber dafür brauchen wir eine bemerkenswerte Qualifikation, damit sich nicht herausstellt, dass wirWir messen die Inkrementrate und ziehen Schlussfolgerungen auf der Grundlage dieser kosmischen Skala.Java Micro Benchmark
Der Autor hatte eine sehr vage Vorstellung von Java und beschloss, alle Googlergebnisse der Reihe nach auszuprobieren. Als erstes sah er sich dieses Projekt an, das sich als recht kompakt und einfach auszuführen herausstellte. Es implementiert grundlegende Schätzungen der Prozessor- und Festplattenleistung, die auch in den Szenarien „Desktop“ und „Server“ kombiniert werden: Die erste erstellt eine konsistentere Last und die zweite versucht, viele Aufgaben gleichzeitig zu übernehmen.Das Skript | i7-2600 | D2500 | E2S-800 |
---|
CPU, Millionen | 3927 | 196 | 356 |
Festplatte | 2546 | 164 | 126 |
Desktop | 3238 | 181 | 241 |
Server | 7568 | 378 | 405 |
Wenn Sie nicht auf die Bewertung der Festplattenleistung achten, erscheinen die Ergebnisse plausibel - das ungefähre 10: 1-Verhältnis zwischen Core i7 und Elbrus-4C, das in anderen Tests (mit nativen Anwendungen) beobachtet wurde, ist auch hier sichtbar, und es gibt einen größeren Unterschied im Szenario „Server“ ”Könnte durch die Eigenschaften der Last oder die objektiven Eigenschaften der Testplattformen erklärt werden. Das gleiche Verhältnis der Geschwindigkeit von Dateivorgängen, obwohl der Elbrus 401 - PC mit einer schnellen SSD ausgestattet ist und der Rest der Computer über reguläre Einstiegsplatten verfügt, lässt Zweifel an der Angemessenheit des Tests selbst oder der Bewertungsberechnungsformel aufkommen. Wenn Sie sich das detaillierte Protokoll des Disk-Skripts ansehen, können Sie feststellen, dass die Lesegeschwindigkeit der Seagate Barracuda 7200-Festplatte hoch ist.9 beträgt angeblich 325 MB / s in jedem der beiden Streams des Atom D2500, und die Lesegeschwindigkeit von WD Caviar Blue ist im Allgemeinen beängstigend - 1650 MB / s in jedem der acht Streams des Core i7. Solche Anzeigen überschreiten die Geschwindigkeit der SATA-2-Schnittstelle, über die die Festplatten verbunden sind, und können daher nicht einmal die Geschwindigkeit des Zugriffs auf den Festplattenpuffer widerspiegeln - außer möglicherweise auf den Systemcache.Weitere Tests werden zeigen, dass die Bewertung der Prozessorleistung in Java Micro Benchmark anscheinend falsch implementiert ist. Dieser Fall erinnert uns erneut daran, dass das Schreiben der richtigen Benchmarks nicht so einfach ist und es ein Fehler wäre, blind zu glauben, dass der erste Ankömmling ohne Rücksprache mit anderen Quellen wäre.Speckjvm
Die Standardized Performance Assessment Corporation (SPEC), der Entwickler der Benchmark-SPEC-CPU und vieler anderer, scheint keine Einführung zu benötigen, und die Professionalität ihrer Programmierer steht außer Zweifel. Normalerweise kosten ihre Produkte viel Geld, aber für SPECjvm98 und SPECjvm2008 haben sie eine Ausnahme gemacht und sie völlig kostenlos vertrieben - es war eine Sünde, sie nicht zu verwenden.Test | i7-2600 | D2500 | E2S-800 |
---|
Compiler | 533.11 | 34.24 | 4,54 |
komprimieren | 292,94 | 21.48 | 2.74 |
Krypto | 269,87 | 19.14 | 3.10 |
Derby | 427,77 | 24,85 | 5.00 |
mpegaudio | 184,79 | 12.48 | 2.29 |
scimark.large | 45,88 | 5.46 | 1.13 |
scimark.small | 414,42 | 20.43 | 4.02 |
seriell | 207.05 | 13.86 | 1.45 |
Start | 32.31 | 5.19 | 0,69 |
Sonnenfluss | 110,51 | 6.85 | 0,89 |
xml | 621,66 | 36,76 | 5.25 |
insgesamt | 206,50 | 15.03 | 2,30 |
Jetzt beträgt das Verhältnis zwischen Core i7 und Elbrus-4C ungefähr 100: 1 und in allen Tests ausnahmslos einstimmig. Nun, der 4-Kern-Elbrus hier ist hoffnungslos hinter dem 2-Kern-Atom! Angesichts der bisher erfolglosen Erfahrung mit Java-Benchmarking war es schwierig, an dieses Ergebnis zu glauben: Es scheint, dass die Last nur auf den Prozessor und den Speicher geht, und das Bild unterscheidet sich so dramatisch von nativen Programmen.Die Hypothese, dass Core i7 von der Verwendung der neueren Version von Java - 1.7.0 profitiert, während Elbrus nur 1.6.0 zur Verfügung hat - wurde durch Testen derselben Version 1.6.0 auf Atom widerlegt. Die JVM im letzteren Fall war jedoch Version 23.25 gegenüber 20.0 (der Autor weiß nicht, wie wichtig dies ist). Die Annahme wurde auch bestätigt, dass zu viel des zugewiesenen Speichers für Java genauso schlecht wie zu klein ist: Genau gemäß der Dokumentation wurden 512 MB pro Kern zugewiesen, aber das Ergebnis schwankte nur innerhalb der Fehlergrenze im Vergleich zu wann stach doppelt so stark hervor, und wenn viermal.Wir wiederholen, es besteht kein Grund, an den Qualifikationen der Testentwickler zu zweifeln: Zumindest wissen sie, dass „Java so ernst ist, dass es vor dem Start aufgewärmt werden muss“. Diese Vorbereitung dauert 2 Minuten für jeden Test, der in keinem anderen getesteten Java gefunden wurde Benchmark. Es scheint, dass das Aufwärmen keine Auswirkungen hat und die virtuelle Maschine den Pseudocode weiterhin interpretiert, anstatt ihn in Maschinenanweisungen zu übersetzen.Um ehrlich zu sein, trat zunächst immer noch Misstrauen auf, als sich herausstellte, dass der Test nicht mit neueren Java-Versionen wie 1.8.0 kompatibel ist und die Testergebnisdiagramme im JPEG-Format gespeichert sind. Weitere Untersuchungen haben jedoch gezeigt, dass die Java-Leistung anscheinend genau das ist, was sie ist.Aktualisierung ab 5. Februar 2016.Um die Hypothese, dass es auf Elbrus keine binäre Übertragung gibt, endgültig zu bestätigen oder zu widerlegen, haben wir versucht, die Verwendung auf einem Computer mit Core i7 in den Kommentaren zwangsweise zu verbieten, indem wir den zusätzlichen Parameter „ -Djava.compiler = NONE “ an die virtuelle Maschine übergeben . Leider machte dies den SPECjvm-Benchmark selbst unmöglich, da die Compiler-Benchmark-Serie ein wesentlicher Bestandteil davon ist. Der Prozess friert einfach beim ersten (Test-) Lauf ein: Die Belastung des Zentralprozessors sinkt auf Null, und in 12 Stunden passiert nichts, während im normalen Modus 2 Stunden benötigt werden, um den gesamten Test abzuschließen.Scimark
Dieser Test wird als Teil von SPECjvm2008 verwendet, ist jedoch an und für sich bekannt. Auf der Website des Autors wird vorgeschlagen, SciMark 2.0 direkt im Browser als Applet zu starten. Es wird jedoch gewarnt, dass diese Methode mit einer gewissen Leistungsminderung verbunden sein kann. Aus diesem Grund und auch weil Firefox im Elbrus-System kein entsprechendes Plug-In hat, haben wir die Konsolenversion des Tests ausgewählt.Aufgabengröße | i7-2600 | D2500 | E2S-800 |
---|
Standard, insgesamt | 1715,45 / 76,60 | 206.06 | 17.92 |
FFT (1K) | 996,14 / 23,80 | 123,85 | 16.89 |
SOR (100) | 1435,35 / 153,27 | 375,48 | 32,87 |
Monte Carlo | 745,65 / 15,92 | 97.12 | 4.24 |
Sparse matmult (1000, 5000) | 1579,66 / 85,78 | 206,61 | 15.15 |
LU (100) | 3820,45 / 104,22 | 227,25 | 20,44 |
groß, total | 1562.90 / 78.49 | 176,90 | 14.65 |
FFT (1M) | 171,20 / 21,69 | 26,68 | 9.11 |
SOR (1000) | 1314.13 / 151.12 | 365,33 | 28.46 |
Monte Carlo | 745.40 / 16.03 | 95,94 | 4.25 |
Sparse matmult (100k, 1M) | 1329.01 / 90.91 | 180,85 | 13.26 |
LU (1000) | 4254,75 / 112,73 | 215,68 | 18,20 |
Wie Sie sehen können, zeigt sich in diesem Test der grundlegende Unterschied von zwei Größenordnungen. Es sollte jedoch auch berücksichtigt werden, dass dieser Test - unabhängig von der Arbeit in SPECjvm - unabhängig nur im Single-Threaded-Modus durchgeführt wird. Darüber hinaus ist die Dauer des Tests viel weniger, und es ist möglich , mit den JVM - Parameter zu experimentieren: Beginnen Sie mit einem klaren Hinweis auf die Art der Client oder Server , geben Sie die Start- und die maximale Menge an Speicher zugewiesen, - das Ergebnis aller dieser keinen Unterschied gemacht.Aktualisierung ab 5. Februar 2016.Für Core i7 werden nach dem Bruch auch die Ergebnisse angezeigt, die bei ausgeschalteter Sendung erzielt wurden. Es ist leicht zu erkennen, dass sich das Kräfteverhältnis in diesem Fall auf das übliche 4: 1 - 6: 1 ändert. Dies bedeutet, dass der Grund für die geringe Produktivität von Java auf der Elbrus-Plattform darin liegt, dass Bytecode immer von der virtuellen Maschine interpretiert und nicht bei Bedarf in Maschinenanweisungen des Prozessors übersetzt wird.Java Linpack
Tatsächlich wurde dieser spezielle Test zuerst getestet, dank des bekannten Wortes „Linpack“ im Titel. Die gefundene Version war jedoch auf das Jahr 1997 datiert, wusste nicht, wie die Last auf die Prozessorkerne verteilt werden sollte, und hatte fest codierte Parameterwerte, die für diese „prähistorische“ Periode relevant waren, wodurch die Ausführungsdauer in Bruchteilen eines zweiten Maximums berechnet wurde. Daher schien dieses Programm nutzlos und nicht einmal erwähnenswert. Die widersprüchlichen Ergebnisse anderer Tests zwangen uns jedoch, das Urteil zu überdenken und zumindest solche Beweise zu berücksichtigen. Um die statistische Signifikanz zumindest irgendwie zu erhöhen, haben wir einfach die Messwerte von 100 Starts gemittelt (tatsächlich gab es nur beim Core i7 gravierende Schwankungen - es scheint, dass die Granularität der Zeitmessung nicht ausreichte, um so kleine Intervalle eindeutig zu erfassen).Anzeige | i7-2600 | D2500 | E2S-800 |
---|
MFLOPS | 236,33 / 70,44 | 14.69 | 2.25 |
Diese Ergebnisse haben uns schließlich überzeugt, dass Java in der Form, für die es jetzt auf Elbrus verfügbar ist, nur zum Schreiben einer Benutzeroberfläche oder anderer Dinge geeignet ist, die nur minimal mit der Computerleistung verbunden sind: Beispielsweise hat sich die GUI des SPECjvm-Installationsprogramms recht verantwortungsbewusst verhalten.Aktualisierung ab 5. Februar 2016. Für Core i7 wird nach der Fraktion auch das mit einer erzwungenen Interpretation erhaltene Ergebnis angezeigt. Das Verhältnis ist immer noch sehr groß (30: 1), aber vergessen Sie nicht, dass dieser Test aufgrund der leichtfertigen Dauer nicht als genau angesehen werden kann.SunSpider, JetStream, Peacekeeper
Nach dem Benchmarking von Java bestand der nächste logische Schritt darin, die JavaScript-Leistung zu testen, insbesondere da diese Technologie im Leben eines typischen Benutzers weitaus häufiger vorkommt, es sei denn, der Zugriff auf fast alle Websites im Internet wurde vollständig blockiert. Hier haben wir jedoch versagt. Beim Start auf Elbrus ergab der SunSpider-Test unmittelbar nach dem Aufwärmen eine Ergebnistabelle, in der gegenüber jedem Szenario angegeben wurde, dass er abgestürzt war. Der empfohlene Nachfolger, JetStream, wurde in der Mitte des ersten von drei Läufen geloopt. Der Futuremark Peacekeeper-Test hat auch im Wesentlichen aufgehört, irgendetwas zu tun, wenn es darum ging, Fotos parallel zu verarbeiten. Daher veröffentlichen wir teilweise JetStream-Ergebnisse.um zumindest eine Vorstellung vom Leistungsniveau von Skripten im Browser zu bekommen. | i7‑2600 | D2500 | E2S-800 |
---|
Latency | 80,45 | 12,80 | – |
3d-cube | 45,73 | 7,08 | 0,74 |
3d-raytrace | 64,40 | 7,11 | 1,17 |
base64 | 50,22 | 12,11 | 0,83 |
cdjs | 60,29 | 12,70 | / |
code-first-load | 78,59 | 13,87 | 5,55 |
code-multi-load | 77,03 | 12,96 | 4,73 |
crypto-aes | 66,67 | 11,97 | 1,20 |
crypto-md5 | 72,29 | 11,58 | 0,71 |
crypto-sha1 | 63,78 | 10,04 | 0,50 |
date-format-tofte | 100,60 | 15,61 | 1,84 |
date-format-xparb | 70,15 | 9,90 | 1,79 |
mandreel-latency | 145,80 | 10,16 | ∞ |
n-body | 107,80 | 14,77 | 0,33 |
regex-dna | 108,30 | 27,95 | 0,50 |
splay-latency | 294,30 | 54,03 | 3,57 |
tagcloud | 77,28 | 11,09 | 1,63 |
typescript | 59,16 | 9,25 | 1,86 |
Throughput | 244,16 | 36,68 | – |
bigfib.cpp | 246,60 | 48,82 | |
… | … | … | … |
mandreel | 219,40 | 23,81 | NaN |
… | … | … | … |
splay | 195,20 | 31,15 | 0,70 |
… | … | … | … |
Geometric Mean | 150,47 | 23,18 | – |
Beim Vergleich der Ergebnisse verschiedener Teilnehmer sollte beachtet werden, dass Firefox selbst zwar eine Multithread-Anwendung ist, Skripte von einer Seite jedoch in einem Thread ausgeführt werden. Darüber hinaus wurde Elbrus mit Standard-Firefox 3.6.28 getestet, während andere Computer über einen modernen Versionsbrowser (38.5.0 und 42.0.0) mit einer optimierten JavaScript-Engine verfügten. Ein solches Duell kann jedoch nicht als unfair bezeichnet werden, da es unwahrscheinlich ist, dass eine aktuellere Version des Browsers auf der Elbrus-Plattform verfügbar ist, es sei denn, Sie erstellen ihn selbst. Diese Aufgabe ist jedoch angesichts der Größe des Projekts und der komplexen Kette seiner Abhängigkeiten eindeutig nicht für den durchschnittlichen Benutzer geeignet.Mplayer
Der Multimedia-Player im Elbrus-Betriebssystem fehlt nicht vollständig - er verfügt nur über eine Befehlszeilenschnittstelle und wird daher im Menü der grafischen Umgebung nicht erwähnt. Die Version mplayer 1.1 war in der Lage, im reinen Programmiermodus ohne die Hilfe eines Hardwarebeschleunigers einer Grafikkarte dynamisches Material in Full HD-Qualität abzuspielen, das im MPEG-4.10-Format (AVC) codiert ist. Richtig , dafür musste beim Starten des Players der Parameter -lavdopts threads = 4 angegeben werdenzum Dekodieren, um alle Kerne zu verwenden. Zwei Streams reichten nicht aus: Manchmal wurde das Video „langsamer“. Im Single-Threaded-Modus sah es bereits wie Zeitlupenaufnahmen aus - mplayer gab fast sofort eine Warnung aus, dass das System schwach sei und nicht damit umgehen könne. Für die Wiedergabe von Normal Definition Video (SD) ist die Leistung eines Kerns jedoch mehr als ausreichend: Die Last liegt normalerweise im Bereich von 10%.Zunächst wollten wir das obige Verhalten mit den resultierenden mplayer-Statistiken mit der Option -benchmark quantitativ veranschaulichenDie angezeigten Werte schienen jedoch, gelinde gesagt, seltsam. Im Single-Threaded-Modus gibt Elbrus-4C beispielsweise fast 98% des Kerns für die Dekodierung von Full-HD-Videospuren aus. Die restlichen Krümel dekodieren den Ton und geben all dies auf dem Bildschirm und auf der Audiokarte aus. Wenn 2 Streams verwendet werden, meldet mplayer Gesamtkosten von 85% und bei 4 Streams 15%. Auch wenn diese Indikatoren mit der Anzahl der Threads multipliziert werden müssen, konvergiert hier eindeutig nichts. Daher müssen Sie sich auf verbale Eindrücke beschränken: Das Abspielen von HD-Videos ist für den neuen Elbrus kein Problem. Und dies ist ein wirklich großer Fortschritt vor dem Hintergrund des R500, der in Verbindung mit dem MGA-Adapter in unseren vorherigen Experimenten kaum 352 × 288 MJPEG mit einer Geschwindigkeit von 8 bis 9 Bildern pro Sekunde gezogen hat.In extremen Fällen enthält das Softwarepaket einen FFmpeg 1.0-Konverter, mit dem Sie Videos von einem Format in ein anderes konvertieren können: Ändern Sie den Containertyp, komprimieren Sie ihn mit einem anderen Codec usw.FIO, DD
Das Gefühl der Messung der Festplatten-E / A-Leistung, wie bereits erwähnt, haben wir nicht gesehen. Erstens, weil die Laufwerke der Kingston SSDNow mS200-Serie noch nicht nur von den Faulen getestet wurden. Zweitens, weil es nicht so einfach ist, es richtig zu machen, und das Ergebnis immer noch gemischt ist. Und die Tatsache, dass der neue Elbrus keine schwerwiegenden Probleme mit dem Festplattencontroller hatte, war klar. Um dies sicherzustellen, haben wir das Dienstprogramm fio 2.3 zum Lesen mit einer großen Blockgröße gestartet (16 MB reichten für die Sättigung aus) und einen Spitzenwert von 185 MB / s erreicht. Für den Test wurden Aufzeichnungen von gut komprimierbaren Daten einfach verwendetdd if = / dev / zero von = myfile oflag = direct bs = 16M count = 64
und bekam das Ergebnis 63 MB / s. Die Aufzeichnungsgeschwindigkeit von inkompressiblen Daten (Video) nach derselben Methode betrug 34 MB / s. Ja, dies ist viel weniger als in Studien dieses Laufwerksmodells von Drittanbietern erwähnt, aber für alltägliche Aufgaben, die auf diesem Computer ausgeführt werden, wird es sicherlich ausreichen. Was die Gründe für dieses Verhalten sind, ist eine andere Frage, da es unmöglich ist, alles nur mit den Einschränkungen der SATA-2-Schnittstelle zu erklären, und die Prozessorlast nicht über 10–15% steigt.iPerf
Es ist auch kaum möglich, die Leistung des Netzwerksubsystems eindeutig zu bewerten, und auch hier haben wir uns damit zufrieden gegeben, einfach den maximalen Durchsatz zu messen - mit iPerf 3.1.1. Der Partner in diesem Geschäft für Elbrus 401 - PC war der oben beschriebene Computer auf Basis von Core i7 mit einem integrierten Intel 82579LM-Netzwerkcontroller, der unter openSUSE 13.2 ausgeführt wird. Computer wurden direkt verkabelt. Die IPerf-Einstellungen für TCP blieben standardmäßig erhalten, und für UDP wurde ein Puffer von 60 KB verwendet.Richtung | TCP | UDP |
---|
Senden, Mbit / s | 725 | 820 |
empfangen, Mbit / s | 665 | n / a |
Es war nicht möglich, den UDP-Eingang zu überprüfen, da openSUSE am gegenüberliegenden Ende des Kabels das UDP-Ausgangsband unabhängig von der Schnittstellengeschwindigkeit traditionell auf 10 Mbit / s begrenzt. Wie wir sehen, hat das Elbrus-Betriebssystem keine solchen versteckten Einschränkungen.Schlussfolgerungen
Die Elbrus-2000-Architekturprozessoren (E2K) verfügen über eine ursprüngliche Organisation, die es ermöglicht, die Last zwischen den ausführenden Geräten jedes Kerns in der Phase der Kompilierung von Programmen zu parallelisieren. Dieses Merkmal ist sowohl ihre Stärke als auch ihre Schwäche, da eine vielversprechende theoretische Grundlage nur selten in die Praxis umgesetzt werden kann, insbesondere wenn es sich um Allzweckprogramme handelt, die nicht speziell für Elbrus optimiert sind. Darüber hinaus ist die statische Optimierung bei dynamischen Programmiersprachen machtlos.Ein weiteres Unterscheidungsmerkmal des E2K ist die integrierte Technologie für die sichere Ausführung von Programmen, da die Hardware-Kontrolle beim Zugriff auf den Speicher typische Fehler bei der Verwendung von Zeigern und der manuellen Speicherverwaltung aufdeckt. Wenn Sie der Beschreibung glauben, ist dies nur ein Allheilmittel, das Ihre Programme sofort von fast allen Übeln des unachtsamen Umgangs mit dem Gedächtnis heilt - genauer gesagt, und Ihnen hilft, all diese Problembereiche bereits in der Entwicklungsphase zu finden und nicht, nachdem Sie sie in Betrieb genommen haben.Der Hersteller erklärt auch die Möglichkeit, Programme, die für die x86 / x86‑64-Architektur kompiliert wurden, direkt "on the fly" durch binäre Übersetzung auszuführen, was breite Möglichkeiten für die Verwendung gängiger Betriebssysteme (Windows, * nix) und der gesamten Vielfalt offener und geschlossener Anwendungsprogramme verspricht Quellcode. Schade, dass wir diese Funktionalität nicht testen konnten; Wenn Sie sich jedoch an alle Sicherheitsprobleme erinnern, die x86 mit sich bringt, sollten Sie sich lieber fragen, wie Sie diese transparente Kompatibilität ein für alle Mal blockieren können.Die Gesamtleistung aller vier Kerne des Elbrus-4C-Prozessors, der mit 800 MHz arbeitet, entspricht ungefähr der des Dual-Core-Intel Atom D2500 mit etwas mehr als der doppelten Frequenz (1866 MHz), in jedem Fall mit der Art der vom Test getesteten Last uns Programme. Im Alltag überwiegen jedoch normalerweise Single-Thread-Aufgaben, und daher vermitteln viele langsame Kerne dem Benutzer den Eindruck eines weniger reaktionsfähigen Systems. Es ist verfrüht, von dynamischen Videospielen auf einem solchen Computer zu träumen, obwohl Experimente zum Start von Doom 3 erfolgreich gewesen zu sein scheinen. Das Abspielen von Full HD-Filmen ist ebenfalls möglich, aber ohne Hardwarebeschleunigung fällt die gesamte Last auf die CPU. Für Büroarbeiten reicht jedoch die verfügbare Kapazität aus; darüber hinaus, wie wir gesehen haben,Komfort wird nicht von einem einzigen Prozessor gelegt. Und nur die antidiluvianische Version des Webbrowsers ist verwirrend, da nur wenige Websites im Internet mit diesem Relikt kompatibel sind.Wir hatten keine ernsthaften Beschwerden über die Komponentenzusammensetzung des Elbrus 401 - PC, da die Komponenten hauptsächlich würdig ausgewählt wurden. Vielmehr möchte ich mehr Freiheit bei der Konfiguration der Bestellung, bis zum vollständigen Ausschluss von allem, was für einen bestimmten Kunden nicht erforderlich ist. Dies würde die Möglichkeit, das Betriebssystem selbst zu installieren und die Festplatte gemäß Ihren Einstellungen zu markieren, nicht beeinträchtigen.Kurz gesagt, der Autor mochte den neuen "Elbrus" sehr, insbesondere im Vergleich zu dem, was die russische Computerindustrie früher bieten konnte. Ja, auch wenn es sich nicht um Core i7 (oder Xeon E7, um genau zu sein) handelt, ist es selbst dem riesigen AMD-Unternehmen mit seinen Milliarden an Forschungs- und Produktionsbudgets noch nicht gelungen, Intel einzuholen. Ja, lassen Sie den Preis vorerst „beißen“ und verscheuchen Sie normale Verbraucher und sogar Unternehmen - jetzt kann nur ein großer Optimist davon träumen, den zivilen Markt zu erobern. Aber Fortschritte sind bereits sichtbar, zumal sich der "Elbrus-8C" deutlich am Horizont abzeichnet, der mehr Kerne, mehr Megahertz und, wie ich glauben möchte, für weniger als Dollar hat. Wir hoffen, dass wir eines Tages die Gelegenheit haben werden, einen Artikel über ihn zu schreiben, und noch besser, wenn andere Besitzer von Haushaltsgeräten beginnen, ihre Erfahrungen auszutauschen.Die Plattform bekommt erst dann die Chance, Masse zu werden, wenn sie lernt, offen zu sein.Post scriptum
Heute, am 02.09.2016, hat uns ein Vertreter des Unternehmens MCST angerufen und angeboten, gemeinsam an der Beseitigung der „dunklen Flecken“ zu arbeiten - insbesondere um die Technologie der binären Übersetzung von x86-Code zu verstehen, die Leistung der neuen Version der Java-Maschine zu untersuchen und zusätzliche Benchmarks auszuwählen, um die Stärken von Elbrus zu demonstrieren ”, Sowie umfangreiche Tests unter Beteiligung anderer Muster von proprietären Geräten durchführen. Bisher handelt es sich um eine vorläufige Vereinbarung, daher ist es noch zu früh, um Vorhersagen darüber zu treffen, wie sich dieses Unternehmen entwickeln könnte. Wir hoffen jedoch nicht auf fragmentarische Ergänzungen des aktuellen Materials, sondern auf einen neuen Artikel oder sogar eine Reihe von Artikeln - je nachdem, wie viel Material eingegeben wird. Bitte haben Sie etwas Geduld - all dies ist genau zum Zwecke der Veröffentlichung gedacht.Update ab dem 3. März 2016.Das erste Ergebnis der Zusammenarbeit ist „ Nachtrag zur Überprüfung: Fragen und Antworten “.