Számítógépes program energiatakarékossága

Az energia fogyasztás a szoftver határozza meg a számítógépet a rendszer alkotó is. Számos fejlesztési elv alkalmazható a szoftverek fogyasztásának korlátozására . Manapság, mivel az adatközponttól az okostelefonig naponta használják a számítástechnikai eszközöket , az energia- megtakarítás minden eddiginél fontosabbá vált.

Leltár

Becslések szerint a számítástechnikai eszközök a teljes villamos energia 5,3% -át fogyasztják. Az alacsony százalék ellenére ez jelentős mennyiségű energiának felel meg , és ennek a fogyasztásnak a legkisebb megtakarítása lehetővé teheti annak csökkentését, pozitív hatással az ökológiára és a gazdaságra .

Számos eszköz létezik a fogyasztás csökkentésére. Az egyik megközelítés az alkatrészek energiafogyasztásának javítása . A másik az, hogy a szoftvert úgy tervezzük meg , hogy kevesebbet használjon. Ez a megközelítés lehetővé teszi a fogyasztás csökkentését anélkül, hogy szükségszerűen új eszközöket terveznének, mivel a számítógép építése által előállított energia magas.

Meghatározás

Az energia fogyasztás egy számítástechnikai eszköz határozza meg az energia költség szükséges hardver elemek a feladatuk végrehajtásához. Ezt a tevékenységet olyan szoftver futtatása hozza létre, amely maga is kapcsolódik a felhasználó tevékenységéhez.

Erő A sebesség, amellyel a munkát, kifejezett watt ⇒ . Energia A szerves idő és erő, kifejezve joule ⇒ .

A hardverkomponensek energiaköltségét a szoftver szabályozza, ezért többféle módon lehet csökkenteni a hardver általános felhasználását a szoftver működtetésével. Íme néhány ezek közül.

Fejlesztendő területek

Java gyűjtemény típusa

Tanulmányi kontextus

Tanulmányt végeztek a Java típusú Collection osztályok energiaprofiljainak meghatározására . Ez a tanulmány azt mutatja, hogy a nem megfelelő Gyűjtemény osztály kiválasztása 300% -kal növelheti az energiafogyasztást, míg a megfelelő osztály kiválasztása 38% -kal csökkentheti a fogyasztást.

A Java a szoftvervilágban széles körben használt nyelv hordozhatóságának köszönhetően, ami hatásos nyelvvé teszi az energiafogyasztás területén. A tanulmány azt jelzi, hogy egy Java program futtatásakor az energiafogyasztás a végrehajtott műveletekhez kapcsolódik, nem pedig a memóriahasználathoz. A hurkok , így közvetve az ilyen gyűjtemények osztályai , erősen befolyásolják a program műveleteinek összetettségét .

Az energiafogyasztás joule- ban történő méréséhez a GreenMiner infrastruktúrát használták egy androidos okostelefonon . Létrehoztak egy üres alkalmazást, amelyen futtatták a JUnit egység tesztjeit . Ezek a vizsgálatok elemzik különösen gyűjtemények használatát esetekben bejegyzései 1 és 5000 példány a 13 másik lista méretben .  

Ezt a vizsgálatot a következő könyvtárakkal végezték el: Java Collections Framework (JCF), (ACC) és Trove listákon , asszociatív tömbökön és halmazokon .

Értékelés Beszúrás a lista elejére

A gyökeres fa (ACC) többet fogyaszt, mint a többi, például 5000 elemnél ez 7 joule közeli fogyasztást jelent , míg a többi nagyjából 1 és 2,5 joule között van .

A Láncolt Lista (JCF) az összes listaméretből a legjobb.

A többi típusú gyűjtemény hasonló pontszámokkal rendelkezik, akár 2000 tételig, majd kisebb különbségeket mutat a nagyobb méreteknél. A következő típusú gyűjtemények a legnagyobb fogyasztástól a legalacsonyabbig: tömb (JCF), TIntArrayList (Trove), TIntLinkedList (Trove).

Beszúrás a lista közepére

A TIntLinkedList többet fogyaszt, mint a többi, például 5000 elemnél ez 25 joule-hoz közeli fogyasztást jelent , míg a többi nagyjából 0 és 10 joule között van .

A TIntArrayList és a tömb (JCF) fogyasztják a legkevésbé, és legalább 5000 elem ( 0 és 3 joule közötti) fogyasztás közelében vannak .

A többi 5 és 10 joule között van .

Beszúrás a lista végére

A gyökeres fa (ACC) többet fogyaszt, mint a többi, például 5000 elemnél ez 7 joule közeli fogyasztást jelent , míg a többi nagyjából 0 és 2 joule között van .

A TIntArrayList, a TIntLinkedList, a tömb és a láncolt lista a legkevésbé fogyaszt, és legalább 5000 elem (0 és 2 joule közötti) fogyasztásában közel vannak . Még mindig láthatjuk, hogy a TIntArrayList többnyire a legalacsonyabb a fogyasztásban.

Iterálj egy listán

Az összes gyűjtemény energiafogyasztása nagyon hasonló, 5000 elemnél 8 és 10 joule között van .

Véletlen hozzáférés egy listához

A TIntLinkedList többet fogyaszt, mint a többi, például 5000 elemnél ez 30 joule- nál nagyobb fogyasztást jelent , míg a többi nagyjából 5 és 15 joule között van .

A TIntArrayList, a tömb (JCF), és a gyökeres fa (ACC) a legkevésbé időigényes és közel vannak a fogyasztás akár legalább 5000 elemeket (közötti 5 és 10 joule ).

A láncolt lista 10 és 15 joule között van .

Mérleg

A cikk egy gyűjtemény fogyasztási minőségét értékelte, 1-től a legjobbig 6-ig, a legrosszabbig. Itt vannak az eredmények:

Beszúrás Ismétlés Véletlenszerű hozzáférés
Kezdetben Között A végén
Tábla 4 2 3 1 2
TIntArrayList 3 1 1 2 1
Láncolt lista 1 3 4 2 3
TIntLinkedList 2 5. 2 2 3
Gyökeres fa 5. 4 5. 3 3
Beszúrás Ismétlés Kérés
Hash asztal 1 1 1
TIntHashMap 2 2 2
HashedMap 2 2 2
LinkedHashMap 2 2 2
LinkedMap 3 2 2
TreeMap 4 2 3
Beszúrás Ismétlés Kérés
HashSet 2 1 1
TIntHashSet 1 1 1
MapBackedSet 4 1 1
LinkedHashSet 3 1 1
ListOrderedSet 5. 1 1
TreeSet 6. 1 2

Általánosságban elmondható, hogy a TIntArrayList a legjobb lista , majd a tömb , a hash tábla a legjobb asszociatív tömb, és a Hash-halmaz a legjobb set majd TIntHashSet.

Algoritmusok rendezése

Tanulmányi kontextus

Tanulmányt végeztek okostelefonokon , hogy bizonyos rendezési algoritmusok alapján mérjék a fogyasztásukat . A probléma az, hogy a fedélzeti eszközök gyakran akkumulátorral működnek, és ezek élettartama ezért az alkatrészeik által elfogyasztott energiától függ. A tanulmány olyan rendezési algoritmusokat céloz meg, amelyeket a felhasználók nemcsak közvetlenül, hanem közvetve más algoritmusok is használnak, a CPU és a memória energiafogyasztásának mérésével .

A gyors rendezés egy rendezési algoritmus, amely több könyvtárat és nyelvet szabványosít . Meggyőződés, hogy az energiafogyasztás közvetlenül függ a szoftver teljesítményétől, de más tényezők, például a memóriahasználat vagy a rekurzió is hatással vannak. Az ebben a tanulmányban végzett kísérletek azt mutatják, hogy a gyors válogatás lehet a leggyorsabb, de nem utolsósorban energiaigényes.

Tanult algoritmusok:

Értékelés

Fogyasztói eredmény joule a rendezési algoritmusok , mint processzorok ATMEGA 16, 32 és 128:

ATMega 16 ATMega 32 ATMega 128
Gyors rendezés 1.76 2.81 6.29
Rekurzív gyors rendezés 0,29 1.74 1.34
Halom szerint rendezni 2.32 2.40 1.42
Rendezés kiválasztás szerint 4.58 4.80 7.35
Rendezés beszúrás szerint 0,85 0,89 0,19
Buborék válogatás 3.32 3.47 5.01
Rekurzív egyesítési rendezés n / A 2.52 3.79
Egyesítés rendezése 1.21 1.26 1.77
Shaker / koktél válogatása 1.24 1.29 0.12
Héjválogatás 1.19 1.25 0,87

Az ATMega 16, 32 és 128 processzorok szerinti rendezési algoritmusok végrehajtási idejének milliszekundumban elért eredménye :

ATMega 16 ATMega 32 ATMega 128
Gyors rendezés 2520 259640 237534
Rekurzív gyors rendezés 33120 32240 201220
Halom szerint rendezni 224920 224920 224920
Rendezés kiválasztás szerint 442040 444120 443720
Rendezés beszúrás szerint 81640 81600 81640
Buborék válogatás 321320 321220 321220
Rekurzív egyesítési rendezés 44920 233920 233920
Egyesítés rendezése 118400 118400 118400
Shaker / koktél válogatása 117400 117400 117400
Héjválogatás 115800 115800 115800
Mérleg

A tanulmány azt mutatja, hogy végső soron a memória használata kihat az energiafogyasztásra. Az olyan algoritmusok, mint a beszúrás rendezése, azonban hatékonyabbak, mint mások.

Egy másik megközelítés, amelyet a kísérletek kimutattak, az, hogy a felhasznált adattípusok hatással vannak a fogyasztásra, például a lebegőpontos típusok többet fogyasztanak, mint az egész típusúak .

Tervezési minta

Tanulmányi kontextus

A szoftverarchitektúrában a tervezési minta a modulok által létrehozott szerepek és műveletek elrendezése. Ezek a tervezők és programozók által elismert minták olyan folyamatokat írnak le, amelyek lehetővé teszik a projekt megszervezését és strukturálását.

E különböző tervezési minták energiafogyasztásának felmérése érdekében számos tanulmány próbapadokat állított fel. Fejlesztettek egy FPGA-ból és egy számítógépből álló eszközt az energiaingadozások pontos mérésére.

Értékelés

Minden egyes darab kód alkalmazása előtt és után egy tervezési minta került végrehajtásra többször annak érdekében, hogy konzisztens adatokat. Itt vannak az eredmények:

A különböző tervezési minták energiafelhasználása
Tervezési minta Fogyasztás előtt

(joule-ban)

Fogyasztás után

(joule-ban)

Százalékos különbség
Absztrakt gyár 87,78 106,69 21.55
Szerkesztő 111,75 113.08 1.19
Készült 118.13 118.06 -0,07
Prototípus 99,60 98,68 -0,93
Szingli 98.70 99.11 0,42
Híd 99,78 99.54 -0,24
Kompozit objektum 97.15 102.14 5.14
Díszítő 13.92 113.13 712,89
Flyweight 92,89 38.94 -58,08
Meghatalmazott 104.33 66.28 -36,47
Rendelt 98,32 96.53 -1,82
Közvetítő 120.55 109.02 -9,56
Megfigyelő 61.62 99,95 62.20
Stratégia 115,73 115.52 -0,18
Látogató 104,89 97.04 -7,49
Mérleg

Az eredmények azt mutatják, hogy a tervezési minták többsége alig befolyásolja az energiafogyasztást . Érdekes azonban megjegyezni, hogy a Flyweight és a Proxy tervezési minták 58% -ot, illetve 36% -ot takarítanak meg.

Másrészt a Observer és a Decorator tervezési minták 62, illetve 712% -kal több energiát fogyasztanak. Ennek ellenére optimalizálni lehet e tervezési minták energiafelhasználását .

Az Observer tervezési mintája optimalizálható a megfigyelt módszerek és memória-hozzáférések számának csökkentésével . Kevesebb hívás lehetővé teszi, hogy a megfigyelőket ritkábban értesítsék a megfigyelt intézkedésekről.

A tervezés főnök (vagy dekoratőr) lehet több energiát hatékonyabb létrehozásával alosztálya a díszített osztály , amely tartalmazni fogja az összes attribútum és módszerek a díszített osztály . Így a díszített tárgy példányosításának helyettesítése az alosztály tárgyával energiát takarít meg .

Tanulmányi kontextus

Az SSL protokollt széles körben használják az Internet biztonságos kommunikációjára . Az SSL alapvető szolgáltatásokat kínál a titkosításhoz , a forrás hitelesítéshez és a kicserélt adatok integritásának védelméhez. Gyakran szoftverfedvényként használják annak érdekében, hogy elkerüljék az alkalmazásprotokollok, például a HTTP mélyreható módosítását . Ezt a protokollt gyakran használják, energiafogyasztásának enyhének kell lennie, mivel bármilyen típusú eszköz használja, ideértve az elemekkel felszerelt és ezért alacsony autonómiájú eszközöket is.

Annak érdekében, hogy mérni az SSL szóló energia fogyasztás , próbapadon jött létre a tanulmányok ideje alatt a energiafogyasztását biztonsági protokollokat. Ez egy Linux alatt működő kézibeszélőből áll, amely közvetlenül csatlakozik egy mérőeszközhöz. Az ügyfélként szolgáló kézi számítógép közvetlenül kommunikál a szerverrel az OpenSSL projekt SSL megvalósításával . Az ügyfél folyamatosan csatlakozik annak érdekében, hogy az akkumulátor ugyanazon a töltöttségi szinten maradjon , hogy a mérések következetesek legyenek.

Értékelés

Először az elemzés az energiafogyasztásra összpontosít a különböző SSL- csereméreteken . Az eredmények azt mutatják, hogy kisebb cserékkel, 256 kiló bájtokkal , a kliens és a szerver közötti hitelesítés az energia 98,9% -át használja fel, a többit a cserefázis titkosításához használják. A nagyobb csere nagy, akár 1 mega bájt , plusz egy titkosítási fázis is elfogy, ezzel az üzenetmérettel rájövünk, hogy a hitelesítési szakasz a teljes fogyasztás több mint 19,6% -át emészti fel.

Azonban a fázisok hitelesítési és titkosítási csere segítségével számos algoritmus a kriptográfia , ami érdekel bennünket itt a használata SSL . Ezért végeztek méréseket az SSL tiszta fogyasztásának meghatározására . Három méretben csere 1 kiló bájt , kilos- 100 bájt és 1 mega byte , az eredmények azt mutatják, hogy az SSL fogyaszt 41% -ról 45,8% a teljes felhasznált energia cserék. A többit a különböző titkosítási algoritmusok használják .

A hitelesítés különböző módon, különböző titkosítási algoritmusok segítségével végezhető el, a tanulmány kimutatta, hogy a csere méretétől függően a hitelesítés energiafogyasztása eltér az RSA titkosítás vagy kriptográfia elliptikus görbéken történő használatától , sőt a különböző verzióktól is ezek. A kis üzenetek, kevesebb, mint 20 kilos- bájt , célszerű használni az ECC-3DES-SHA változata a elliptikus görbe kriptográfiai , nagyobb üzenetek célszerű használni a változat a RSA -RC5-SHA1 az RSA titkosítás .

Mérleg

A tanulmány azt mutatja, hogy az energiatakarékosság érdekében több paramétert kell változtatni, amelyek:

Megjegyzések és hivatkozások

  1. (in) itu ICTs for e-Environment a Nemzetközi Telekommunikációs Unió honlapja. lásd a 78. oldalt.
  2. (en) a digitális technológia energiája , a lowtechmagazine.com oldalon
  3. Samir Hasan , Zachary King , Munawar Hafiz és Mohammed Sayagh , „  Java gyűjteményes osztályok energiaprofiljai  ”, a 38. Nemzetközi Szoftvertechnikai Konferencia anyagai, ACM, iCSE '16,1 st január 2016, P.  225–236 ( ISBN  9781450339001 , DOI  10.1145 / 2884781.2884869 , online olvasás , hozzáférés : 2016. november 29. )
  4. "  Mi a Java, és miért van szükségem rá?  » , A www.java.com webhelyen (hozzáférés : 2016. november 29. )
  5. Abram Hindle , Alex Wilson , Kent Rasmussen és E. Jed Barlow , „  GreenMiner: Hardveralapú bányászszoftver-adattárak Szoftverenergia-fogyasztási keretrendszere  ” , A bányászszoftver- adattárakkal foglalkozó 11. munkakonferencia anyagai, ACM, mSR 20141 st január 2014, P.  12–21 ( ISBN  9781450328630 , DOI  10.1145 / 2597073.2597097 , online olvasás , hozzáférés : 2016. december 6. )
  6. "  JUnit  " , a junit.org címen (hozzáférés : 2016. november 29. )
  7. Java Collections Framework
  8. Apache gyűjtemények keretrendszer
  9. Trove
  10. ACC
  11. JCF
  12. C. Bunse , H. Höpfner , E. Mansour és S. Roychoudhury , „  Az adatrendezési algoritmusok energiafogyasztásának feltárása beágyazott és mobil környezetekben  ”, 2009. tizedik nemzetközi konferencia a mobil adatkezelésről: rendszerek, szolgáltatások és köztes szoftverek ,1 st május 2009, P.  600–607 ( DOI  10.1109 / MDM.2009.103 , online olvasás , hozzáférés : 2016. november 29. )
  13. (in) "  központi feldolgozó egység  " , Wikipédia ,2016. november 23( online olvasás , konzultáció 2016. november 29-én )
  14. C. Sahin , F. Cayci , ILM Gutiérrez és J. Clause , „  Initial explorations on design model energy use  ”, 2012 első nemzetközi workshop a zöld és fenntartható szoftverekről (ZÖLD) ,1 st június 2012, P.  55–61 ( DOI  10.1109 / GREENS.2012.6224257 , online olvasás , hozzáférés : 2016. november 29. )
  15. Adel Noureddine és Ajitha Rajan , „  A tervezési minták energiafogyasztásának optimalizálása  ”, Nemzetközi Szoftverfejlesztési Konferencia ,1 st május 2015( online olvasás , konzultáció 2016. november 29-én )
  16. Nachiketh R. Potlapally , Srivaths Ravi , Anand Raghunathan és Niraj K. Jha , „  A biztonsági protokollok energiafogyasztásának elemzése  ”, Az alacsony fogyasztású elektronikai és formatervezési szimpózium 2003. évi közleménye , ACM, iSLPED '03,1 st január 2003, P.  30–35 ( ISBN  158113682X , DOI  10.1145 / 871506.871518 , online olvasás , hozzáférés : 2016. november 29. )
  17. NR Potlapally , S. Ravi , A. Raghunathan és NK Jha , „  A kriptográfiai algoritmusok és biztonsági protokollok energiafogyasztási jellemzőinek vizsgálata  ”, IEEE Transactions on Mobile Computing , vol.  5, n o  21 st február 2006, P.  128–143 ( ISSN  1536-1233 , DOI  10.1109 / TMC.2006.16 , online olvasás , hozzáférés : 2016. november 29. )

Bibliográfia

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">