Ottimizza per la sostenibilità con Amazon CodeWhisperer | Servizi Web di Amazon

Ottimizza per la sostenibilità con Amazon CodeWhisperer | Servizi Web di Amazon

Questo post esplora come Amazon Code Whisperer può aiutare con l'ottimizzazione del codice per la sostenibilità attraverso una maggiore efficienza delle risorse. La codifica computazionalmente efficiente in termini di risorse è una tecnica che mira a ridurre la quantità di energia richiesta per elaborare una riga di codice e, di conseguenza, aiutare le aziende a consumare meno energia in generale. Nell’era del cloud computing, gli sviluppatori stanno ora sfruttando le librerie open source e la potenza di elaborazione avanzata a loro disposizione per creare microservizi su larga scala che devono essere efficienti dal punto di vista operativo, performanti e resilienti. Tuttavia, le applicazioni moderne spesso consistono in codice esteso, che richiede notevoli risorse di elaborazione. Anche se l’impatto ambientale diretto potrebbe non essere evidente, il codice non ottimizzato amplifica l’impronta di carbonio delle applicazioni moderne attraverso fattori come l’aumento del consumo energetico, l’utilizzo prolungato dell’hardware e algoritmi obsoleti. In questo post scopriamo come Amazon CodeWhisperer aiuta ad affrontare queste preoccupazioni e a ridurre l'impatto ambientale del tuo codice.

Amazon CodeWhisperer è un compagno di codifica IA generativa che accelera lo sviluppo del software fornendo suggerimenti basati sul codice esistente e sui commenti in linguaggio naturale, riducendo lo sforzo di sviluppo complessivo e liberando tempo per il brainstorming, la risoluzione di problemi complessi e la creazione di codice differenziato. Amazon CodeWhisperer può aiutare gli sviluppatori a semplificare i flussi di lavoro, migliorare la qualità del codice, creare strategie di sicurezza più solide, generare robuste suite di test e scrivere codice computazionalmente intuitivo, che può aiutarti a ottimizzare per la sostenibilità ambientale. È disponibile come parte di Toolkit per codice di Visual Studio, AWS Cloud9, JupyterLab, Amazon Sage Maker Studio, AWS Lambda, Colla AWSe JetBrains IntelliJ IDEA. Amazon CodeWhisperer attualmente supporta Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, scripting Shell, SQL e Scala.

Impatto del codice non ottimizzato sul cloud computing e sull'impronta di carbonio delle applicazioni

L'infrastruttura di AWS è 3.6 volte più efficiente dal punto di vista energetico rispetto alla media dei data center aziendali statunitensi esaminati e fino a 5 volte più efficiente dal punto di vista energetico rispetto alla media dei data center aziendali europei. Pertanto, AWS può contribuire a ridurre l'impronta di carbonio del carico di lavoro fino al 96%. Ora puoi utilizzare Amazon CodeWhisperer per scrivere codice di qualità con un utilizzo ridotto delle risorse e del consumo energetico e soddisfare gli obiettivi di scalabilità beneficiando al tempo stesso dell'infrastruttura AWS ad alta efficienza energetica.

Aumento dell'utilizzo delle risorse

Il codice non ottimizzato può comportare un utilizzo inefficace delle risorse del cloud computing. Di conseguenza, potrebbero essere necessari più macchine virtuali (VM) o contenitori, aumentando l’allocazione delle risorse, il consumo di energia e la relativa impronta di carbonio del carico di lavoro. Potresti riscontrare aumenti nei seguenti casi:

  • Utilizzo della CPU – Il codice non ottimizzato spesso contiene algoritmi inefficienti o pratiche di codifica che richiedono cicli di CPU eccessivi per essere eseguiti.
  • Consumo di memoria – Una gestione inefficiente della memoria in un codice non ottimizzato può comportare un’allocazione, deallocazione o duplicazione dei dati non necessaria.
  • Operazioni di I/O su disco – Il codice inefficiente può eseguire un numero eccessivo di operazioni di input/output (I/O). Ad esempio, se i dati vengono letti o scritti su disco più frequentemente del necessario, è possibile aumentare l'utilizzo dell'I/O del disco e la latenza.
  • Utilizzo della rete – A causa di tecniche di trasmissione dati inefficaci o di comunicazioni duplicate, un codice scarsamente ottimizzato può causare una quantità eccessiva di traffico di rete. Ciò può portare a una latenza più elevata e a un maggiore utilizzo della larghezza di banda della rete. Un maggiore utilizzo della rete può comportare maggiori spese e necessità di risorse in situazioni in cui le risorse di rete vengono tassate in base all'utilizzo, come nel cloud computing.

Maggiore consumo di energia

Le applicazioni che supportano l'infrastruttura con codice inefficiente utilizzano più potenza di elaborazione. L’uso eccessivo delle risorse di calcolo a causa di un codice inefficiente e eccessivo può comportare un maggiore consumo di energia e produzione di calore, che di conseguenza richiede più energia per il raffreddamento. Oltre ai server, consumano energia anche i sistemi di raffreddamento, l’infrastruttura per la distribuzione dell’energia e altri elementi ausiliari.

Sfide di scalabilità

Nello sviluppo di applicazioni, i problemi di scalabilità possono essere causati da codice non ottimizzato. Tale codice potrebbe non adattarsi in modo efficace man mano che l'attività cresce, richiedendo più risorse e utilizzando più energia. Ciò aumenta l'energia consumata da questi frammenti di codice. Come accennato in precedenza, un codice inefficiente o dispendioso ha un effetto cumulativo su vasta scala.

Il risparmio energetico derivante dall'ottimizzazione del codice eseguito dai clienti in determinati data center è ulteriormente aggravato se prendiamo in considerazione che i fornitori di servizi cloud come AWS hanno dozzine di data center in tutto il mondo.

Amazon CodeWhisperer utilizza l'apprendimento automatico (ML) e modelli linguistici di grandi dimensioni per fornire consigli sul codice in tempo reale in base al codice originale e ai commenti in linguaggio naturale e fornisce consigli sul codice che potrebbero essere più efficienti. L'efficienza nell'utilizzo dell'infrastruttura del programma può essere aumentata ottimizzando il codice utilizzando strategie che includono avanzamenti algoritmici, gestione efficace della memoria e riduzione delle operazioni I/O inutili.

Generazione, completamento e suggerimenti del codice

Esaminiamo diverse situazioni in cui Amazon CodeWhisperer può essere utile.

Automatizzando lo sviluppo di codice ripetitivo o complesso, gli strumenti di generazione del codice riducono al minimo la possibilità di errore umano concentrandosi sulle ottimizzazioni specifiche della piattaforma. Utilizzando modelli o modelli consolidati, questi programmi possono produrre codice che aderisce in modo più coerente alle migliori pratiche di sostenibilità. Gli sviluppatori possono produrre codice conforme a particolari standard di codifica, contribuendo a fornire un codice più coerente e affidabile durante l'intero progetto. Il codice risultante potrebbe essere più efficiente poiché rimuove le variazioni della codifica umana e può essere più leggibile, migliorando la velocità di sviluppo. Può implementare automaticamente modi per ridurre le dimensioni e la lunghezza del programma applicativo, come eliminare il codice superfluo, migliorare l'archiviazione delle variabili o utilizzare metodi di compressione. Queste ottimizzazioni possono aiutare a ottimizzare il consumo di memoria e aumentare l'efficienza complessiva del sistema riducendo le dimensioni del pacchetto.

AI generativa ha il potenziale per rendere la programmazione più sostenibile ottimizzando l’allocazione delle risorse. È importante considerare in modo olistico l'impronta di carbonio di un'applicazione. Strumenti come Profilatore Amazon CodeGuru può raccogliere dati sulle prestazioni per ottimizzare la latenza tra i componenti. Il servizio di profilazione esamina le esecuzioni del codice e identifica potenziali miglioramenti. Gli sviluppatori possono quindi perfezionare manualmente il codice generato automaticamente in base a questi risultati per migliorare ulteriormente l'efficienza energetica. La combinazione di intelligenza artificiale generativa, profilazione e supervisione umana crea un ciclo di feedback in grado di migliorare continuamente l’efficienza del codice e ridurre l’impatto ambientale.

Lo screenshot seguente mostra i risultati generati da CodeGuru Profiler in modalità latenza, che include I/O di rete e disco. In questo caso, l'applicazione trascorre ancora la maggior parte del tempo in ImageProcessor.extractTasks (seconda riga in basso), e quasi sempre al suo interno è eseguibile, il che significa che non stava aspettando nulla. È possibile visualizzare questi stati del thread passando alla modalità latenza dalla modalità CPU. Questo può aiutarti a farti un'idea di cosa sta influenzando l'ora dell'orologio a muro dell'applicazione. Per ulteriori informazioni, fare riferimento a Riduci l'impronta di carbonio della tua organizzazione con Amazon CodeGuru Profiler.

Immagine

Generazione di casi di test

Amazon Code Whisperer può aiutare a suggerire casi di test e verificare la funzionalità del codice considerando valori limite, casi limite e altri potenziali problemi che potrebbero dover essere testati. Inoltre, Amazon CodeWhisperer può semplificare la creazione di codice ripetitivo per i test unitari. Ad esempio, se devi creare dati di esempio utilizzando le istruzioni INSERT, Amazon CodeWhisperer può generare gli inserimenti necessari in base a un modello. I requisiti complessivi di risorse per i test del software possono anche essere ridotti identificando e ottimizzando i casi di test ad alta intensità di risorse o rimuovendo quelli ridondanti. Le suite di test migliorate hanno il potenziale per rendere l'applicazione più rispettosa dell'ambiente aumentando l'efficienza energetica, diminuendo il consumo di risorse, minimizzando gli sprechi e riducendo l'impronta di carbonio del carico di lavoro.

Per un'esperienza più pratica con Amazon CodeWhisperer, fare riferimento a Ottimizza lo sviluppo software con Amazon CodeWhisperer. Il post mostra i consigli sul codice di Amazon CodeWhisperer in Amazon Sage Maker Studio. Dimostra inoltre il codice suggerito in base ai commenti per il caricamento e l'analisi di un set di dati.

Conclusione

In questo post abbiamo scoperto come Amazon CodeWhisperer può aiutare gli sviluppatori a scrivere codice ottimizzato e più sostenibile. Utilizzando modelli ML avanzati, Amazon CodeWhisperer analizza il tuo codice e fornisce consigli personalizzati per migliorare l'efficienza, che può ridurre i costi e contribuire a ridurre l'impronta di carbonio.

Suggerendo piccoli aggiustamenti e approcci alternativi, Amazon CodeWhisperer consente agli sviluppatori di ridurre significativamente l'utilizzo delle risorse e le emissioni senza sacrificare la funzionalità. Che tu stia cercando di ottimizzare una base di codice esistente o di garantire che i nuovi progetti siano efficienti in termini di risorse, Amazon CodeWhisperer può essere un aiuto inestimabile. Per ulteriori informazioni sulle risorse Amazon CodeWhisperer e AWS Sustainability per l'ottimizzazione del codice, considera i seguenti passaggi successivi:


Circa gli autori

Ottimizza per la sostenibilità con Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Isha Dua è un Senior Solutions Architect con sede nella San Francisco Bay Area. Aiuta i clienti aziendali di AWS a crescere comprendendo i loro obiettivi e le loro sfide e li guida su come possono progettare le loro applicazioni in modo cloud-native, garantendo al tempo stesso resilienza e scalabilità. È appassionata di tecnologie di machine learning e sostenibilità ambientale.

Ottimizza per la sostenibilità con Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Ajjay Govindaram è Senior Solutions Architect presso AWS. Lavora con clienti strategici che utilizzano AI/ML per risolvere problemi aziendali complessi. La sua esperienza risiede nel fornire indicazioni tecniche e assistenza alla progettazione per distribuzioni di applicazioni AI/ML da modeste a grandi dimensioni. Le sue conoscenze spaziano dall'architettura delle applicazioni ai big data, all'analisi e all'apprendimento automatico. Gli piace ascoltare la musica mentre riposa, vivere la vita all'aria aperta e passare il tempo con i suoi cari.

Ottimizza per la sostenibilità con Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Erick Irigoyen è un Solutions Architect presso Amazon Web Services specializzato in clienti nel settore dei semiconduttori e dell'elettronica. Lavora a stretto contatto con i clienti per comprendere le loro sfide aziendali e identificare come sfruttare AWS per raggiungere i loro obiettivi strategici. Il suo lavoro si è concentrato principalmente su progetti relativi all'intelligenza artificiale e al machine learning (AI/ML). Prima di entrare in AWS, è stato consulente senior presso la divisione Advanced Analytics di Deloitte, dove ha guidato flussi di lavoro in diversi incarichi negli Stati Uniti concentrandosi su Analytics e AI/ML. Erick ha conseguito una laurea in Economia presso l'Università di San Francisco e un master in Analisi presso la North Carolina State University.

Timestamp:

Di più da Apprendimento automatico di AWS