blog.tigion.de

2565 days

Performance Stöckchen

22.02.2007 / Bloggen / 8 Kommentare

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 <befehl>) aufsuchen:

  • 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 …

Kommentare

  • ad sagt:

    Ah, Tigion klärt auf. Vielen Dank.

    Kannste die das Optimierung vielleicht noch mal bei mir in den Kommentaren unterbringen? Das wäre nett.

  • tigion sagt:

    Aufklären würde ich es nicht gleich nennen, ist eher eine vorschnelle Verdachtsäusserung ;)

  • Curare sagt:

    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…

  • tigion sagt:

    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 :)

  • Curare sagt:

    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.

  • taocp sagt:

    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

  • r3inforce sagt:

    kein plan
    Inspiron 6000, PentiumM 1,6, FreeBSD 6.2, optimized cflags

    25695.99k 31173.56k 31353.88k 31378.53k 31406.53k

  • Astro sagt:

    ä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. :-)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>