Оптимізуйте для сталого розвитку за допомогою Amazon CodeWhisperer | Веб-сервіси Amazon

Оптимізуйте для сталого розвитку за допомогою Amazon CodeWhisperer | Веб-сервіси Amazon

Ця публікація досліджує, як Amazon Code Whisperer може допомогти з оптимізацією коду для сталого розвитку за рахунок підвищення ефективності використання ресурсів. Ефективне кодування з використанням обчислювальних ресурсів — це один з методів, який спрямований на зменшення кількості енергії, необхідної для обробки рядка коду, і, як наслідок, допомагає компаніям споживати менше енергії в цілому. У цю еру хмарних обчислень розробники зараз використовують доступні їм бібліотеки з відкритим вихідним кодом і вдосконалену обчислювальну потужність для створення великомасштабних мікросервісів, які повинні бути операційно ефективними, продуктивними та стійкими. Однак сучасні програми часто складаються з великий код, що вимагає значних обчислювальних ресурсів. Хоча прямий вплив на навколишнє середовище може бути неочевидним, субоптимізований код збільшує вуглецевий слід сучасних програм через такі фактори, як підвищене енергоспоживання, тривале використання апаратного забезпечення та застарілі алгоритми. У цій публікації ми дізнаємося, як Amazon CodeWhisperer допомагає вирішити ці проблеми та зменшити вплив вашого коду на навколишнє середовище.

Amazon CodeWhisperer — це генеративний компаньйон кодування ШІ, який прискорює розробку програмного забезпечення, надаючи пропозиції на основі наявного коду та коментарів природної мови, зменшуючи загальні зусилля щодо розробки та звільняючи час для мозкового штурму, вирішення складних проблем і створення диференційованого коду. Amazon CodeWhisperer може допомогти розробникам оптимізувати їхні робочі процеси, покращити якість коду, створювати надійніші позиції безпеки, створювати надійні набори тестів і писати дружній до обчислювальних ресурсів код, який може допомогти вам оптимізувати для екологічної стійкості. Він доступний як частина Набір інструментів для Visual Studio Code, AWS Cloud9, JupyterLab, Студія Amazon SageMaker, AWS Lambda, Клей AWSі JetBrains IntelliJ IDEA. Зараз Amazon CodeWhisperer підтримує Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, сценарії Shell, SQL і Scala.

Вплив неоптимізованого коду на хмарні обчислення та вуглецевий слід програм

Інфраструктура AWS у 3.6 рази енергоефективніша, ніж середній показник опитаних корпоративних центрів обробки даних США, і до 5 разів енергоефективніша, ніж середній європейський корпоративний центр обробки даних.. Таким чином, AWS може допомогти знизити вуглецевий слід робочого навантаження до 96%. Тепер ви можете використовувати Amazon CodeWhisperer для написання якісного коду зі зниженим використанням ресурсів і енергоспоживання, а також досягати цілей масштабованості, одночасно користуючись енергоефективною інфраструктурою AWS.

Збільшене використання ресурсів

Неоптимізований код може призвести до неефективного використання ресурсів хмарних обчислень. Як наслідок, може знадобитися більше віртуальних машин (VM) або контейнерів, що збільшить розподіл ресурсів, споживання енергії та відповідний вуглецевий слід робочого навантаження. Ви можете зіткнутися зі збільшенням таких показників:

  • Утилізація процесора – Неоптимізований код часто містить неефективні алгоритми або методи кодування, які потребують надмірних циклів ЦП для роботи.
  • Споживання пам'яті – Неефективне керування пам’яттю в неоптимізованому коді може призвести до непотрібного виділення пам’яті, звільнення або дублювання даних.
  • Операції введення-виведення диска – Неефективний код може виконувати надмірну кількість операцій введення/виведення (I/O). Наприклад, якщо дані зчитуються з диска або записуються на нього частіше, ніж необхідно, це може збільшити використання дискового вводу-виводу та затримку.
  • Використання мережі – Через неефективні методи передачі даних або дублювання зв’язку погано оптимізований код може спричинити надмірний обсяг мережевого трафіку. Це може призвести до збільшення затримки та збільшення використання пропускної здатності мережі. Збільшене використання мережі може призвести до збільшення витрат і потреби в ресурсах у ситуаціях, коли мережеві ресурси оподатковуються залежно від використання, наприклад у хмарних обчисленнях.

Більше споживання енергії

Програми для підтримки інфраструктури з неефективним кодом використовують більше процесорної потужності. Надмірне використання обчислювальних ресурсів через неефективний, роздутий код може призвести до більшого споживання енергії та виробництва тепла, що згодом потребує більше енергії для охолодження. Разом із серверами енергію споживають системи охолодження, інфраструктура розподілу електроенергії та інші допоміжні елементи.

Проблеми масштабованості

У розробці додатків проблеми з масштабованістю можуть бути спричинені неоптимізованим кодом. Такий код може не ефективно масштабуватися, оскільки завдання зростає, що потребує більше ресурсів і витрачає більше енергії. Це збільшує енергію, споживану цими фрагментами коду. Як згадувалося раніше, неефективний або марнотратний код має ефект компаундування в масштабі.

Загальна економія енергії від оптимізації коду, який клієнти запускають у певних центрах обробки даних, ще більше ускладнюється, якщо взяти до уваги, що хмарні постачальники, такі як AWS, мають десятки центрів обробки даних по всьому світу.

Amazon CodeWhisperer використовує машинне навчання (ML) і великі мовні моделі, щоб надавати рекомендації щодо коду в реальному часі на основі оригінального коду та коментарів природною мовою, а також надає рекомендації щодо коду, які можуть бути ефективнішими. Ефективність використання інфраструктури програми можна підвищити шляхом оптимізації коду за допомогою стратегій, включаючи вдосконалення алгоритмів, ефективне керування пам’яттю та зменшення безглуздих операцій введення-виведення.

Генерація коду, доповнення та пропозиції

Давайте розглянемо кілька ситуацій, у яких Amazon CodeWhisperer може бути корисним.

Автоматизуючи розробку повторюваного або складного коду, інструменти генерації коду зводять до мінімуму ймовірність людської помилки, зосереджуючись на оптимізації для конкретної платформи. Використовуючи встановлені моделі або шаблони, ці програми можуть створювати код, який більш узгоджено дотримується найкращих практик сталого розвитку. Розробники можуть створювати код, який відповідає певним стандартам кодування, допомагаючи надавати більш послідовний і надійний код у всьому проекті. Отриманий код може бути більш ефективним, тому що він усуває варіації кодування, створюваного людиною, і може бути більш розбірливим, покращуючи швидкість розробки. Він може автоматично реалізувати способи зменшення розміру та довжини прикладної програми, такі як видалення зайвого коду, покращення зберігання змінних або використання методів стиснення. Ці оптимізації можуть допомогти оптимізувати використання пам’яті та підвищити загальну ефективність системи за рахунок зменшення розміру пакета.

Генеративний ШІ має потенціал зробити програмування більш стійким шляхом оптимізації розподілу ресурсів. Важливо комплексно розглядати вуглецевий слід програми. Такі інструменти, як Amazon CodeGuru Profiler може збирати дані про продуктивність для оптимізації затримки між компонентами. Служба профілювання перевіряє виконання коду та визначає потенційні покращення. Потім розробники можуть вручну вдосконалити автоматично згенерований код на основі цих висновків для подальшого підвищення енергоефективності. Поєднання генеративного штучного інтелекту, профілювання та людського контролю створює цикл зворотного зв’язку, який може постійно підвищувати ефективність коду та зменшувати вплив на навколишнє середовище.

На наступному знімку екрана показані результати, згенеровані CodeGuru Profiler у режимі затримки, який включає мережевий і дисковий ввід-вивід. У цьому випадку програма як і раніше проводить більшу частину свого часу ImageProcessor.extractTasks (другий нижній ряд), і майже весь час всередині це працює, тобто нічого не чекало. Ви можете переглянути ці стани потоків, перейшовши в режим затримки з режиму ЦП. Це може допомогти вам отримати гарне уявлення про те, що впливає на час настінного годинника програми. Для отримання додаткової інформації див Зниження викидів вуглекислого газу вашої організації за допомогою Amazon CodeGuru Profiler.

зображення

Генерація тестових випадків

Amazon Code Whisperer може допомогти запропонувати тестові випадки та перевірити функціональність коду, враховуючи граничні значення, крайові випадки та інші потенційні проблеми, які, можливо, потребують перевірки. Крім того, Amazon CodeWhisperer може спростити створення повторюваного коду для модульного тестування. Наприклад, якщо вам потрібно створити зразки даних за допомогою операторів INSERT, Amazon CodeWhisperer може створити необхідні вставки на основі шаблону. Загальні вимоги до ресурсів для тестування програмного забезпечення також можна зменшити шляхом виявлення та оптимізації ресурсомістких тестів або видалення зайвих. Покращені набори тестів можуть зробити програму більш екологічною за рахунок підвищення енергоефективності, зменшення споживання ресурсів, мінімізації відходів і зменшення вуглецевого сліду робочого навантаження.

Щоб дізнатися більше про практичний досвід роботи з Amazon CodeWhisperer, див Оптимізуйте розробку програмного забезпечення за допомогою Amazon CodeWhisperer. Публікація демонструє рекомендації щодо коду від Amazon CodeWhisperer у Студія Amazon SageMaker. Він також демонструє запропонований код на основі коментарів для завантаження та аналізу набору даних.

Висновок

У цій публікації ми дізналися, як Amazon CodeWhisperer може допомогти розробникам написати оптимізований, більш стійкий код. Використовуючи вдосконалені моделі ML, Amazon CodeWhisperer аналізує ваш код і надає персоналізовані рекомендації щодо підвищення ефективності, що може зменшити витрати та зменшити викиди вуглецю.

Пропонуючи незначні коригування та альтернативні підходи, Amazon CodeWhisperer дозволяє розробникам значно скоротити використання ресурсів і викиди без шкоди для функціональності. Незалежно від того, чи хочете ви оптимізувати існуючу кодову базу чи забезпечити ефективне використання ресурсів нових проектів, Amazon CodeWhisperer може стати неоціненною допомогою. Щоб дізнатися більше про ресурси Amazon CodeWhisperer і AWS Sustainability для оптимізації коду, розгляньте наступні кроки:


Про авторів

Оптимізуйте для сталого розвитку за допомогою Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Іша Дуа є старшим архітектором рішень у районі затоки Сан-Франциско. Вона допомагає корпоративним клієнтам AWS розвиватися, розуміючи їхні цілі та виклики, а також надає їм рекомендації щодо створення архітектури своїх додатків у хмарній манері, забезпечуючи стійкість і масштабованість. Вона захоплюється технологіями машинного навчання та екологічною стійкістю.

Оптимізуйте для сталого розвитку за допомогою Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Аджай Говіндарам є старшим архітектором рішень в AWS. Він працює зі стратегічними клієнтами, які використовують AI/ML для вирішення складних бізнес-завдань. Його досвід полягає в наданні технічного керівництва, а також у допомозі в розробці скромних і великомасштабних розгортань програм AI/ML. Його знання варіюються від архітектури додатків до великих даних, аналітики та машинного навчання. Йому подобається слухати музику під час відпочинку, гуляти на природі та проводити час зі своїми близькими.

Оптимізуйте для сталого розвитку за допомогою Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Ерік Ірігоєн є архітектором рішень у Amazon Web Services, який зосереджується на клієнтах у галузі напівпровідників та електроніки. Він тісно співпрацює з клієнтами, щоб зрозуміти їхні бізнес-проблеми та визначити, як можна використовувати AWS для досягнення їхніх стратегічних цілей. Його робота в основному зосереджена на проектах, пов’язаних зі штучним інтелектом і машинним навчанням (AI/ML). До того, як приєднатися до AWS, він був старшим консультантом у відділі розширеної аналітики Deloitte, де керував робочими потоками в кількох проектах у Сполучених Штатах, зосереджуючись на аналітиці та AI/ML. Ерік має ступінь бакалавра бізнесу в Університеті Сан-Франциско та ступінь магістра з аналітики в Університеті штату Північна Кароліна.

Часова мітка:

Більше від AWS Машинне навчання