Der ad wirft mit einem Performance-Stöckchen um sich und hätte ich mich nicht rechtzeitig geduckt wärs wohl eine Beule geworden. Naja wo es nun schonmal da ist, gleich mal folgendes in der Konsole ausgeführt:
sudo nice -n -20 openssl speed aes-256-cbc
Hier das erreichte Ergebnis für mein MacBook mit 2GHz:
28776.46k 28987.61k 29373.19k 29451.70k 29486.99k
Man sollte sich natürlich auch fragen, was der oben genannte Aufruf eigentlich macht. Dazu im Zweifelsfall die entsprechenden Manpages (man
- ‚sudo‚ … Programm alternativ mit Rootrechten ausführen.
- ‚nice -n -20‚ … Legt die Priorität des auszuführenden Programms gegenüber anderen fest. In diesem Falle die höchstmögliche Priorität von -20.
- ‚openssl speed aes-256-cbc‚ … OpenSSL ist ein Kryptographie Toolkit. Mit dem Parameter ‚speed‚ wird eine Art Benchmarktest zum angegebenen Algorithmus durchführt
Das die Intel-Macs gegen die PPC-Macs in diesem Vergleich hinterher hinken, liegt wohl daran, dass hier noch bessere Optimierungen (-arch ppc) für die PPC Architektur im Spiel sind:
compiler: cc -arch i386 -arch ppc -g -Os -pipe -arch i386 -arch ppc -pipe -DOPENSSL_NO_IDEA -DFAR=
Edit: Die Verwendung von ‚cc -arch i386 -arch ppc‘ besagt dabei nur, dass es sich um ein für zwei Architekturen erstelltes Programm (Binary) handelt.
Wer Lust hat, kann sich das Stöckchen schnappen …
Ah, Tigion klärt auf. Vielen Dank.
Kannste die das Optimierung vielleicht noch mal bei mir in den Kommentaren unterbringen? Das wäre nett.
Aufklären würde ich es nicht gleich nennen, ist eher eine vorschnelle Verdachtsäusserung
Ich habe eine ganz andere Vermutung und die heisst „Altivec“. Mit Altivec ist es möglich eine Operation auf mehrere Datenworte gleichzeitig anzuwenden. Ich glaube in einen Altivec Vektor passen 8 Elemente. Das erhöht natürlich den Datendurchsatz enorm…
Danke für den Einwurf Curare. Musste erstmal recherchieren was „Altivec“ genau ist.
Das wäre natürlich echt eine Möglichkeit. Nun müsste man nur noch herausbekommen, ob das in der PPC Optimierung für OpenSSL eine Bedeutung hat
Also Fakt ist, das mit den Werten für den Core2Duo irgendwas nicht stimmt. Die sind deutlich zu niedrig oder anders gesagt: die CPU kann mehr.
Selbst mein PC (AMD64 3500+ @ 2,2GHz) hat bei dem Test einen Datendurchsatz von 45MB/sec.
Naja, ob die Werte zu niedrig sind, weiß ich nicht. Hier am Institut arbeite ich mit einem 8fach Xeon mit jeweils 2,2GHz Prozessoren. Da erreicht dieser Benchmark auch nur etwa 33 bis 37MB/s. Jetzt ist halt die Frage inwiefern dieser Benchmark Parallelisierung auszunutzen weiß … kompiliert wurde immerhin mit -DOPENSSL_THREADS
kein plan
Inspiron 6000, PentiumM 1,6, FreeBSD 6.2, optimized cflags
25695.99k 31173.56k 31353.88k 31378.53k 31406.53k
äh… wenn der gcc eine Fat Binary für zwei Architekturen compiled, dann gilt -Os nur für PPC?
Was bei PPC Altivec heisst, das ist beim x86 MMX, MMXext, 3Dnow, 3Dnowext, SSE, SSE2 und SSE3. Die unterscheiden sich meist nur in Registeranzahl und -breite. Bei der Masse an Optimierungen beim x86 müsste für OpenSSL eigentlich mehr drin sein als wie nur Altivec beim PPC. Vorausgesetzt, man benutzt die Flags dafür.