17 april 2024 932 woorden, 4 min. gelezen

Energie-efficiënte software: een bron van concurrentievermogen

Door Pierre-Nicolas Schwab Gepromoveerd in marketing, directeur van IntoTheMinds
Energiezuinigheid is een concept dat ook op IT van toepassing is. In dit artikel ontwikkel ik het idee dat het kiezen van een softwareoplossing op basis van de programmeertaal productiviteits- en financiële voordelen kan opleveren.

Cloud computing is een trend geworden. Bedrijven van diverse omvang hebben hun software nu draaien op infrastructuren zoals AWS, Azure en Google Cloud, waar ze computercapaciteit huren. Echter, voor al deze bedrijven is het niet in hun financieel belang om u te helpen besparen op computertijd, omdat ze daardoor geld zouden verliezen. In dit artikel onderzoek ik het concept van energie-efficiënte software en leg ik uit waarom eco-programmeren ook goed is voor uw portemonnee.

Neem contact op met het onderzoeksbureau IntoTheMinds

Wanneer u software in de cloud draait, loopt u het risico om op een dag geconfronteerd te worden met onverwachte kosten. U bent niet beschermd tegen een plotselinge stijging van uw kosten als gevolg van het al dan niet legitieme gebruik van CPU’s (zie de video hieronder).

Daarom is het belangrijk om rekening te houden met de programmeertalen die u gebruikt, omdat deze van invloed zijn op de verwerkingssnelheid van uw operaties.

Programmeertaal beïnvloedt energieverbruik

Er bestaat een baanbrekend onderzoek naar de energie-efficiëntie van programmeertalen.
De methodologie vergelijkt het geheugengebruik en de uitvoeringssnelheid van 10 programmeertalen (Perl, Python, Ruby, PHP, C, C++, Lua, tcl, javascript en Java). Deze aanpak is zinvol voor het evalueren van het energieverbruik, omdat een snellere uitvoering en een kleinere geheugenbelasting over het algemeen resulteren in een lager CPU-verbruik.

energiezuinigheid Uitvoeringstijd

Vergelijking van verschillende programmeertalen op basis van de studie die in het artikel wordt aangehaald.

Om u een idee te geven van de schaal, heb ik mij op het onderzoek gebaseerd om een paar orden van grootte te berekenen.

Uitvoeringstijd

    • C is 100 keer sneller dan Python
    • C++ is 6 tot 7 keer sneller dan Java
    • Perl is 10 keer sneller dan Java

Dit geeft u een idee van de talen die u kunt kiezen als u zich wilt richten op eco-programmeren (ik weet niet of die term bestaat, maar hij lijkt me heel toepasselijk).

Geheugengebruik

Hoewel het gebruik van geheugen op zichzelf geen directe energieverbruikende activiteit is, kan het wel op twee niveaus een milieu-impact hebben. Allereerst impliceert efficiënt geheugengebruik dat er geen extra RAM aan uw machines toegevoegd hoeft te worden (dat is duur en voor de productie van een elektronisch onderdeel is veel water nodig). Ten tweede leidt het gebruik van geheugen tot snellere berekeningen in vergelijking met het lezen vanaf een harde schijf.

    • C gebruikt 1,5% van het geheugen dat Python gebruikt.
    • C++ gebruikt 2% van het geheugen dat Python gebruikt.
    • Python en Perl gebruiken 3% van het geheugen dat Java nodig hebben

C is de meest energie-efficiënte taal

Van alle geanalyseerde talen presteerde C het beste. En waarom is dat het geval? Wel, omdat het een low-level taal is die, wanneer goed begrepen en correct geïmplementeerd, een betere controle over hardwarebronnen mogelijk maakt. Deze efficiëntie resulteert in hogere uitvoeringssnelheden en minimaal geheugengebruik.
Dit is precies waar we momenteel naar zouden moeten streven. Echter, tegenwoordig worden maar heel weinig softwaretoepassingen ontwikkeld in low-level talen.


In bepaalde situaties kan het verstandig zijn om de meest resource-intensieve taken lokaal uit te voeren in plaats van in de cloud.


Wat zijn de praktische implicaties voor uw bedrijf?

Wat zijn de praktische implicaties voor uw bedrijf? Het is in het belang van het bedrijf om goed geoptimaliseerde software te gebruiken die weinig middelen vereist. In de eerste plaats zal dit tijd besparen. Maar ik zou nog verder willen gaan en stellen dat, waar mogelijk, het bedrijf zijn meest resource-intensieve berekeningen lokaal zou moeten uitvoeren in plaats van in de cloud.

Tijdwinst

Laten we eerst praten over tijdswinst. In 2023 hebben we een enquête gehouden onder 400 IT-managers in bedrijven die data science toepassen. Voor 47% van de respondenten was rekenkracht een van hun prioriteiten voor de toekomstige implementatie van oplossingen binnen hun bedrijf

energiezuinigheid Financiële winst

Marktonderzoeksbureau IntoTheMinds ondervroeg 400 IT-managers in 4 landen (Frankrijk, Duitsland, het VK en de VS) over de verwachte verbeteringen in de toekomst van dataoplossingen.

Als u een trouwe lezer bent van deze blog, herinnert u zich misschien mijn benchmarks tussen verschillende ETL-oplossingen. Eén daarvan, Anatella, viel op vanwege zijn uitstekende prestaties. Mijn tests toonden prestatiewinsten tot x20. Dit komt doordat Anatella is geprogrammeerd met low-level talen (C, C++ maar ook Assembleur). De concurrenten gebruiken technologieën die met name op Java zijn gebaseerd en konden het daarom niet bijbenen.
Ik vind daarom dat alle IT-managers moeten uitzoeken welke talen worden gebruikt voor het programmeren van de commerciële softwareoplossingen die ze aanschaffen.

Raadpleeg ons voor uw IT-marktonderzoek

Financiële winst

Ongeacht het soort software ben ik van mening dat het belangrijk is om te onthouden dat het gebruik ervan in de cloud mogelijk niet altijd een verstandige financiële beslissing is. Aangezien het businessmodel van cloudproviders draait om het verkopen van computerminuten, wat zouden zij er dan bij te winnen hebben om de verwerking van uw activiteiten te versnellen?

energiezuinigheid Financiële winst

IntoTheMinds vroeg 400 IT-managers naar het betalingsmodel dat zij graag zouden zien voor hun data-oplossing.

Vooral bij parallel computing toont de wet van Amdahl dat de marginale snelheidswinst afneemt met het aantal processoren. Steeds meer processors inzetten (en dus steeds meer geld uitgeven) zal uiteindelijk geen financieel aantrekkelijke oplossing zijn voor uw zwaarste bewerkingen.

Daarom vind ik het in bepaalde gevallen verstandig om te overwegen de meest resource-intensieve taken lokaal uit te voeren in plaats van in de cloud. Op die manier vermijdt u niet alleen een terugkerende rekening van uw cloudprovider, maar ook de stress van onvoorspelbare kosten aan het einde van de maand. Ik spreek uit ervaring, omdat ik dit probleem al eerder heb opgelost voor een klant.



Posted in Data en IT, Strategie.

Plaats uw mening

Je e-mailadres zal niet getoond worden. Vereiste velden zijn gemarkeerd met *