CPU-Kern voll ausnutzen

Diskutiere CPU-Kern voll ausnutzen im Allgemeine Java-Themen Forum; Grüße, Ich einen recht performance-lastigen Thread, der viele Berechnungen ausführen muss (läuft in Schleife). Das Resultat ist leider zur...

  1. Luk10
    Luk10 Neues Mitglied
    Grüße,

    Ich einen recht performance-lastigen Thread, der viele Berechnungen ausführen muss (läuft in Schleife).

    Das Resultat ist leider zur Zeit wenig befriedigend, da es sehr lange dauert bis ein Schleifen-Durchlauf ausgeführt wurde. Mir ist außerdem aufgefallen, dass der CPU-Kern auf dem das Programm läuft nur zu etwa 20% ausgelastet ist, die restlichen Kerne auf +-5%.

    Wie kann ich es schaffen, dass dieser eine Kern stärker ausgelastet wird und ich damit eine bessere Performance bekommen kann?

    Danke,
    -Luk10-
     
  2. Vielleicht hilft dir dieses Buch hier weiter.
  3. pl4gu33
    pl4gu33 Neues Mitglied
    also das is jetzt eher auf mehrere Kerne bezogen... wenn die Berechnungen unabhängig sind, könntest du sie direkt auf mehrere Kerne verteilen und dann zum Schluss (mit join aufeinander warten ) zusammenrechnen o.ä.
     
  4. Volvagia
    Volvagia Neues Mitglied
    Greifst du vielleicht auf etwas synchronisiertem zu?
     
  5. Marco13
    Marco13 Gesperrter Benutzer
    Wenn die eine CPU mit einem voll beschäftigten Thread nicht qualmt, liegt das "zwangsläufig" (!?!) daran, dass er die Daten nicht schnell genug bekommt... Ein
    Code (Java):

    double d = 0;
    while (true) d += Math.sin(d);
     
    in einem Thread dürfte für 100% sorgen - ein
    Code (Java):

    while (true) downloadSomeFileViaModem();
     
    eher nicht ;)
     
  6. Luk10
    Luk10 Neues Mitglied
    Code (Java):
    double d = 0;
    while (true) d += Math.sin(d);
    Sorgt bei mir für eine Gesamt-Auslastung von 25% (relativ gleichmäßig auf 4 Kerne verteilt, obwohl es nur 1 Thread ist)

    -Luk10-
     
  7. Kaffeebohn
    Kaffeebohn Neues Mitglied
    Bei mir sorgt das auch für eine "gleichmäßige" Auslastung aller Kerne. Wenn ich allerdings das ding 4. starte dann komme ich trotzdem auf in 25%er Schritten auf 100%. Scheint wohl daran liegen wie die Last auf die Kerne verteilt wird. Ich meine mich zu erinnern, dass man früher damit tatsächlich einen Kern auf 100% bekommen hat während die andren nichts getan haben. Kann mich aber irren.

    Grüße
     
  8. Blackhole16
    Blackhole16 Neues Mitglied
    Ich denke mal, dass die Prozessoren inzwischen schon zu intelligent sind, als dass man nur einen Kern ausnutzt.

    Desweiteren hat man in Java genau 0!!! Rechte, was Systemwerte angeht.

    Wenn du dich extrem gut mit der Systemproggrammierung von windows auseinandersetzt, sollte es denke ich möglich sein, dass du mit Java und Adminrechten Dateien veränderst, die dafür zuständig sind. Aber das wird unmöglich, da Windows nicht open source ist und extrem stark verschlüsselt... Bei Linux würde das schon anders aussehen, aber ich denke nicht, dass es unbedingt notwendig ist.

    Was machst du denn in dem Code? Wie sieht der aus (aber bitte nicht 5k Zeilen posten :p)?

    Vielleicht könnte der Code nur verbessert werden, sodass das ganze schneller abläuft. Denn wenn der PC langsam wird, deutet das eigentlich auf Overhead hin... Oder nicht =?

    mfg
    BH16
     
  9. Lumaraf
    Lumaraf Neues Mitglied
    Ich vermute mal das hängt mit der automatischen Übertaktung von kalten Kernen in aktueller CPUs zusammen. Wenn man alle Kerne gleichmäßig auslastet hat man niedrigere Spitzentemperaturen in allen Kernen und somit mehr möglichkeiten zusätzliche Leistung durch die Erhöhung der Taktes herauszuholen. Intel nennt das btw "Turbo Boost" und AMD "Turbo Core".
     
  10. bone2
    bone2 Guest
    25% liegt einfach daran, das es nur auf einem kern/thread läuft. windows schiebt abwechseln den 4 kernen einen happen zum rechnen hin, sosnt würde einfach ein kern auf 100% laufen und der rest skat spielen. einfach mal in windows java gezielt nur einen kern zuweisen. gesamt auslastung bleibt 25%.

    übertakten die intels nicht auch gut wenn nur ein kern was zu tun hat? ich erinnere mich dunkel an turbo für single core prozesse
     
  11. irgendjemand
    irgendjemand Neues Mitglied
    made my day ...

    stellt euch das mal als neuen marketing gag vor : der neue SkatCore : 1 core arbeitet , die anderen 3 speilen Skat ... *boa ich würde so in der ecke liegen*
     
  12. Wenn du Java lernen möchtest, empfehlen wir dir dieses Buch hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

CPU-Kern voll ausnutzen - Ähnliche Themen

Sind online Konferenzen sinnvoll?
Sind online Konferenzen sinnvoll? im Forum Plauderecke
oAuth2 und ClientCredentials für API sinnvoll?
oAuth2 und ClientCredentials für API sinnvoll? im Forum Softwareentwicklung
vollständige Induktion, Java
vollständige Induktion, Java im Forum Java Basics - Anfänger-Themen
Cooles Java Tutorial, voll hilfreich
Cooles Java Tutorial, voll hilfreich im Forum Bücher, Tutorials und Links
Vollständiges Java-Projekt zum Mitmachen
Vollständiges Java-Projekt zum Mitmachen im Forum Bücher, Tutorials und Links
Thema: CPU-Kern voll ausnutzen