1. Foren
  2. Kommentare
  3. Sonstiges-Forum
  4. Alle Kommentare zum Artikel
  5. › Threadripper 2990WX und 2950X…

@Golem: Compilertests?

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema

Neues Thema


  1. @Golem: Compilertests?

    Autor: Mr Miyagi 13.08.18 - 19:27

    Ich finde es schade das das Anwendungsfeld Softwareentwicklung im Artikel wieder so schlecht abgedeckt wird, insbesondere da hier dearart hohe Kernzahlen tatsächlich Sinn machen.

  2. Re: @Golem: Compilertests?

    Autor: NeoXolver 13.08.18 - 19:32

    Ich wollte gerade die selbe Frage stellen. Wäre schon interessant wie sich einige gängige Compiler auf der Kiste machen.
    Ob man hier alles aus den Kernen raus holen kann oder die schmale Speicheranbindung auch hier bremst.

  3. Re: @Golem: Compilertests?

    Autor: Mr Miyagi 13.08.18 - 20:25

    Ich vermute das wird stark projektabhängig sein. Z.b. Firefox zu kompilieren scheint extrem speicherintensiv zu sein. Dabei wird Speicher bzw CCX stark bremsen vermute ich.

  4. Re: @Golem: Compilertests?

    Autor: pioneer3001 13.08.18 - 20:45

    Der Standardtest ist das Kompilieren eines aktuellen Linux-Kernels. Vor einigen Tagen habe ich ein Script gebaut, dass auf meinem Ryzen 5 1600X mit 6C12T nacheinander 12 Tests (make -j12 bis make -j1) laufen lässt und die Ergebnisse in eine Textdatei schreibt. Mit 12 Jobs braucht das 129 Sekungen und mit einem 830 Sekunden. Skaliert nicht linear und HT bringt etwas, aber vernachlässigbar. Für die programmierfaulen kommt hier das Script (verzichte auf Urheberrecht). Eventuell muss man noch vorher gcc, make etc. insten:

    sudo apt-get update
    sudo apt-get install build-essential
    chmod u+x kernel-test.sh
    ./kernel-test.sh

    #!/bin/bash

    # some hard coded params
    url="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.13.tar.xz"
    file="linux-4.17.13.tar.xz"
    directory="linux-4.17.13"
    results="results.txt"

    # some queried params
    cores=$(nproc)

    # some preliminary tests
    [ ! -e $file ] && wget $url
    [ -e $directory ] && rm -rf $directory
    [ -e $results ] && rm $results

    uname -a | tee -a $results
    echo "" | tee -a $results

    counter=$cores
    while [ $counter -ge 1 ]
    do
    ccache -C &>/dev/null

    echo "Test: make -j$counter" | tee -a $results
    tar xf $file
    cd $directory

    # some work
    make defconfig >/dev/null # je nach distro macht das evtl. eine etwas andere config
    { time make -j$counter >/dev/null; } 2>&1 | grep real | tee -a ../$results

    echo "---" | tee -a ../$results
    cd ..
    rm -rf $directory

    ((counter--))
    done

    rm $file

    echo "All done"



    2 mal bearbeitet, zuletzt am 13.08.18 20:54 durch pioneer3001.

  5. Re: @Golem: Compilertests?

    Autor: NeoXolver 13.08.18 - 21:00

    Naja bei so „kleinen“ Compilieraufgaben, wie dem Linux Kernel, ist dass aber auch schwer zu optimieren.
    Ich kenne einige Projekte, Bei denen man in Minuten auf ähnliche Werte kommt.

    Zudem wären auch einpaar Crosscompiler interessant. Und was ist wenn man mehrere object files parallel baut. Diese sind ja vor dem linken erstmal vollständig unabhängig.

    Das wiederum SMT ggf nicht viel bringt beim Compilieren, ist sogar nachvollziehbar.

  6. Re: @Golem: Compilertests?

    Autor: ms (Golem.de) 13.08.18 - 21:14

    Wir haben Qt 5.11 drin

    Marc Sauter, Sr Editor
    Golem.de

  7. Re: @Golem: Compilertests?

    Autor: 1e3ste4 13.08.18 - 21:18

    Bei der großen Kernzahlen frag ich mich immer: Wie lange dauert es ein Gentoo mit KDE und allem möglichen Gedöns zu kompilieren - natürlich mit "emerge -e"! :D

  8. Re: @Golem: Compilertests?

    Autor: pioneer3001 13.08.18 - 21:18

    NeoXolver schrieb:
    --------------------------------------------------------------------------------
    > Naja bei so „kleinen“ Compilieraufgaben, wie dem Linux Kernel,
    > ist dass aber auch schwer zu optimieren.
    > Ich kenne einige Projekte, Bei denen man in Minuten auf ähnliche Werte
    > kommt.
    >
    > Zudem wären auch einpaar Crosscompiler interessant. Und was ist wenn man
    > mehrere object files parallel baut. Diese sind ja vor dem linken erstmal
    > vollständig unabhängig.
    >
    > Das wiederum SMT ggf nicht viel bringt beim Compilieren, ist sogar
    > nachvollziehbar.

    Da werden doch mehrere Objekt-Dateien mit make -j12 parallel gebaut. Und das Cross-kompilieren mit z.b. crosstools-ng (habe viel Erfahrung mit cross-bauen von Libs) braucht man nicht testen, weil da ja auch nur ein Linux-Kernel für eine andre Architektur wie Raspi 3 (armv8) statt i686 kompiliert wird. Vorher werden ggf. einige Patches angewendet. Und es kommen noch andere Tools dazu die gebaut werden. Das Bauen eines Linux-Kernels unter Linux ist also vollkommen ausreichend zum Einschätzen wie sich die Kernanzahl auf das eigene Projekt in C/C++ auswirken würde.

    Beispielsweise braucht mein C++-Projekt mit 160k Zeilen Code (in Headern und CPPs) ca 13 Minuten mit 12 Threads auf einem Ryzen 6 1600X mit 6C12T, wenn es unter Linux x64 für Linux x64 kompiliert. Wenn es cross-kompiliert mit mingw32 für Windows 32 Bit (i686) braucht es 14 Minuten. Das nimmt sich also nicht viel. Man kann auch einen gcc selbst optimiert kompilieren, damit er noch schneller kompiliert, aber viel ist da wohl nicht rauszuholen nach meinen Internet-Recherchen. Das kann man vergessen in der Praxis.

    Eher bringt es mehrere PCs zu nutzen und die Kompilierung zu verteilen mit distcc. Das hilft wenn man z.b. ein schwaches Netbook mit Atom-Prozessor hat. Dann lässt man einen Teil auf seiner Kiste unterm Schreibtisch kompilieren und einen Teil auf dem Netbook. Das Linken passiert dann aber auf dem Netbook, was das stark ausbremst und nicht parallel geht. Dennoch kann man so rund 1/3 bis 1/2 Zeit sparen auf einem Netbook. Das ist schon ein Unterschied ob man auf einem Netbook 8 Minuten oder nur 4 warten muss, weil das ja das Programmieren ausbremst.



    3 mal bearbeitet, zuletzt am 13.08.18 21:35 durch pioneer3001.

  9. Re: @Golem: Compilertests?

    Autor: pioneer3001 13.08.18 - 21:38

    1e3ste4 schrieb:
    --------------------------------------------------------------------------------
    > Bei der großen Kernzahlen frag ich mich immer: Wie lange dauert es ein
    > Gentoo mit KDE und allem möglichen Gedöns zu kompilieren - natürlich mit
    > "emerge -e"! :D

    Es gibt ein Projekt mit dem man sein eigenes Linux schritt für schritt bauen kann. Habe ich mal gemacht. Hat mich Tage gekostet. Das reine Bauen dauert Stunden.

    http://www.linuxfromscratch.org

    Ich cross-kompiliere gelegentlich per Make-Script ca. 35 Linux-Libraries, die ich für die Cross-Entwicklung auf drei x86-Linux-Rechnern brauche. Das Bauen dauert auf einem Ryzen 1600X 6C12T mit gcc cross-kompilieren zusammen ca. 30 bis 50 Minuten, je nach Ziel-Plattform. Der größte Brocken ist die Boost Library. Die hat selbst dutzende von Libs drin.



    7 mal bearbeitet, zuletzt am 13.08.18 21:57 durch pioneer3001.

  10. Re: @Golem: Compilertests?

    Autor: pioneer3001 13.08.18 - 22:45

    Habe mir gerade noch Gedanken zum Speicherverbrauch gemacht mit einem 32-Kerner.

    Also mein C++Projekt braucht 750 MB/Kern. Deswegen ist die Kompilierung auf meinem Atom-Netbook (die haben nie mehr als 2 GB) mit vier Threads lahm, weil mein Projekt dann 4x0,75GB=3GB bräuchte, aber physisch nur 2GB hat. Daher starte ich da wenn ich das mal selten nutze, nur 2 Jobs (make -j2).

    Momentan hat mein 6-Kern-Ryzen 16GB RAM, weil er 12*0,75GB=9GB braucht.

    Ein 32-Kerner mit 64 Threads bräuchte aber schon 48GB RAM (oder halb so viel, wenn man HT nicht nutzen will). So eine parallele Kompilierung mit gcc ist eben auch sehr speicherhungrig.

  11. Re: @Golem: Compilertests?

    Autor: NeoXolver 14.08.18 - 00:31

    Habe ich scheinbar überlesen. Wobei das Ergebnis doch recht überrascht. Das sieht ja eher Singlecore Interger Leistung aus....

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. IT-Administrator mit Schwerpunkt Elektronische Akte (w/m/d)
    IT-Systemhaus der Bundesagentur für Arbeit, Nürnberg
  2. IT Service & Support Professional (m/w/d)
    ConSense GmbH, Aachen
  3. (Junior) Inhouse IT - Consultant (m/w/d)
    Nordwest Industrie Group GmbH, Bundesweit
  4. Softwareentwickler C#, VB.Net (m/w/d) für unsere CNC-Schleifmaschinen
    Schütte Schleiftechnik GmbH, Köln

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 499,99€


Haben wir etwas übersehen?

E-Mail an news@golem.de