Optimaliseer voor duurzaamheid met Amazon CodeWhisperer | Amazon-webservices

Optimaliseer voor duurzaamheid met Amazon CodeWhisperer | Amazon-webservices

Dit bericht onderzoekt hoe Amazon Code Whisperer kan helpen bij code-optimalisatie voor duurzaamheid door een grotere hulpbronnenefficiëntie. Computationeel hulpbronnenefficiënt coderen is een techniek die tot doel heeft de hoeveelheid energie die nodig is om een ​​coderegel te verwerken te verminderen en, als gevolg daarvan, bedrijven te helpen in het algemeen minder energie te verbruiken. In dit tijdperk van cloud computing maken ontwikkelaars nu gebruik van open source-bibliotheken en de geavanceerde verwerkingskracht die tot hun beschikking staat om grootschalige microservices uit te bouwen die operationeel efficiënt, performant en veerkrachtig moeten zijn. Moderne toepassingen bestaan ​​echter vaak uit uitgebreide code, die aanzienlijke computerbronnen vergt. Hoewel de directe impact op het milieu misschien niet duidelijk is, vergroot sub-geoptimaliseerde code de COXNUMX-voetafdruk van moderne applicaties door factoren als een verhoogd energieverbruik, langdurig hardwaregebruik en verouderde algoritmen. In dit bericht ontdekken we hoe Amazon CodeWhisperer deze zorgen helpt aanpakken en de ecologische voetafdruk van uw code verkleint.

Amazon CodeWhisperer is een generatieve AI-codeerpartner die de softwareontwikkeling versnelt door suggesties te doen op basis van de bestaande code en commentaar in natuurlijke taal, waardoor de algehele ontwikkelingsinspanning wordt verminderd en tijd wordt vrijgemaakt voor brainstormen, het oplossen van complexe problemen en het schrijven van gedifferentieerde code. Amazon CodeWhisperer kan ontwikkelaars helpen hun workflows te stroomlijnen, de kwaliteit van de code te verbeteren, sterkere beveiligingsposities op te bouwen, robuuste testsuites te genereren en computervriendelijke code te schrijven, die u kan helpen bij het optimaliseren voor ecologische duurzaamheid. Het is beschikbaar als onderdeel van de Toolkit voor Visual Studio-code, AWS-Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS lijmen JetBrains IntelliJ IDEA. Amazon CodeWhisperer ondersteunt momenteel Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-scripting, SQL en Scala.

Impact van niet-geoptimaliseerde code op cloud computing en de ecologische voetafdruk van applicaties

De infrastructuur van AWS is 3.6 keer energiezuiniger dan de mediaan van de onderzochte Amerikaanse bedrijfsdatacenters en tot 5 keer energiezuiniger dan het gemiddelde Europese bedrijfsdatacenter. Daarom kan AWS helpen de CO96-voetafdruk van de werklast tot XNUMX% te verlagen. Je kunt Amazon CodeWhisperer nu gebruiken om kwaliteitscode te schrijven met minder hulpbronnen- en energieverbruik, en te voldoen aan schaalbaarheidsdoelstellingen terwijl je profiteert van de energie-efficiënte AWS-infrastructuur.

Verhoogd gebruik van hulpbronnen

Niet-geoptimaliseerde code kan resulteren in een ineffectief gebruik van cloud computing-bronnen. Als gevolg hiervan zijn mogelijk meer virtuele machines (VM's) of containers nodig, waardoor de toewijzing van middelen, het energieverbruik en de daarmee samenhangende COXNUMX-voetafdruk van de werklast toenemen. U kunt stijgingen tegenkomen in de volgende gevallen:

  • CPU-gebruik – Niet-geoptimaliseerde code bevat vaak inefficiënte algoritmen of codeerpraktijken waarvoor buitensporige CPU-cycli nodig zijn.
  • Geheugenconsumptie – Inefficiënt geheugenbeheer in niet-geoptimaliseerde code kan resulteren in onnodige geheugentoewijzing, ongedaan maken van de toewijzing of gegevensduplicatie.
  • Schijf-I/O-bewerkingen – Inefficiënte code kan overmatige invoer/uitvoer (I/O)-bewerkingen uitvoeren. Als gegevens bijvoorbeeld vaker dan noodzakelijk van schijf worden gelezen of naar schijf worden geschreven, kan dit het I/O-gebruik en de latentie van de schijf vergroten.
  • Netwerk gebruik – Als gevolg van ineffectieve technieken voor gegevensoverdracht of dubbele communicatie kan slecht geoptimaliseerde code een overmatige hoeveelheid netwerkverkeer veroorzaken. Dit kan leiden tot een hogere latentie en een groter gebruik van de netwerkbandbreedte. Een groter netwerkgebruik kan resulteren in hogere kosten en behoefte aan middelen in situaties waarin netwerkbronnen worden belast op basis van gebruik, zoals bij cloud computing.

Hoger energieverbruik

Infrastructuurondersteunende applicaties met inefficiënte code gebruiken meer verwerkingskracht. Overmatig gebruik van computerbronnen als gevolg van inefficiënte, opgeblazen code kan resulteren in een hoger energieverbruik en een hogere warmteproductie, waardoor er vervolgens meer energie nodig is voor koeling. Naast de servers verbruiken ook de koelsystemen, de infrastructuur voor stroomdistributie en andere hulpelementen energie.

Schaalbaarheidsuitdagingen

Bij de ontwikkeling van applicaties kunnen schaalbaarheidsproblemen worden veroorzaakt door niet-geoptimaliseerde code. Dergelijke code kan mogelijk niet effectief worden geschaald naarmate de taak groeit, waardoor meer middelen nodig zijn en meer energie wordt verbruikt. Dit verhoogt de energie die door deze codefragmenten wordt verbruikt. Zoals eerder vermeld, heeft inefficiënte of verspillende code een versterkend effect op schaal.

De totale energiebesparing door het optimaliseren van de code die klanten in bepaalde datacenters uitvoeren, wordt nog groter als we bedenken dat cloudproviders zoals AWS tientallen datacenters over de hele wereld hebben.

Amazon CodeWhisperer maakt gebruik van machine learning (ML) en grote taalmodellen om in realtime code-aanbevelingen te geven op basis van de originele code en commentaar in natuurlijke taal, en doet code-aanbevelingen die efficiënter kunnen zijn. De efficiëntie van het gebruik van de infrastructuur van het programma kan worden verhoogd door de code te optimaliseren met behulp van strategieën zoals algoritmische verbeteringen, effectief geheugenbeheer en een vermindering van zinloze I/O-bewerkingen.

Code genereren, voltooien en suggesties

Laten we verschillende situaties onderzoeken waarin Amazon CodeWhisperer nuttig kan zijn.

Door de ontwikkeling van repetitieve of complexe code te automatiseren, minimaliseren tools voor het genereren van code de kans op menselijke fouten, terwijl ze zich richten op platformspecifieke optimalisaties. Door gevestigde patronen of sjablonen te gebruiken, kunnen deze programma's code produceren die consistenter voldoet aan de beste praktijken op het gebied van duurzaamheid. Ontwikkelaars kunnen code produceren die voldoet aan bepaalde coderingsstandaarden, waardoor ze gedurende het hele project consistentere en betrouwbaardere code kunnen leveren. De resulterende code kan efficiënter zijn en omdat menselijke coderingsvariaties worden verwijderd en beter leesbaar zijn, wordt de ontwikkelingssnelheid verbeterd. Het kan automatisch manieren implementeren om de omvang en lengte van het applicatieprogramma te verkleinen, zoals het verwijderen van overtollige code, het verbeteren van de variabele opslag of het gebruik van compressiemethoden. Deze optimalisaties kunnen helpen bij het optimaliseren van het geheugenverbruik en verhogen de algehele systeemefficiëntie door de pakketgrootte te verkleinen.

generatieve AI heeft het potentieel om de programmering duurzamer te maken door de toewijzing van middelen te optimaliseren. Het is belangrijk om holistisch te kijken naar de COXNUMX-voetafdruk van een toepassing. Gereedschappen zoals Amazon CodeGuru-profiler kan prestatiegegevens verzamelen om de latentie tussen componenten te optimaliseren. De profileringsservice onderzoekt coderuns en identificeert mogelijke verbeteringen. Ontwikkelaars kunnen vervolgens de automatisch gegenereerde code handmatig verfijnen op basis van deze bevindingen om de energie-efficiëntie verder te verbeteren. De combinatie van generatieve AI, profilering en menselijk toezicht creëert een feedbacklus die de code-efficiëntie voortdurend kan verbeteren en de impact op het milieu kan verminderen.

De volgende schermafbeelding toont de resultaten die zijn gegenereerd door CodeGuru Profiler in de latentiemodus, inclusief netwerk- en schijf-I/O. In dit geval brengt de applicatie nog steeds het grootste deel van zijn tijd door ImageProcessor.extractTasks (tweede onderste rij), en bijna altijd binnen is dat beloopbaar, wat betekent dat hij nergens op zat te wachten. U kunt deze threadstatussen bekijken door vanuit de CPU-modus naar de latentiemodus te gaan. Dit kan u helpen een goed idee te krijgen van wat de tijd van de wandklok van de toepassing beïnvloedt. Voor meer informatie, zie Verklein de COXNUMX-voetafdruk van uw organisatie met Amazon CodeGuru Profiler.

beeld

Het genereren van testgevallen

Amazon Code Whisperer kan helpen bij het voorstellen van testgevallen en het verifiëren van de functionaliteit van de code door rekening te houden met grenswaarden, randgevallen en andere potentiële problemen die mogelijk moeten worden getest. Bovendien kan Amazon CodeWhisperer het maken van repetitieve code voor het testen van eenheden vereenvoudigen. Als u bijvoorbeeld voorbeeldgegevens moet maken met behulp van INSERT-instructies, kan Amazon CodeWhisperer de benodigde invoegingen genereren op basis van een patroon. De totale resourcevereisten voor het testen van software kunnen ook worden verminderd door resource-intensieve testcases te identificeren en te optimaliseren of overbodige testcases te verwijderen. Verbeterde testsuites hebben het potentieel om de applicatie milieuvriendelijker te maken door de energie-efficiëntie te verhogen, het verbruik van hulpbronnen te verminderen, verspilling te minimaliseren en de COXNUMX-voetafdruk van de werklast te verkleinen.

Voor een meer praktische ervaring met Amazon CodeWhisperer, raadpleeg Optimaliseer softwareontwikkeling met Amazon CodeWhisperer. Het bericht toont de code-aanbevelingen van Amazon CodeWhisperer in Amazon SageMaker Studio. Het demonstreert ook de voorgestelde code op basis van opmerkingen voor het laden en analyseren van een dataset.

Conclusie

In dit bericht hebben we geleerd hoe Amazon CodeWhisperer ontwikkelaars kan helpen geoptimaliseerde, duurzamere code te schrijven. Met behulp van geavanceerde ML-modellen analyseert Amazon CodeWhisperer uw code en geeft gepersonaliseerde aanbevelingen voor het verbeteren van de efficiëntie, waardoor de kosten kunnen worden verlaagd en de ecologische voetafdruk kan worden verkleind.

Door kleine aanpassingen en alternatieve benaderingen voor te stellen, stelt Amazon CodeWhisperer ontwikkelaars in staat het gebruik van hulpbronnen en de uitstoot aanzienlijk te verminderen zonder dat dit ten koste gaat van de functionaliteit. Of je nu een bestaande codebasis wilt optimaliseren of ervoor wilt zorgen dat nieuwe projecten efficiënt met hulpbronnen omgaan, Amazon CodeWhisperer kan een hulpmiddel van onschatbare waarde zijn. Voor meer informatie over Amazon CodeWhisperer- en AWS Sustainability-bronnen voor code-optimalisatie kunt u de volgende volgende stappen overwegen:


Over de auteurs

Optimaliseer voor duurzaamheid met Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Ischa Dua is een Senior Solutions Architect gevestigd in de San Francisco Bay Area. Ze helpt zakelijke klanten van AWS groeien door hun doelen en uitdagingen te begrijpen, en begeleidt hen hoe ze hun applicaties op een cloud-native manier kunnen ontwerpen en tegelijkertijd veerkracht en schaalbaarheid kunnen waarborgen. Ze is gepassioneerd door machine learning-technologieën en ecologische duurzaamheid.

Optimaliseer voor duurzaamheid met Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Ajjay Govindaram is Senior Solutions Architect bij AWS. Hij werkt met strategische klanten die AI/ML gebruiken om complexe bedrijfsproblemen op te lossen. Zijn ervaring ligt in het geven van technische leiding en ontwerpondersteuning voor bescheiden tot grootschalige implementaties van AI/ML-applicaties. Zijn kennis reikt van applicatie-architectuur tot big data, analytics en machine learning. Hij luistert graag naar muziek terwijl hij rust, het buitenleven ervaart en tijd doorbrengt met zijn dierbaren.

Optimaliseer voor duurzaamheid met Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Erick Irigoyen is een Solutions Architect bij Amazon Web Services en richt zich op klanten in de halfgeleider- en elektronica-industrie. Hij werkt nauw samen met klanten om hun zakelijke uitdagingen te begrijpen en te identificeren hoe AWS kan worden ingezet om hun strategische doelen te bereiken. Zijn werk was vooral gericht op projecten gerelateerd aan kunstmatige intelligentie en machinaal leren (AI/ML). Voordat hij bij AWS kwam, was hij Senior Consultant bij Deloitte's Advanced Analytics-praktijk, waar hij werkstromen leidde bij verschillende opdrachten in de Verenigde Staten, waarbij hij zich richtte op Analytics en AI/ML. Erick heeft een BS in Business van de Universiteit van San Francisco en een MS in Analytics van de North Carolina State University.

Tijdstempel:

Meer van AWS-machine learning