energi

Studie: Energiforbruket for populære programmeringsspråk er skyhøyt

Programmeringsspråket som har blitt en akseptert industristandard, bruker store mengder energi, ifølge en ny studie.

Språk som brukes til å utvikle for eksempel programvare, bruker ulike mengder energi, og et av de mest populære er spesielt energikrevende.
Språk som brukes til å utvikle for eksempel programvare, bruker ulike mengder energi, og et av de mest populære er spesielt energikrevende.

Det totale energiforbruket til de mest brukte programmeringsspråkene har blitt gransket, og Python er et av de minst energieffektive. Det viser en ny studie fra Spania, publisert i Software Quality Journal.

Dette lover ikke godt for fremtidens energiforbruk, ettersom bruken av Python fortsetter å vokse år for år. Målt i antall søk på Google har Python vært det mest populære språket siden midten av 2018. TIOBE-indeksen viser at bruken av Python har økt eksponentielt siden 2018.

Det er ikke programmeringsspråket i seg selv som bruker strøm, men maskinvaren programmene kjører på, sier Bent Thomsen, professor MSO ved Institut for Datalogi ved Aalborg Universitet.

– Man kan ikke si at programmeringsspråkene i seg selv er mer eller mindre strømkrevende. Man kan snakke om at koden skrevet i programmeringsspråkene bruker mer eller mindre energi. For å være helt presis, er det faktisk maskinkoden man får når man oversetter fra kode i et gitt programmeringsspråk til kjørbar kode, man måler på. I det øyeblikket du skal oversette koden, bruker kompilatoren noe strøm, men det er en annen sak, sier han

Testing av grafikkort og prosessor

For å undersøke energiforbruket til programmeringsspråk gransket forskerne 14 ulike programmeringsspråk.

Forskerne har tidligere brukt programvarebaserte målinger, men de mener at maskinvaretilnærmingen gir mer realistiske og detaljerte målinger.

Resultatene av studien er dårlig nytt for Python, ettersom det i gjennomsnitt tar nesten 100 ganger mer tid å utføre den samme oppgaven som C++. Ifølge studien bruker Python om lag 19.067 joule i gjennomsnitt.

Til målingen brukte de et instrument kalt Energy Efficiency Tester, EET, som har en samplingsfrekvens på 100 Hz og brukes til å måle det faktiske energiforbruket til maskinvaren, inkludert prosessoren og grafikkortet.

Målingene ble gjort ved å koble EET til for eksempel prosessoren og deretter teste dem med seks forskjellige algoritmer: Binary-trees, Fankuch-redux, Fasta, Mandelbrot, N-body og Spectral-norm. Hver algoritme kjøres 30 ganger på hver av komponentene for å få så nøyaktige resultater som mulig.

Men dette er urettferdig overfor noen av programmeringsspråkene, ifølge Bent Thomsen, ettersom de er mer effektive når de brukes over tid.

– De kjører det samme programmet 30 ganger, men hver gang kjører de det fra bunnen av slik at JIT-kompilatoren (just in time) ikke får tid til å bli varm. Programmeringsspråk som bruker denne typen kompilering, vil derfor komme dårligere ut, sier han.

Det er også et spørsmål om hvor representative algoritmene som brukes, er.

– Det er nok ikke mange programmerere som har behov for å inkludere mandelbrot eller fankuch-redux i applikasjonen sin, og det er nok heller ikke mange som ville skrevet denne typen programmer i Python, sier Thomsen.

Fremtiden til Python

Selv om forskerne mener at resultatene av undersøkelsen gir utviklere en mulighet til å ta informerte valg når de skal velge språk, er bruken av for eksempel Python fortsatt økende, til tross for den tilsynelatende dårlige rangeringen.

– Det er unektelig mye enklere å skrive kode i Python enn i C. Det er et høyere abstraksjonsnivå, noe som betyr at det er mange detaljer du ikke trenger å bekymre deg for. Det gjør deg mer produktiv som programmerer, sier Thomsen.

Du kan så å si jobbe raskere i Python. Og mange av KI-programmene som utvikles i dag, er også drevet av Python, men det er egentlig bare på overflaten, påpeker han.

– Du skriver ikke KI-programmene i Python, men du kaller dem opp i Python.

Det betyr at Python-koden driver de ulike biblioteksrutinene, mens selve utregningen faktisk gjøres i kode som er skrevet i C eller C++.

Derfor kan man ikke konkludere med at det er mest fornuftig å erstatte all programmering med den mest energieffektive, sier Thomsen.

– Det er et spørsmål om tid og effektivitet og hva koden skal brukes til, og det tar mer tid å skrive et godt C-program, sier han.

Artikkelen ble først publisert på Version 2 for deres abonnenter. Den er tilgjengelig på norsk for abonnenter av Ekstra gjennom vår samarbeidsavtale.

Powered by Labrador CMS