Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Rechenleistung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Rechenleistung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
MRMad33
unregistriert
Rechenleistung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo alle zusammen ,hat jemand tipps wie ich das bei der 1 berechnen kann?

MRMad33 hat dieses Bild (verkleinerte Version) angehängt:
Bildschirmfoto 2018-05-07 um 21.04.34.png

07.05.2018 21:06
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Da ist die Rede von einem Programmcode. Ist da nicht ein konkreter eventuell noch gegeben?

Gruß
Marco
09.05.2018 08:04 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MrMad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nein es ist kein Code gegeben .

Weisst du wie ich das bei der 1 ) berechnen kann?
10.05.2018 17:58
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok, ich hatte die Tabelle nicht richtig angeschaut.
In der mittleren Spalte steht, wie häufig der entsprechende Befehlstypen ausgeführt wird. Du musst also nur einen gewichteten Mittelwert bilden.
Wenn Du die Anzahl aller Befehle ausrechnest, musst Du ja die Zahlen in der mittleren Spalte alle addieren. Wenn Du die Gesamtzahl der Cycles ausrechnen willst, musst Du eine Summe bilden über das Produkt aus jeweils der mittleren und der rechten Spalte.
Die Gesamtzahl der Cycles geteilt durch die Gesamtzahl der ausgeführten Befehle ist die durchschnittliche CPI-Rate.

Gruß
Marco
11.05.2018 08:57 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MRMad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Durschnitt : (50000+75000+10000+5000)/4 = 35000

2)? Weisst du wie ich da rechnen muss?
11.05.2018 11:35
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Diese Rechnung ist Unsinn. Du sollst nicht die durchschnittliche Anzahl von Befehlen je Kategorie ausrechnen, was sollte diese Zahl bringen?
Weißt Du, was CPI bedeutet?

Gruß
Marco
11.05.2018 14:08 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier eine Seite, die erklärt, wie man einen gewichteten Mittelwert ausrechnen kann:
https://de.wikihow.com/Einen-gewichteten...lwert-berechnen
Dort dann besonders Teil 4 "Gewichtete Mittelwerte ohne Prozente" anschauen.

Gruß
Marco
11.05.2018 14:33 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MrBad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

1)Soll ich alle Befehle addieren und durch 2 teilen ?
11.05.2018 19:07
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von MrBad33
1)Soll ich alle Befehle addieren und durch 2 teilen ?

Wie kommst Du denn darauf?
Also, ich versuchs etwas mehr zu erklären:
CPI heißt "cycles per instruction", also wieviele Takte für die Ausführung eines Befehls gebraucht werden. In der Tabelle werden 4 Befehlstypen unterschieden und die Anzahl der Takte für jeden Typ ist angegeben.
Außerdem wurde ein Beispielprogramm betrachtet und ausgezählt, wie häufig Befehle verwendet werden, die in die jeweilige Kategorie fallen.
Mal ein einfacheres Beispiel: Angenommen Du hättest nur zwei Typen von Befehlen, eine Art benötigt nur einen Takt zur Ausführung, die zweite Art allerdings 5.
Angenommen, vom ersten Typ werden 10 ausgeführt und vom zweiten nur 2. Dann brauchst Du ja insgesamt zur Ausführung des gesamten Programms (also 10 mal Typ 1 und zweimal Typ 2) dann einfach:
10 * 1 + 2 * 5 = 20
Also 20 Zyklen.
Wenn man eine mittlere CPI-Rate über das gesamte Programm hinweg berechnen will, muss man die Gesamtzahl der Zyklen (also die eben ausgerechnete 20) durch die Gesamtzahl der Instruktionen, hier also 10 plus 2 insgesamt 12 Instruktionen.
Der durchschnittliche Wert wären dann eben 20 (Gesamtzahl Zyklen) geteilt durch 12 (Gesamtzahl an Instruktionen), also 5/3.
Verstehst Du diese Rechnung? Wenn nein: Wo hängts? Wenn ja: Probiere dieselbe Rechnung mit den Werten aus der Aufgabe durchzuführen!

Gruß
Marco
11.05.2018 19:37 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MrMad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Durschnitt : (50000*2+75000+10000*4+5000*3)

und das durch was teilen?
11.05.2018 23:23
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Durch die Gesamtzahl der Instruktionen.
12.05.2018 00:47 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MrMad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also durch 4 teilen ?
12.05.2018 15:27
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nein: Wieviele Instruktionen hat das Programm? Wenn schon der erste Typ von Instruktionen 50.000 mal vorkommt...
Irgendwie habe ich den Eindruck, Du verstehst gar nicht, um was es geht.
Hier nochmal ein Erklärungsversuch:
Du hast ein Programm, das während seines Ablaufs verschiedene Instruktionen ausführt. Diese greifen z. B. auf den Hauptspeicher zu (Load/Store) und brauchen dafür jeweils 2 Takte, oder sie führen eine Ganzzahl-Rechnung in der ALU durch, so was geht recht schnell und es kann eine Rechnung pro Takt ausgeführt werden. Dann machen wieder andere Gleitkomma-Rechnungen, was recht aufwändig ist und deshalb 4 Takte benötigt. Außerdem muss das Programm auch häufiger Sprünge machen (z. B. bedingte Verzweigungen und so), was auch viel Zeit braucht, (häufig deshalb, weil die Pipeline verworfen werden muss).
Vom ersten Typ (Load/Store) führt das Beispielprogramm 50.000 Instruktionen in seinem Verlauf aus. Weil diese Instruktionen alle jeweils 2 Takte benötigen, brauchen alle 50.000 Instruktionen zusammen 100.000 Takte. Außerdem werden noch 75.000 ALU-Befehle ausgeführt, die jeweils nur einen Takt benötigen, also sind das insgesamt 75.000 Takte. Die 10.000 Gleitkomma-Befehle brauchten jeweils 4 Takte, also insgesamt 40.000 Takte. Sprünge sind es 5.000 mit jeweils 3 Takten, also 15.000 Takte.
Die erste Frage ist jetzt: Wieviele Takte werden durchschnittlich pro Instruktion gebraucht? Wenn die langsamsten Befehle 4 Takte brauchen, und die schnellsten einen Takt, dann muss das (gewichtete) Mittel ja irgendwo zwischen 1 und 4 liegen. Wenn das Programm häufiger schnelle Befehle ausführt, dann ist durchschnittlich auch die CPI-Rate niedriger und umgekehrt.

Was ist also die Gesamtzahl der Instruktionen im Programm? Wieviele Takte (Cycles) benötigt das Programm zur Ausführung? Letzteres durch ersteres geteilt ist die Antwort auf a).

Gruß
Marco
13.05.2018 00:08 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MRMad33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich glaube ich verstehe dich jetzt:
Durschnitt : (50000*2+75000+10000*4+5000*3) /(50000+75000+10000+5000)


Das geht klar oder ?

Man könnte es ja auch einzeln für jedes so machen:

1 Fall : 50000*2/(50000) = .....


Aber beides geht oder ?
13.05.2018 18:34
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von MRMad33
Ich glaube ich verstehe dich jetzt:
Durschnitt : (50000*2+75000+10000*4+5000*3) /(50000+75000+10000+5000)


Das geht klar oder ?

Das sieht gut aus! Daumen hoch

Zitat:
Original von MRMad33
Man könnte es ja auch einzeln für jedes so machen:

1 Fall : 50000*2/(50000) = .....


Aber beides geht oder ?

Ich verstehe nicht so ganz, wie das gehen soll. Bei Deiner Rechnung kommt ja für den ersten Typ dann einfach 2 raus (die 50000 sind ja im Zähler wie im Nenner, also kürzen sie sich weg), genau so wie für die anderen Typen. Was hast Du dann gewonnen?
Der Witz bei dem gewichteten Mittel ist ja gerade, dass die CPI für die Befehlstypen, die häufiger verwendet werden, auch stärker gewichtet in den Mittelwert gehen.

Gruß
Marco
13.05.2018 22:30 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Rechenleistung