1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mangelnde SMP-Fähigkeit von SW ist echt lästig

Dieses Thema im Forum "Café" wurde erstellt von pete99, 21.01.07.

  1. pete99

    pete99 Pomme au Mors

    Dabei seit:
    21.06.05
    Beiträge:
    874
    Mir fällt immer mehr auf, das kaum Programme wirklich SMP-fähig sind. Z.B. Google Earth oder viele Spiele. Das sind alles Programme die extrem CPU-intensiv sind. Mich hats immer gewundert dass diese Programme eigentlich kaum CPU-Auslastung verursachen. Nach längerem beobachten bin ich aber draufgekommen das diese Programme genau 100% CPU fressen, diese Last aber vom OS auf die Kerne verteilt wird.

    Lästig ist, dass ich jetzt die Kerne in den Energieeinstellungen auf "Maximal" stellen muss umd wirklich maximale Leistung zu erhalten, obwohl sie in Summe nur zu 25% ausgelastet sind.
     
  2. ma.buso

    ma.buso Châtaigne du Léman

    Dabei seit:
    16.04.05
    Beiträge:
    824
    wtf is smp? wär verd. nett w. du weniger abk. verw. würdest!!! dann verst. man deinen txt auch nach einmlg. lesen.
     
  3. pete99

    pete99 Pomme au Mors

    Dabei seit:
    21.06.05
    Beiträge:
    874
    http://de.wikipedia.org/wiki/SMP
    Multiprozessorunterstützung mein ich! Das läuft von seiten des OS wunderbar, aber die Applikationen nutzen es einfach nicht. Ich hab also einen Prozess der ganz genau 100% CPU (von 400%) nutzt. Diese 100% werden auf vier Kerne verteilt und danach hat jeder 25%. Denen ist fast fad, trotzdem lauft die Applikation langsam. Ärgerlich, wenn Hardware-Ressourcen nicht genutzt werden.
     
  4. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Leider ist nicht jedes Problem beliebig aufteilbar, also multithreadbar und damit leicht auf mehr als einen Prozessor/-kern aufteilbar.

    Die Frage ist ob nicht auch andere Aspekte die Applikationen ausbremsen, bzw. eine schneller Ausführung verhindern. zB bei Google Earth kann dies das Netzwerk sein über welches die Bilddaten kommen, oder bei einem Spiel die Grafikkarte.

    Im Endeffekt kannst Du nicht viel dafür oder dagegen tun außer so Dinge wie Prozessor napping (beim PPC) abzuschalten, auch wenns wahrscheinlich nur minimale Leistungssteigerungen bringen kann.
    Gruß Pepi
     
  5. pete99

    pete99 Pomme au Mors

    Dabei seit:
    21.06.05
    Beiträge:
    874
    Sicher. Gerade bei Spielen seh ich das aber nicht so. Da kann man vieles parallelisieren.

    Hab mich ein bissi gespielt. Netzwerk und GraKa sinds nicht. Der Prozess läuft auf genau 100%. Das ist schon sehr verdächtig.

    Ja leider kann man eh nichts dagegen tun. Aber wo jetzt schon jeder neue Mac seit einem Jahr mindestens zwei Kerne hat, sollte man wohl beim Software-Design langsam umdenken.

    Ich hab mir für diesen Thread keine Lösung erwarten. Wollt nur ne Feststellung über einen Missstand machen.

    lg,
    Peter
     
  6. smile

    smile Klarapfel

    Dabei seit:
    11.01.05
    Beiträge:
    280
    Hmm, mach die Feststellung doch einfach mal bei den entsprechenden Softwareherstellern. Btw. multithreading Programmierung ist alles andere als trivial. Neben der Paralellisierbarkeit des Problems braucht es nicht nur einen (sinnvoll) paralellisierbaren Algorithmus, sondern auch noch eine Menge Hirnschmalz, um das umzusetzen ohne mit der Stabilität des Programms Probleme zu bekommen. Manchmal ist die Lösung aber auch recht einfach: Mir hat letztens jemand verraten, dass ein -j2 hinter einem make wahre Wunder bewirkt :)

    smile!
     
  7. TAVLON

    TAVLON Becks Apfel (Emstaler Champagner)

    Dabei seit:
    06.02.06
    Beiträge:
    334
    also ist das etwa der grund warum ich bei systemanzeige auf meinem MacBook selbst wenn ich ein Bild in Terragen (3D landschaft programm) rendere, nur 50% auslastung habe?

    wenn ich das also richtig verstehe, dann ist jeder core zu 50% ausgelastet. also insgesammt zu 100%. ABER ich könnte 200% nutzen... ?

    irgendwie logisch aber trotzdem quer.
    egal. ist das der grund dafür? und was wäre eine software die wirklich 200% nutzen kann? is mir irgendwie noch keine unter die finger gekommen, glaub ich.
     
  8. pete99

    pete99 Pomme au Mors

    Dabei seit:
    21.06.05
    Beiträge:
    874
    Hast du richtig verstanden.

    Quicktime, Aperture, iPhoto,...
    Denk die meisten Apple-Programme sollten das schon beherrschen.
     
  9. TAVLON

    TAVLON Becks Apfel (Emstaler Champagner)

    Dabei seit:
    06.02.06
    Beiträge:
    334
    merci für die flotte antwort ;)

    hab gerade mal rumprobiert, erst wenn ich photoshop (CS 1) und terragen gleichzeitig richtig beschäftige, dann seh ich die balken mal in voller größe. bin irgendwie sogar erschrocken. war mein erstes mal....
    find es aber in der tat, genau wie du, sehr sehr nervig dass wirklich rechenintensive programme (Terragen wäre für mich so eines) nicht sowas unterstützen. so dauert es ja doppelt solange bis ich mein bild endlich seh, und das kann je nach auflösung schon mal nen stündlein und mehr sein, was ich nur dadurch länger brauche. andererseits kann ich in der zeit machen was ich will, da ich ja sozusagen noch 100% zum verbauchen habe.
    ich finde das sollte man einstellen können und bei bedarf (auch während des prozesses) ein und ausschalten können. wäre ne tolle sache, aber was das für einen entwicklerischen aufwand wäre will ich garnicht erahnen.
     
  10. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Das Problem ist auch die Ungenauigkeit der Lastanzeige bzw., daß sie nur eine kumulierte Last anzeigt. Wenn beispielsweise die Fließkommaeinheiten des Prozessors vollständig ausgelastet sind mit einer Berechnung die sogar in mehreren Threads laufen kann dann sind immer noch beispielsweise die Ganzzahleinheiten oder auch Vektoreinheiten nicht zwangsläufig auch ausgelastet.

    Ein anderer Punkt kann auch sein, daß die notwendigen Daten zur Berechnung nicht schnell genug an den Prozessor geliefert werden können. Dann kann der Prozessor so schnell sein wie er will, er bekommt keine Daten mit denen er was tun könnte, ergo liegt Leistung brach.

    Das gleiche kann passieren wenn eine Berechnung das Ergebnis einer anderen Berechnung voraussetzt. Erst wenn diese fertig ist, kann die nächste gestartet werden. In der Zwischenzeit, bleibt Leistung übrig.

    Ein letztes Beispiel welches auch für kleinere Datenmengen Gültigkeit hat sind Strukturen die gerade nicht mehr im Cache des Prozessors oder des L2 Cache Platz finden. Dann wird immer wieder ein (teurer) Zugriff auf den Hauptspeicher (RAM)notwendig und somit wird auch hier der Prozessor seine volle Leistungsfähigkeit nicht ausschöpfen können.

    All das (und noch viel mehr) kann passieren obwohl ein Programm wunderbar SMP fähig ist, Threads einsetzt und auch das OS ganz brav seine Prozesse und Threads auf alle zur Verfügung stehenden Prozessorkerne verteilt.
    Gruß Pepi
     

Diese Seite empfehlen