Optimizirajte za trajnost z Amazon CodeWhisperer | Spletne storitve Amazon

Optimizirajte za trajnost z Amazon CodeWhisperer | Spletne storitve Amazon

Ta objava raziskuje, kako Amazon Code Whisperer lahko pomaga pri optimizaciji kode za trajnost s povečano učinkovitostjo virov. Računalniško učinkovito kodiranje z viri je ena od tehnik, katere namen je zmanjšati količino energije, potrebne za obdelavo vrstice kode, in posledično pomaga podjetjem pri skupni porabi manj energije. V tej dobi računalništva v oblaku razvijalci zdaj izkoriščajo odprtokodne knjižnice in napredno procesorsko moč, ki jim je na voljo, da bi zgradili obsežne mikrostoritve, ki morajo biti operativno učinkovite, zmogljive in odporne. Vendar sodobne aplikacije pogosto sestavljajo obsežno kodo, ki zahteva precejšnje računalniške vire. Čeprav neposredni vpliv na okolje morda ni očiten, suboptimizirana koda povečuje ogljični odtis sodobnih aplikacij z dejavniki, kot so povečana poraba energije, dolgotrajna uporaba strojne opreme in zastareli algoritmi. V tej objavi odkrivamo, kako Amazon CodeWhisperer pomaga odpraviti te pomisleke in zmanjša okoljski odtis vaše kode.

Amazon CodeWhisperer je generativni spremljevalec kodiranja z umetno inteligenco, ki pospeši razvoj programske opreme z dajanjem predlogov na podlagi obstoječe kode in komentarjev v naravnem jeziku, s čimer zmanjša celotno razvojno prizadevanje in sprosti čas za razmišljanje, reševanje kompleksnih problemov in avtorsko diferencirano kodo. Amazon CodeWhisperer lahko pomaga razvijalcem poenostaviti njihove delovne tokove, izboljšati kakovost kode, zgraditi močnejše varnostne položaje, ustvariti robustne testne pakete in napisati računalniško virom prijazno kodo, ki vam lahko pomaga optimizirati za okoljsko trajnost. Na voljo je kot del Komplet orodij za kodo Visual Studio, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS lepiloin JetBrains IntelliJ IDEA. Amazon CodeWhisperer trenutno podpira Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, skriptno lupino, SQL in Scala.

Vpliv neoptimizirane kode na računalništvo v oblaku in ogljični odtis aplikacij

Infrastruktura AWS je 3.6-krat bolj energetsko učinkovita od mediane podatkovnih centrov podjetij v ZDA in do 5-krat bolj energetsko učinkovita od povprečnega evropskega podatkovnega centra podjetij. Zato lahko AWS pomaga zmanjšati ogljični odtis delovne obremenitve do 96 %. Zdaj lahko uporabite Amazon CodeWhisperer za pisanje kakovostne kode z zmanjšano porabo virov in energije ter izpolnite cilje razširljivosti, hkrati pa izkoristite energetsko učinkovito infrastrukturo AWS.

Povečana poraba virov

Neoptimizirana koda lahko povzroči neučinkovito uporabo virov računalništva v oblaku. Posledično bo morda potrebnih več virtualnih strojev (VM) ali vsebnikov, kar bo povečalo dodeljevanje virov, porabo energije in s tem povezan ogljični odtis delovne obremenitve. Morda boste naleteli na povečanja v naslednjem:

  • Izkoriščenost CPE – Neoptimizirana koda pogosto vsebuje neučinkovite algoritme ali postopke kodiranja, ki zahtevajo čezmerne cikle procesorja.
  • Poraba pomnilnika – Neučinkovito upravljanje pomnilnika v neoptimizirani kodi lahko povzroči nepotrebno dodeljevanje pomnilnika, sprostitev ali podvajanje podatkov.
  • Disk I/O operacije – Neučinkovita koda lahko izvede pretirane vhodno/izhodne (I/O) operacije. Na primer, če se podatki berejo z diska ali se nanj zapisujejo pogosteje, kot je potrebno, lahko to poveča uporabo V/I diska in zakasnitev.
  • Uporaba omrežja – Zaradi neučinkovitih tehnik prenosa podatkov ali podvojene komunikacije lahko slabo optimizirana koda povzroči prekomerno količino omrežnega prometa. To lahko povzroči večjo zakasnitev in povečano uporabo pasovne širine omrežja. Večja uporaba omrežja lahko povzroči višje stroške in potrebe po virih v primerih, ko so omrežni viri obdavčeni glede na uporabo, na primer pri računalništvu v oblaku.

Večja poraba energije

Aplikacije, ki podpirajo infrastrukturo, z neučinkovito kodo uporabljajo več procesorske moči. Prekomerna poraba računalniških virov zaradi neučinkovite, napihnjene kode lahko povzroči večjo porabo energije in proizvodnjo toplote, kar posledično zahteva več energije za hlajenje. Poleg strežnikov energijo porabljajo tudi hladilni sistemi, infrastruktura za distribucijo električne energije in drugi pomožni elementi.

Izzivi razširljivosti

Pri razvoju aplikacij lahko težave z razširljivostjo povzroči neoptimizirana koda. Takšna koda se morda ne bo učinkovito prilagajala, ko naloga raste, kar zahteva več virov in porabo več energije. To poveča energijo, ki jo porabijo ti fragmenti kode. Kot smo že omenili, ima neučinkovita ali potratna koda učinek mešanja v obsegu.

Skupni prihranek energije zaradi optimiziranja kode, ki jo stranke izvajajo v določenih podatkovnih centrih, je še večji, če upoštevamo, da imajo ponudniki oblakov, kot je AWS, na desetine podatkovnih centrov po vsem svetu.

Amazon CodeWhisperer uporablja strojno učenje (ML) in velike jezikovne modele za zagotavljanje priporočil kode v realnem času na podlagi izvirne kode in komentarjev naravnega jezika ter zagotavlja priporočila kode, ki bi lahko bila učinkovitejša. Učinkovitost uporabe infrastrukture programa je mogoče povečati z optimizacijo kode z uporabo strategij, vključno z algoritemskimi napredki, učinkovitim upravljanjem pomnilnika in zmanjšanjem nesmiselnih V/I operacij.

Generiranje kode, dokončanje in predlogi

Oglejmo si več situacij, v katerih je Amazon CodeWhisperer lahko uporaben.

Z avtomatizacijo razvoja ponavljajoče se ali kompleksne kode orodja za generiranje kode zmanjšajo možnost človeške napake, medtem ko se osredotočajo na optimizacije, specifične za platformo. Z uporabo uveljavljenih vzorcev ali predlog lahko ti programi izdelajo kodo, ki bolj dosledno upošteva najboljše prakse glede trajnosti. Razvijalci lahko izdelajo kodo, ki je v skladu z določenimi standardi kodiranja, kar pomaga zagotoviti bolj dosledno in zanesljivo kodo v celotnem projektu. Dobljena koda je lahko učinkovitejša in ker odstranjuje različice človeškega kodiranja, in je lahko bolj berljiva, kar izboljša hitrost razvoja. Samodejno lahko izvaja načine za zmanjšanje velikosti in dolžine aplikacijskega programa, kot je brisanje odvečne kode, izboljšanje shranjevanja spremenljivk ali uporaba metod stiskanja. Te optimizacije lahko pomagajo pri optimizaciji porabe pomnilnika in povečajo splošno učinkovitost sistema s krčenjem velikosti paketa.

Generativna AI lahko naredi programiranje bolj trajnostno z optimizacijo dodeljevanja virov. Celostni pogled na ogljični odtis aplikacije je pomemben. Orodja kot Profiler Amazon CodeGuru lahko zbira podatke o zmogljivosti za optimizacijo zakasnitve med komponentami. Storitev profiliranja pregleduje poteke kode in prepozna morebitne izboljšave. Razvijalci lahko nato ročno izboljšajo samodejno ustvarjeno kodo na podlagi teh ugotovitev za nadaljnje izboljšanje energetske učinkovitosti. Kombinacija generativne umetne inteligence, profiliranja in človeškega nadzora ustvarja povratno zanko, ki lahko nenehno izboljšuje učinkovitost kode in zmanjšuje vpliv na okolje.

Naslednji posnetek zaslona prikazuje rezultate, ustvarjene s programom CodeGuru Profiler v načinu zakasnitve, ki vključuje omrežje in disk I/O. V tem primeru aplikacija še vedno večino časa preživi v ImageProcessor.extractTasks (druga spodnja vrstica), skoraj ves čas notri pa je tečna, kar pomeni, da ni čakala na nič. Ta stanja niti si lahko ogledate tako, da iz načina CPE preklopite v način zakasnitve. To vam lahko pomaga pridobiti dobro predstavo o tem, kaj vpliva na čas stenske ure v aplikaciji. Za več informacij glejte Zmanjšanje ogljičnega odtisa vaše organizacije z Amazon CodeGuru Profiler.

slika

Ustvarjanje testnih primerov

Amazon Code Whisperer lahko pomaga predlagati testne primere in preveriti funkcionalnost kode z upoštevanjem mejnih vrednosti, robnih primerov in drugih možnih težav, ki jih bo morda treba preizkusiti. Poleg tega lahko Amazon CodeWhisperer poenostavi ustvarjanje ponavljajoče se kode za testiranje enot. Na primer, če morate ustvariti vzorčne podatke z uporabo stavkov INSERT, lahko Amazon CodeWhisperer ustvari potrebne vstavke na podlagi vzorca. Splošne zahteve po virih za testiranje programske opreme je mogoče zmanjšati tudi z identifikacijo in optimizacijo testnih primerov, ki zahtevajo veliko virov, ali odstranitvijo odvečnih. Izboljšani testni paketi lahko naredijo aplikacijo okolju prijaznejšo s povečanjem energetske učinkovitosti, zmanjšanjem porabe virov, zmanjšanjem odpadkov in zmanjšanjem ogljičnega odtisa delovne obremenitve.

Za več praktičnih izkušenj z Amazon CodeWhisperer glejte Optimizirajte razvoj programske opreme z Amazon CodeWhisperer. Objava prikazuje priporočila kode Amazon CodeWhisperer v Amazon SageMaker Studio. Prav tako prikazuje predlagano kodo, ki temelji na komentarjih za nalaganje in analizo nabora podatkov.

zaključek

V tej objavi smo izvedeli, kako lahko Amazon CodeWhisperer razvijalcem pomaga pri pisanju optimizirane, bolj trajnostne kode. Z uporabo naprednih modelov ML Amazon CodeWhisperer analizira vašo kodo in nudi prilagojena priporočila za izboljšanje učinkovitosti, kar lahko zmanjša stroške in pomaga zmanjšati ogljični odtis.

S predlaganjem manjših prilagoditev in alternativnih pristopov Amazon CodeWhisperer omogoča razvijalcem znatno zmanjšanje porabe virov in emisij brez žrtvovanja funkcionalnosti. Ne glede na to, ali želite optimizirati obstoječo bazo kode ali zagotoviti, da so novi projekti učinkoviti z viri, je Amazon CodeWhisperer lahko neprecenljiva pomoč. Če želite izvedeti več o virih Amazon CodeWhisperer in AWS Sustainability za optimizacijo kode, razmislite o naslednjih naslednjih korakih:


O avtorjih

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Isha Dua je višji arhitekt rešitev s sedežem na območju zaliva San Francisco. Pomaga poslovnim strankam AWS pri rasti z razumevanjem njihovih ciljev in izzivov ter jih usmerja, kako lahko oblikujejo svoje aplikacije v oblaku, hkrati pa zagotavljajo odpornost in razširljivost. Navdušena je nad tehnologijami strojnega učenja in okoljsko trajnostjo.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Ajjay Govindaram je višji arhitekt rešitev pri AWS. Dela s strateškimi strankami, ki uporabljajo AI/ML za reševanje kompleksnih poslovnih problemov. Njegove izkušnje so pri zagotavljanju tehničnega vodenja in pomoči pri oblikovanju za skromne do obsežne uvedbe aplikacij AI/ML. Njegovo znanje sega od arhitekture aplikacij do velikih podatkov, analitike in strojnega učenja. Uživa v poslušanju glasbe med počitkom, doživetjih na prostem in preživljanju časa s svojimi najdražjimi.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Erick Irigoyen je arhitekt rešitev pri Amazon Web Services, ki se osredotoča na stranke v industriji polprevodnikov in elektronike. Tesno sodeluje s strankami, da bi razumel njihove poslovne izzive in ugotovil, kako je mogoče uporabiti AWS za doseganje njihovih strateških ciljev. Njegovo delo je bilo osredotočeno predvsem na projekte, povezane z umetno inteligenco in strojnim učenjem (AI/ML). Preden se je pridružil AWS, je bil višji svetovalec v Deloitteovi ordinaciji za napredno analitiko, kjer je vodil delovne tokove v več poslih po Združenih državah, ki so se osredotočali na analitiko in umetno inteligenco/ML. Erick je diplomiral iz poslovanja na Univerzi v San Franciscu in magistriral iz analitike na Državni univerzi Severne Karoline.

Časovni žig:

Več od Strojno učenje AWS