Entwickler-Ecke
Off Topic - Stromverbrauch von Programmen
Tilo - Sa 04.03.06 15:09
Titel: Stromverbrauch von Programmen
Ich hol mal weit aus:
Bei Integrierten Schaltungen kann ja der Stromverbrauch ermittelt werden.
EIn Compter besteht im Grund aus SEHR vielen IS. Bestimmte Befhle lösen bestimme Reaktionen aus. Wäre es da dann auch möglich (Wenn auch nur theoretisch) den Stromverbrauch eines Algoritmus zu ermitteln und so den Stromverbrauch eines PRogrammes zu ermitteln? Wenn besonders für Laptopnutzer sehr nützlich.
F34r0fTh3D4rk - Sa 04.03.06 15:23
nur wenns allein über den prozessor läuft, oder man nimmt windows im leerlauf und zieht dann das vom gesamt bedarf mit programm ab, aber ich weiß nicht in wie fern das möglich ist, ohne extra hardware auf jedenfall nicht
Larus - Sa 04.03.06 15:49
dein Algoritmus verbraucht aber auch schon wieder CPU auslastung wenn man danach ginge :D
digi_c - Sa 04.03.06 16:37
Naja also bei nem Notebook steht ja die Leistungsaufnahme und Akkuleistung dran. Du kannst ja auch ermitteln, wie lange das im Durchschnitt läuft=>Bestätigung der Leistungsaufnahme. Dann könntest schauen, wie lange das Notebook durchhält, wenn dein Algo in DauerSchleife läuft.
Oder ein Strommesgerät von der verbraucherzentrale ausleihen und dazwischenschleifen.
Aber das ist alles sehr dynamisch da sich CPUs komplett/teilweise hoch/runter regeln, das OS Komponenten abschaltet/HDD, Lüfter mehr oder weniger laufen,... ich glaube nicht, das da wirklich was sinvolles raus kommt. Die eine CPU zieht mehr, die andere weniger, verarbeitet mehere Threads besser/weniger gut,... eine generelle Aussage kann da doch eigentlich nicht rauskommen. Dann müsste man sagen "um den Algo 100.000 mal zu durchlaufen braucht ein AMD64 10sec und zieht dabei X Watt, ein P4 so und viel...".
Aber den Verstand sagt mir, das mein Compi beim
BOINC mehr Strom zieht als im Leerlauf ;)
Wozu brauchst du denn das?
Tilo - Sa 04.03.06 21:50
Ich meinte nicht den Stroverbrauch während des Betriebes zu messen.
Wenn das so rüber kam entschuldige ich mich für meine ungenaue Schilderung.
Mein Gedanke war in etwa:
Für eine Operation kann der (theoretische) Stromverbrauch für eine IS ermittelt werden. Die Transistoren "schalten" ja mit Elektronen.
Wenn zum Beipiel für eine Addition zweier Zahlen z.B. 20 Elektronen benötigt werden, so werden für 50 Additionen 50*20 Elektronen benötigt.
Meine Frage ist kann man bei einem feststehenden Algorithmus im Voraus ermitteln wieviele Elektronen benötigt werden für die Schaltvorgänge.
Das das in der Praxis auf einem laufenden Rechner nicht der Wirklichkeit entspricht ist mir Klar.
Sors - Sa 04.03.06 22:09
Da müsstest, du so den Energieverbrauch des Bauteils und die anliegende Spannung während der Addition ermitteln.
1 Joule = 6,241E18 Elektronvolt. Dividierst das ganze durch das Produkt der anliegenden Spannung und der Elektronenmasse 9,10938188E-31 kg und schon hast du die durchschnittliche Anzahl der Elektronen, die bei einer Addition durch das Bauteil fließen. (Theoretisch)
reichemi - Sa 04.03.06 22:34
Tilo hat folgendes geschrieben: |
Wenn zum Beipiel für eine Addition zweier Zahlen z.B. 20 Elektronen benötigt werden, so werden für 50 Additionen 50*20 Elektronen benötigt. |
ich denke, dass kann man nicht so ohne weiteres derart vereinfachen.... immerhin fällt dabei auch "jede menge" overhead an, register hin und her schaufeln, speicher laden, I/O, caching, .... (ok, I/O könnte man größzügigerweise vernachlässigen, wenn man davon ausgeht dass der algorithmus komplett im RAM abläuft ;) )
wenn ich kurz drüber nachdenke, dann fallen mir zwei dinge ein, warum es wohl nix werden wird:
1. die hardware der computer ist viel zu komplex: wenn du es schon auf "elektronen-ebene" berechnen willst, musst du ja auch die verarbeitung auf elektronen-ebene betrachten, sprich erstmal eine CPU von der heutigen komplexität bis ins detail verstanden haben und berücksichtigen (was, wie schon von
digi_c beschrieben, extrem typ-abhängig ist) ... von den vorgängen zwischen einzelnen komponenten ganz zu schweigen (register <-> cache <-> ... <-> RAM)
2. die software ist viel zu komplex: es wird sicherlich nicht darauf hinauslaufen, nur additionen oder multiplikationen zu betrachten... ein algorithmus kann ja alles mögliche sein, von den wildesten mathematischen operationen bis hin zu OOP .... dann müsstest du jeden algorithmus schon in assembler betrachten, und selbst da gibt es mehr als genug (von den ganzen erweiterungen wie MMX, SSE, 3DNow usw. abgesehen)
kommt aber sicherlich immer darauf an, wie genau man es haben möchte... wenn schon grobe schätzungen mit mittelwerten von strommessungen reichen, dann ist es sicherlich möglich (die sinn-frage stellt sich natürlich dann umso mehr ;) )
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!