Berechnung läuft extrem langsam auf neuem Notebook



  • Hallo Leute,

    ich hab da ein Problem bei dem mir bestimmt jemand von euch weiterhelfen kann. Wahrscheinlich ist die Ursache trivial, da ich aber kein Profi in der C++ programmierung bin finde ich die Lösung nicht...

    Ich habe ein Programm geschrieben, das eine Strömungsberechnung durchführen soll. Dabei lasse ich mir über die Konsole die aktuelle Anzahl an Iterationen augeben. Also es fängt bei Null an und läuft hinunter. Auf meinem alten Notebook war die Berechnung auch recht schnell.
    Jetzt habe ich aber ein neues Notebook und die Berechnung verläuft einfach extrem langsam.

    Was kann der Grund dafür sein? Wie gesagt auf dem alten PC war alles gut, ich habe das auch auf einem zweiten Notebook ausprobiert wo es ebenfalls schnell ging.

    Ich habs mit wxDevC++ und CodeBlocks probiert, auch nach neuinstallation. Außerdem läuft das selbe Programm auf Matlab auch ungewöhnlich langsam (also langsamer als sonst immer)

    Schon mal Danke für eure Hilfe!



  • Kann es einfach sein, dass dein alter PC von der Hardware besser ist als dein aktuelles Notebook? Hört sich so an



  • Nein eigentlich ganz im Gegenteil.
    Mein alter hatte einen i5 dual core und 4 GB RAM mein neuer hat einen i7 quad core mit 8BG RAM.


  • Mod

    Also es fängt bei Null an und läuft hinunter.

    Wie viel Text wird auf die Konsole geschrieben? Viel?

    Betriebsssytem, Compiler, wie laufen die anderen Programme?



  • In der Konsole wird nur die Anzahl an Iterationen ausgegeben. An der Ausgabe sollte es auch nicht liegen, da ich damals wie ichs geschrieben hab auch keinen Geschwindigkeitsunterschied mit und ohne Ausgabe bemerkt habe.

    Betriebssystem ist Windows 7, Compiler ist GCC.

    Ich hab keine anderen C++ Programme die ähnlich sind, also kann ich nicht ausprobieren obs da schneller geht.
    Es ist auch nicht so als wäre zu wenig RAM übrig, die CPU läuft für die Konsole auf 15% was der Leistung eines Threads entspricht. Also versuchen tuts der Computer ja...



  • Kannste den Code zeigen? Oder wenigsten verkürzt?



  • mdpse schrieb:

    In der Konsole wird nur die Anzahl an Iterationen ausgegeben. An der Ausgabe sollte es auch nicht liegen, da ich damals wie ichs geschrieben hab auch keinen Geschwindigkeitsunterschied mit und ohne Ausgabe bemerkt habe.

    Grundsätzlich ist ein Programm mit Ausgabe langsamer. Wenn du keinen passenden Grafikkartentreiber installieret hast, sondern nur den 08/15 von Windows, könnte das den Effekt erklären.



  • Das sind 1100 Zeilen...

    Aber ich kann kurz erklären um was es geht.
    Die Strömung aus einer konvergent-divergenten Düse wird berechnet, dabei werden die Euler Gleichungen gelöst. Kurz gesagt, ich verwende einen haufen 3D Arrays (Größe im aktuellen Fall ist 100x500 Elemente und das auf 4 Ebenen), also kein besonderes template wie valarray oder vector.

    Es ist einfach unverständlich warum das auf einmal so langsam läuft. Ich kenn mich leider mit der Art wie der Computer so einen Code verarbeitet nicht wirklich aus. Ich seh nur was mir der Task Manager bezüglich CPU und RAM anzeigt.



  • @ manni66: Du meinst also, dass die Grafikkarte daran schuld sein kann, dass die gesamte Berechnung langsam wird? Mein Notebook hat die integrierte Intel Grafikkarte und eine Nvidia. Die Nvidia ist in dem Fall aber nicht aktiviert.



  • Wenn das auch in Matlab langsamer läuft, warum sollte es dann an C++ liegen? Hört sich danach an als sei dein Rechner allgemein langsamer, warum auch immer.



  • mdpse schrieb:

    @ manni66: Du meinst also, dass die Grafikkarte daran schuld sein kann, dass die gesamte Berechnung langsam wird? Mein Notebook hat die integrierte Intel Grafikkarte und eine Nvidia. Die Nvidia ist in dem Fall aber nicht aktiviert.

    Der (nicht vorhandene) Treiber. Wenn das Programm auf die Ausgabe wartet, kann es nicht rechnen.

    Oder arbeitest du etwa mit OpenCL oder ähnlichem? Dann hängt natürlich auch die Rechnung an der Grafikkarte.



  • Hmm, eine ganz komische Sache ist jetzt passiert. Ich wollte schaun ob sich der PC wirklich verlangsamt hat, da ich gestern ziemlich viel upgedated hab, unter anderm auch das BIOS. Also wollte ich den Windwos Leistungsindex noch mal ermitteln (Keine Ahnung ob mir das wirklich offenbart hätte, dass der PC langsamer wird ^^).
    Aber während das durchgelaufen ist, ist meine Berechnung komischerweise mit normaler Geschwindigkeit gelaufen... Und das tut sie jetzt auch noch. Keine Ahnung was das Problem war. Matlab läuft aber noch immer gleich langsam. Muss also an C++ gelegen sein...



  • Schau dir mal die Energiesparoptionen an.



  • Könnte es nicht einfach an dem Core-Takt liegen? Ein Quad-Core ist ja nicht unbedingt schneller als ein Dual-Core, insbesondere bei einem Programm, welches nur einen Thread (d.h. einen Kern) benutzt!

    Also mdpse, wie sind die genauen CPU-Specs?



  • Ja, nicht dass sich der Prozessor zum Energiesparen oder weil er sich gelangweilt hat automatisch runtergetaktet hat.

    Was auch sein könnte ist, dass dein alter Prozessor mehr CPU-Cache hatte als dein neuer, und dein neuer CPU eben die ganze Zeit auf Daten wartet...



  • Ich glaub nicht dass es i7 gibt die weniger Cache haben als ältere i5.
    Wegen Takt... das könnte dann höchstens so ein super-spar i7 sein.
    Aber auch die takten im Turbo normalerweise recht hoch rauf. Und der Unterschied könnte nicht so dramatisch sein.
    Wenn das Ding allerdings glaubt dass es auf Batterie läuft, bzw. mit den selben Einstellungen fährt wie wenn es auf Batterie laufen würde, dann kann der Unterschied schon recht deutlich ausfallen.



  • Also der Takt meines i7-4800mq ist höhter als die des i5-3230m, auch der Cache. Energiesparmodus ist an, aber das war er auch am alten Notebook. Selbst mit Turbo Boost ist die Berechnung bei i5 bzw i7 nicht schneller gewesen, was mich eh wundert...



  • Ist der "Bug" jetzt permanent weg, oder is immer noch manchmal langsam?
    Falls zweiteres, dann probier mal nen beliebigen CPU Benchmark auf beiden Notebooks laufen zu lassen.



  • Ich habs vorher nochmal versucht, da hats super funktioniert. Es ist echt rätselhaft.


Log in to reply