Ergebnis 1 bis 6 von 6

  1. Titel
    Neuling

    Bewertung

    Registriert am
    30.04.2018

    Ort
    Leipzig

    Beiträge
    14

    Danke
    Danke gesagt 1   Danke erhalten 0

    #1

    Standard Multi-threading: Max # of threads for each task

    Moin moin zusammen. Ich hab vor kurzem wieder angefangen zu crunchen. Habe bei PrimeGrid ein paar GPU WU`s probiert und 321-Sieve WU`s laufen nebenher.
    Mir ist beim stöbern nach anderen Projekten in PrimeGrid Preferences dieser Eintrag aufgefallen: "Multi-threading: Max # of threads for each task". Ich hab nen Ryzen 5 1600x mit Werkseinstellungen auf nem X370 Board und bin ehrlich gesagt zu faul mich selbst schlau zu machen .
    Könnte mir also bitte jemand erklären was ich da am besten einstelle wenn ich WU`s die Multithreading empfehlen ausführen will?

  2. Avatar von No_Name
    Titel
    Gold Member

    Bewertung

    Registriert am
    27.01.2017

    Ort
    Emsland

    Beiträge
    2.402

    Danke
    Danke gesagt 52   Danke erhalten 36

    #2

    Standard

    Bei Sieve WUs ist MT nicht möglich, daher macht es so keinen Sinn.
    Bei LLR WUs liegt es ganz an der länge der WUs, welches Setting dort Sinn macht
    MfG No_Name alias trebotuet
    Zitat Zitat von shka Beitrag anzeigen
    PS: Ich gehe davon aus, dass du uns keine der Lösung dienlichen Hinweise aus dem Meldungs-Log verschweigst, nur um den Schwierigkeitsgrad der Lösungsfindung künstlich zu erhöhen.
    Der Rechenknecht . . . . . . . . . Stats . . . . . . . . . Badges


  3. Titel
    Neuling

    Bewertung

    Registriert am
    30.04.2018

    Ort
    Leipzig

    Beiträge
    14

    Danke
    Danke gesagt 1   Danke erhalten 0

    #3

    Standard

    Danke für die Antwort. Ja es geht mir dabei auch um zb. SOB oder CUL WU`s . Ich dachte es wären vielleicht ein paar "sweetspots" bekannt.
    Theoretisch müsste es also am schnellsten gehen wenn alle Kerne immer an einem Task arbeiten. Ich teste demnächst einfach mal ein paar WU`s.

  4. Avatar von nexiagsi16v
    Titel
    Gold Member

    Bewertung

    Registriert am
    05.12.2014

    Beiträge
    1.763

    Danke
    Danke gesagt 17   Danke erhalten 0

    #4

    Standard

    Kommt immer auf die CPU an, wieviele Kerne pro WU das Beste ist. So wie ich das bis jetzt verstanden hab, kommt es immer darauf an, wie groß die WU ist und der Cache der CPU. Solange eine WU da rein paßt, lohnt es sich. Frag mich bitte jetzt nicht, wie man die größe der WU bzw. deren Größe dann im Cache berechnet. Außerdem bringt es oft nix, wenn man alle Threads rechnen läßt, sondern nur die echten Kerne.
    Eine gute Wahl sind wohl immer 4 Kerne oder Threads pro WU.

    Aufgrund der immer höheren Kernzahlen der CPUs, ist die Optimumbestimmung bei PG schon eine Wissenschaft für sich. Ich hab eine Tabelle, wo ich die möglichen Kombinationen durch rechne...wenn ich merke das es in einer Richtung ehr schlechter wird (z.b. 1Kern mehr pro WU aber kaum Zeitgewinn), brech ich da ab und fang mit einer anderen Kombination aus WU-Zahl und Kernen an. Wichtig ist, nicht nur eine Test-WU rechnen, sondern...ich sag mal 10. Bissel variieren die WUs auch bei PG in ihrer Größe.
    Ciao Norman

    Ryzen 5 3600 @4GHz, 3x RX 5700, 32GB DDR4//FX8370 @4GHz, 16GB DDR3 1600, RX 470 + R9 270X// Dauercruncher i3 8300, 8GB RAM // Läppi B940 @2GHz

  5. Avatar von pschoefer
    Titel
    Administrator

    Bewertung

    Registriert am
    07.07.2007

    Ort
    Osterode / Göttingen

    Beiträge
    15.244

    Danke
    Danke gesagt 148   Danke erhalten 1.647

    #5

    Standard

    Prinzipiell gibt es bei der Optimierung zwei Ziele: Laufzeit pro WU minimieren oder Leistung (also WUs pro Zeit) maximieren. Theoretisch könnte man auch noch die Effizienz im Sinne von WUs pro kWh maximieren wollen; ich den meisten Fällen dürfte das mit der Maximierung der Leistung übereinstimmen, bei kleinen Leistungsunterschieden müsste man einmal die Energieaufnahme nachmessen (ich weiß nicht, ob diesen Aspekt schon einmal jemand systematisch erforscht hat).

    Minimierung der Laufzeit pro WU und Maximierung der Leistung führen nicht zum gleichen Ergebnis, da zwei Faktoren gegeneinander arbeiten: Erstens skaliert das Multithreading nicht perfekt, sodass weniger Kerne pro WU eigentlich besser sind. Zweitens können sich parallel laufende WUs aber gegenseitig ausbremsen, wenn die notwendigen Daten aller WUs nicht in den Cache passen und erst aus dem langsameren RAM geladen werden müssen.

    Die minimale Laufzeit erreicht man praktisch immer, wenn alle Kerne an derselben WU arbeiten. Bei kurzen WUs geht die Leistung dadurch aber dramatisch in den Keller, ich habe für Quadcore-CPUs durchaus schon beobachtet, dass mit einer WU auf allen vier Kernen die Laufzeit gegenüber vier WUs auf je einem Kern gerade einmal halbiert wird. Manche Leute nehmen diese schlechte Ausbeute dennoch in Kauf, weil sie geradezu panische Angst davor haben, im Falle eines Primzahlfundes nur Doublechecker zu sein. Meinen Beobachtungen nach fährt man auf lange Sicht aber auch hinsichtlich Erstfund-Quote bei Primzahlen besser, wenn man eher auf Leistung optimiert, da die Wingmen und die Eigenheiten des Servers ja auch noch eine Rolle spielen.

    Für die maximale Leistung kann man zumindest auf Desktop-CPUs bis zur gehobenen Mittelklasse folgende Faustregel verwenden: Es sollten gerade so viele WUs parallel laufen, dass alle Daten in den L3-Cache passen. Dabei kann man sich an der FFT-Länge orientieren, es gilt belegter Speicher in kiB = FFT-Länge in K * 8. Eine Tabelle der verwendeten FFT-Längen pro Subprojekt gibt es hier (ein halbes Jahr alt, manche Subprojekte könnten inzwischen längere FFTs verwenden). Ganz grob ergibt sich für die meisten "normalen" CPUs, dass man bei SGS, PPSE und PPS am besten mit je einer WU pro CPU-Kern fährt, PPS-MEGA und PPS-DIV sind Grenzfälle, darüber ist dann eine WU auf allen Kerne am besten.

    Bei High-End-Desktop-, Workstation- und Server-CPUs (und wegen der immer weiter steigenden Kern-Anzahl womöglich bald auch in der Mittelklasse) wird es komplizierter, je nach Aufbau der CPU und Anbindung von Cache und RAM kann es da ganz anders aussehen. Mein auf Speicherbandbreite getrimmter i7-6850K beispielsweise erzielt selbst bei sehr langen WUs oft noch mit je einer WU pro Kern die beste Leistung, obwohl der Cache längst nicht mehr ausreicht. Auch die Frage, ob Hyperthreading/SMT aktiviert werden sollte oder nur die echten CPU-Kerne genutzt werden sollten, ist gar nicht so einfach zu beantworten.
    Gruß
    Patrick

    "Zusammenkommen ist ein Beginn, Zusammenbleiben ein Fortschritt, Zusammenarbeiten ein Erfolg." [H. Ford]

  6. Avatar von No_Name
    Titel
    Gold Member

    Bewertung

    Registriert am
    27.01.2017

    Ort
    Emsland

    Beiträge
    2.402

    Danke
    Danke gesagt 52   Danke erhalten 36

    #6

    Standard

    Für den 1600x würde ich folgendes empfehlen:

    SGS, PPSE und PPS: 3 WUs mit je 2 Threads
    Alle anderen Subprojekte eine WU mit 6 Threads.
    MfG No_Name alias trebotuet
    Zitat Zitat von shka Beitrag anzeigen
    PS: Ich gehe davon aus, dass du uns keine der Lösung dienlichen Hinweise aus dem Meldungs-Log verschweigst, nur um den Schwierigkeitsgrad der Lösungsfindung künstlich zu erhöhen.
    Der Rechenknecht . . . . . . . . . Stats . . . . . . . . . Badges

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 06.01.2013, 19:25
  2. Multi-Core Bug - Feature - Cheating
    Von bugy im Forum FreeHAL@home (sonstiges)
    Antworten: 111
    Letzter Beitrag: 21.07.2012, 07:34
  3. Hyper Threading vs. 'echte' Multicores
    Von Peter7Lustig im Forum Hardware - Probleme, Tuning, Benchmark usw.
    Antworten: 9
    Letzter Beitrag: 10.01.2008, 18:34
  4. Seltsamer / Unbekannter Task
    Von Bommel im Forum Software - Installation, Probleme usw.
    Antworten: 7
    Letzter Beitrag: 02.12.2007, 15:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Single Sign On provided by vBSSO