Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Programm zur Simulation speicherintensiver Anwendungen

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.08.2004
    Beiträge
    19

    Programm zur Simulation speicherintensiver Anwendungen

    Hallo!

    Im Prinzip möchte ich ein kleines Testprogramm schreiben, mit Hilfe dessen ich verschiedene Rechner auf ihre Geschwindigkeit bei Speicherintensiven Anwendungen testen kann.

    Ich habe ein kleines Programm geschrieben, das mir 10-mal ca. 16 MB Speicher mit Zufallswerten füllt und anschließend 1000x verschiedene dieser Speicherstellen in andere kopiert.

    Den Speicher habe ich mit "alloc()" reserviert und anschließend mit "rand()" und "srand()" mit Inhalt gefüllt, wobei es im Augenblick keinen Unterschied macht, ob da nun Inhalt drin steht oder nicht.

    Das kopieren der Speicherstellen wird durch "memcpy()" durchgeführt.

    Ich stelle allerdings fest, das der Kern, auf dem die Anwendung läuft, teilweise bis zu 100% belastet ist. Die CPU sollte aber eigentlich nicht der limitierende Teil (Bottleneck) des Tests sein. Meine Frage ist daher: Ist das normal oder habe ich einen gravierenden Denkfehler in dem Verfahren?

    VG Wishy

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Das Problem in deinem Fall könnte darin liegen, dass die Werte andauernd zwischen den verschiedenen Speicherebenen kopiert werden müssen (was für eine übliche speicherintensive Anwendung wenig Sinn macht...).

    Evtl. etwas realistischer: Matlab/Octave nehmen und grosse Zufallsmatrizen miteinander multiplizieren. Dürfte aber unter Umständen die CPU auch auslasten

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.08.2004
    Beiträge
    19
    Danke für deine Antwort!

    Was genau meinst du mit verschiedenen Speicherebenen? Also welche Ebenen sind das? Hast du vllt. einen Link, wo ich etwas darüber nachlesen kann?

    Ist C evtl. einfach die falsche Sprache für so einen Test?

  4. #4
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Speicherebenen: L1 Cache, L2 Cache, Ram, Swap auf HDD (ich hoffe, ich hab jetzt nichts übersprungen ). Und zur Sprache / Anwendung: Kommt halt sehr darauf an, was genau du machen willst. Ob die Anwendung eher realitätsbezogen sein soll, ob es nur auf den Speicher ankommt (bspw. Zugriffszeiten,...).

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.08.2004
    Beiträge
    19
    Ah okay, also wenn das herumkopieren, zwischen diesen Speicherebenen soviel CPU Last erzeugt, dann ist es genau das, was ich haben möchte. Ich dachte es gibt vielleicht noch logische Ebenen und der Code arbeitet dort auf der falschen Ebene.

    Der Code soll in der Tat einfach nur testen, wie schnell das System bestimmte Speicherblöcke hin- und herkopieren kann.

  6. #6
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320

    Lightbulb Literaturhinweis

    What every programmer should know about memory

    Die CPU ist zu 100% ausgelastet weil sie hauptsächlich auf die Daten aus dem RAM wartet.

    Gruss, Andy

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •