Laufzeit plot mit GNU < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:12 Mo 17.03.2014 | Autor: | fmath |
Hallo ihr lieben,
bin neu in der Programersprache C und sollte eine reine naive Matrix-Matrix Multiplikation durchfuehren was ich gemacht habe(also A*B= C) und dann dessen Laufzeit mit GNU plotten; nur weiss ich leider nicht wie diese funktioniert, vor allem weil ich nicht weiss (klingt vielleicht doof aber es ist so) was auf die X- bzw. Y-Achse kommt.
Danke fuer jede Hilfe.
Fmath
PS: Mein Programm kann ich auch im Not hochladen
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:36 Mo 17.03.2014 | Autor: | chrisno |
Auf die x-Achse kommt die Variable, die Du veränderst, auf die y-Achse die Variable, die Du misst.
Du veränderst die Größe der Matritzen, also kommt die auf die x-Achse. Dann muss Dein Programm die Laufzeit messen. der Wert wird auf der y-Achse aufgetragen.
Meinst Du das Programm GNU-Plot mit "mit GNU plotten"?
|
|
|
|
|
Hi!
Ein paar zusätzliche Tipps:
* Die Bibliothek time.h bietet den Befehl clock(), mit dem man recht feinschrittig Zeitpunkte ermitteln kann, und aus der Differenz aus zwei Zeitpunkten die verstrichene Zeit. Man muß das ganze noch durch ne Konstante teilen, weil diese Zeitpunkte nicht in Sekunden gegeben sind, aber das steht in dem Link.
* Heutige PCs regeln die Taktfrequenz je nach Last hoch und runter. Es könnte sein, daß die Matrixmultplikation ab einer gewissen Matrixgröße plötzlich schneller wird, weil die CPU nen Gang hoch schaltet. Hier hilft es, das Verändern der Frequenz abzuschalten, oder aber vor der eigentlichen Matrixmultiplikation, deren Dauer gemessen wird, zunächst zwei sehr große Matrizen zu multiplizieren, so daß der Computer schonmal Gas gibt.
* Wenn es darum geht, wie die Laufzeit von der Matrixmultiplikation abhängt, ist folgendes nicht so wichtig, aber man sollte es wissen, um sich nicht zu wundern. Die Last, die ein Prozess erzeugt, wird gerne als CPU-Zeit angegeben, also wie lange der Prozess die CPU voll belastet hat. Heutige Rechner haben mehr als eine CPU, und da werden die Zeiten aller CPUs addiert. Wenn du also einen Rechner mit vier CPUs hast, und einen Prozess, der alle vier CPUs voll auslastet, wird seine CPU-Zeit vier mal schneller hoch zählen, als die Zeit auf der Uhr an deiner Wand.
|
|
|
|