0xDEADBEEF

[RSS]
««« »»»

Energetická efektivita programovacích jazyků

21. 9. 2017

Soft­ware má dopad na svět. Po­zi­tivní i ne­ga­tivní. Tím ne­ga­tiv­ním je spo­třeba ener­gie, která někde musí být vy­ro­bená a vět­ši­nou je to z fo­sil­ních paliv. V roce 2015 byl Ev­rop­ský průměr kolem 0.35kg CO2 na vy­ro­be­nou ki­lowatt­ho­dinu. Jeden server s 1000W zdro­jem tedy za rok při­spěje ke 3 tunám CO2 v at­mo­sféře. To je něco, co bychom stále měli mít na srdci.

Ne­otře­lým ná­pa­dem bylo na­pří­klad po­sta­vit da­ta­cen­t­rum ze zrecyklo­va­ných mobilů, o kterém jsem se tu už zmi­ňo­val. Mo­bilní pro­ce­sory mají dobrý poměr vý­po­četní výkon per watt a navíc není třeba vy­rá­bět nový hard­ware.

Otáz­kou efek­ti­vity se také zabírá paper Energy Ef­fi­ci­ency across Pro­gra­m­ming Lan­gu­ages.

Vý­sle­dek je celkem ne­pře­kva­pivý: Rych­lejší jazyky, tedy ty ve kte­rých je možné napsat řešení, která vy­po­čítá vý­sle­dek co nej­rych­leji, spo­tře­bují méně ener­gie. Jde o kla­sické kan­di­dáty C, C++ a také mnohem no­vější Rust. Java se za nimi drží v závěsu. I když vztah mezi časem a ener­gií není zcela li­ne­ární, kom­pi­lo­vané jazyky jasně vedou v ab­so­lutní spo­třebě joulů.

Měření byla pro­ve­dena na drob­ných ben­chmar­cích a nikoli vel­kých pro­dukč­ních apli­ka­cích. Je tedy třeba brát čísla s re­zer­vou, jak to zmi­ňo­val Cliff Click zmi­ňo­val ve svém pod­castu, když mluvil o srov­nání Javy s C++. Na­pří­klad apli­kace na­psaná v PHP nemusí nutně spo­ly­kat 28x víc šťávy než její C pro­těj­šek, když vět­šinu času stráví če­ká­ním na da­ta­bázi, která je na­psaná ve vysoce op­ti­ma­li­zo­va­ném C++. Po­dobně tomu je s re­gu­lár­ními výrazy, kde i ne­e­fek­tivní in­ter­pre­to­vané jazyky po­u­ží­vají rychlé regex jádro.

Když už tu píšu o efek­ti­vitě, měl bych se taky zmínit o jejím pravém opaku – o bit­co­inu. Ten je nej­vět­ším pro­vi­nil­cem na poli zby­tečně pro­pá­lené ener­gie. Dnes celá síť spo­lyká víc ener­gie než dokáže vy­pro­du­ko­vat nuk­le­ární re­ak­tor a před­po­kládá se, že v roce to bude víc než celé Dánsko. To je děsivé číslo. Na­štěstí se za­čí­nají ob­je­vo­vat návrhy jak bit­co­inu po­dob­nou síť použít ke smys­lu­plné práci.

píše k47 (@kaja47, k47)