瀏覽代碼

Nearly finished simu2

Joshua Rutschmann 8 年之前
父節點
當前提交
0260a7415d
共有 1 個文件被更改,包括 28 次插入5 次删除
  1. 28
    5
      hw4/simu2/ANSWERS.md

+ 28
- 5
hw4/simu2/ANSWERS.md 查看文件

@@ -1,10 +1,33 @@
1
-# Warmup
2 1
 
2
+# Simulation 2 - Antworten
3 3
 
4
-# Antworten
4
+Diese Simulation wurde auf einem Laptop mit 8GB RAM, einer 8GB swapfile und 4 Prozessorkernen ausgeführt.
5 5
 
6 6
 
7
-1. ​
8
-2. Direkt nach dem Ausführen von ./mem 1024 ging der freie Speicher ständig *gegen 0* und der virtuelle Speicher hat sich zu Begin um ~100000 erhöht. Sobald wir das mem-Programm (mit Ctrl-C) beendet haben, ist der Freie Speicher (free) von ~36 auf ~946812 gesprungen. Anfangs waren aber "nur" ~800000 bei free zu sehen. Der freie Speicher hat sich also vergrößert.
9
-3. Bei ./mem 4000 waren auf dem Rechner (mit 8GB RAM) gab es absolut kein swap-in / swap-out. Es sei denn, der freie Speicher von den gesamten 8GB war kleiner als die ~4GB. Unter normaler Last war erst bei ./mem 700 eine deutlicher Swap sichtbar. Bei jedem der Werte war jedoch der erste *loop* immer langsamer. Bei 4000 war er etwa 40% länger, bei 6000 war er etwa 65% länger und bei 
7
+1. Wenn man *mem* mit auch nur mit 1 MB Speicher aufruft, dann geht die CPU Auslastung eines Kerns auf 100%.
8
+
9
+   Im Idle Zustand war die user-time bei ~1%. Bei nur einem laufenden mem-Programm betrug die user-time ~25%. Bei 3 laufenden Instanzen waren es ~80% und bei 4 ~99% user-time.
10
+
11
+   Das klingt absolut logisch, da der Prozessor des Systems 4 Kerne hat. Denn wenn auf jedem Kern ein mem-Programm läuft, dann hat das Bertriessystem keinen eigenen Kern und die prozentuale sys-time wird winzig.
12
+
13
+2. Direkt nach dem Ausführen von ./mem 1024 hat sich der freie Speicher um ~1.050.000 Byte verringert und die Spalte swpd hat sich nicht verändert, sondern blieb auf 0. Sobald wir das mem-Programm (mit Ctrl-C) beendet haben, ist der freie Speicher (free) fast wieder auf den Urprungswert gesprungen. Es fehlten ~250 Byte. Der freie Speicher hat sich danach also verkleinert.
14
+
15
+   Auf der Workstation wurde bereits bei 1024 Byte *geswapped* und der freie Speicher war nach dem Beenden des Programms größer.
16
+
17
+3. Bei ./mem 4000 gab es auf dem Rechner (mit 8GB RAM) absolut kein swap-in / swap-out. Es sei denn, der freie Speicher von den gesamten 8GB war kleiner als die ~4GB.
18
+
19
+   Unter normaler Last war erst bei ./mem 7000 ein deutlicher swap-in und -out sichtbar. Bei jedem der Werte war jedoch der erste *loop* immer langsamer. Durschnittlich war er oft ~50% langsamer.
20
+
21
+   Im ersten Loop
22
+
10 23
 4. Die CPU Auslastung durch das mem-Programm ist immens. Wenn man es auf dem Laptop ausführt, drehen direkt die Lüfter hoch. Doch wie zu erwarten und im Quellcode zu sehen, ist das C-Programm nicht *multi-threaded*. In einem beliebigen System Monitor (z.B. htop) sieht man, dass nur ein Kern ausgelastet ist.
24
+
25
+   Die BlockIOs
26
+
27
+5. Bei 4000 Byte braucht der erste loop 1070 ms und alle restlichen 745ms
28
+
29
+   Da bereits beim Aufruf von ./mem 8192 ein Segmentation Fault auftritt, war es nicht möglich über die Grenze des physikalischen 8GB Speichers (8192 kByte) zu gehen. Der Rest dieser Aufgabe ist also nicht wirklich beantwortbar.
30
+
31
+   Bei ./mem 8191 muss allerdings auch schon massiv *geswapped* werden. Der erste Loop braucht 6 Sekunden und die folgenden mehr als 60 Sekunden. Die Bandbreite in Loop 0 war noch bei 1317 MB/s in Loop 1 schon 128 MB/s und in den folgenden Loops ~110 MB/s. Man merkt dass nun die Festplatte der *bottleneck* ist, da das Programm kaum noch CPU Leistung benötigt.
32
+
33
+6. Bei 14584 schlägt die Speicheralloziierung fehl

Loading…
取消
儲存